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