Skip to main content

Firewall Whitelist

Purpose: For operators, provides required network endpoints for the connected build phase.

Overview​

The Zone A build host requires outbound HTTPS access to download dependencies. No inbound connections are needed. This list covers every endpoint the opencenter-airgap build command contacts.

Container Registries​

EndpointPortProtocolPurpose
registry.k8s.io443HTTPSKubernetes system images (kube-apiserver, kube-controller-manager, etc.)
docker.io443HTTPSDocker Hub images (registry, nginx, etc.)
registry-1.docker.io443HTTPSDocker Hub pull endpoint
production.cloudflare.docker.com443HTTPSDocker Hub CDN layer downloads
auth.docker.io443HTTPSDocker Hub authentication
ghcr.io443HTTPSGitHub Container Registry (FluxCD, openCenter images)
quay.io443HTTPSQuay.io images (Calico, Prometheus, etc.)
docker.elastic.co443HTTPSElastic images (if included)

Helm Chart Repositories​

EndpointPortProtocolPurpose
charts.jetstack.io443HTTPScert-manager Helm chart
kubernetes.github.io443HTTPSingress-nginx Helm chart

Binary Downloads​

EndpointPortProtocolPurpose
dl.k8s.io443HTTPSKubernetes binaries (kubectl, kubelet, kubeadm)
storage.googleapis.com443HTTPSKubernetes binary CDN
get.helm.sh443HTTPSHelm CLI binary
github.com443HTTPSTool releases (k9s, stern, yq, jq, Zarf)
objects.githubusercontent.com443HTTPSGitHub release asset downloads

Git Repositories​

EndpointPortProtocolPurpose
github.com443HTTPSKubespray, openCenter-gitops-base cloning
github.com22SSHGit clone over SSH (alternative)

Terraform Provider Registry​

EndpointPortProtocolPurpose
registry.terraform.io443HTTPSProvider metadata and download URLs
releases.hashicorp.com443HTTPSTerraform provider binaries

Only required when building with --template openstack or when terraform-providers component is enabled.

OS Package Repositories​

EndpointPortProtocolPurpose
archive.ubuntu.com80/443HTTP/HTTPSUbuntu package mirror
security.ubuntu.com80/443HTTP/HTTPSUbuntu security updates
pypi.org443HTTPSPython package index
files.pythonhosted.org443HTTPSPython package downloads

Zone C (Disconnected) — No Outbound Access​

Zone C requires zero internet access. All traffic stays within the local network:

SourceDestinationPortPurpose
Target nodesBastion35000Container image pulls
Target nodesBastion80OS packages, binaries, Python wheels
BastionTarget nodes22SSH for Ansible/Kubespray

Firewall Rule Example (iptables)​

For Zone A build host, allow outbound HTTPS and SSH:

# Allow outbound HTTPS
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

# Allow outbound HTTP (Ubuntu repos)
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

# Allow outbound SSH (Git clone)
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT

# Allow DNS
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT

For Zone C bastion, restrict to local subnet only:

# Allow inbound from target node subnet
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 35000 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT

# Allow SSH from bastion to target nodes
iptables -A OUTPUT -d 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT

# Drop all other outbound
iptables -A OUTPUT -j DROP