diff --git a/nexus/src/app/rack.rs b/nexus/src/app/rack.rs index 3a442d975d0..e4dfd88fd73 100644 --- a/nexus/src/app/rack.rs +++ b/nexus/src/app/rack.rs @@ -740,8 +740,10 @@ impl super::Nexus { ) .await?; - // Plumb the firewall rules for the built-in services - self.plumb_service_firewall_rules(opctx, &[]).await?; + // Note: Service firewall rules are plumbed in Server::start() via + // await_ip_allowlist_plumbing(), which runs before the external HTTP + // server starts. This ensures rules are in place for both fresh rack + // initialization and Nexus restart scenarios. // We've potentially updated the list of DNS servers and the DNS // configuration for both internal and external DNS, plus the Silo diff --git a/nexus/src/app/sled.rs b/nexus/src/app/sled.rs index d744e83d5ce..28c1a5dafb9 100644 --- a/nexus/src/app/sled.rs +++ b/nexus/src/app/sled.rs @@ -363,20 +363,4 @@ impl super::Nexus { self.db_datastore.crucible_dataset_upsert(dataset).await?; Ok(()) } - - /// Ensure firewall rules for internal services get reflected on all the relevant sleds. - pub(crate) async fn plumb_service_firewall_rules( - &self, - opctx: &OpContext, - sleds_filter: &[SledUuid], - ) -> Result<(), Error> { - nexus_networking::plumb_service_firewall_rules( - &self.db_datastore, - opctx, - sleds_filter, - &self.opctx_alloc, - &self.log, - ) - .await - } }