Deploy on Kubernetes
SWIM services run on any Kubernetes 1.25+ cluster. This guide covers installing the required operators, deploying the SWIM Kubernetes Operator, and creating SWIM service instances through Custom Resources.
Prerequisites
choco install kubernetes-helm (Windows), brew install helm (macOS), sudo snap install helm --classic (Linux)
1. Install Dependencies
Install the infrastructure operators that SWIM services depend on:
- Install cert-manager:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.0/cert-manager.yaml - Create a self-signed ClusterIssuer for certificate generation
- Install Strimzi Kafka Operator in the
strimzi-systemnamespace - Install ArtemisCloud Operator for AMQP broker management
2. Install the SWIM Operator
The SWIM Kubernetes Operator manages the lifecycle of all SWIM services. Install it from the provided manifests or Helm chart:
# Option A: kubectl
kubectl apply -f deploy/swim-kubernetes-operator/dist/install.yaml
# Option B: Helm
helm install swim-operator \
deploy/swim-kubernetes-operator/charts/swim-kubernetes-operator \
--namespace swim-operator-system \
--create-namespace
# Option A: kubectl
kubectl apply -f deploy/swim-kubernetes-operator/dist/install.yaml
# Option B: Helm
helm install swim-operator `
deploy/swim-kubernetes-operator/charts/swim-kubernetes-operator `
--namespace swim-operator-system `
--create-namespace
3. Create Namespaces
SWIM services can be deployed in separate namespaces for isolation. A typical setup uses dedicated namespaces per role:
kubectl create namespace swim-backend
kubectl create namespace swim-consumervalidator
kubectl create namespace swim-providervalidator
4. Deploy SWIM Services
Apply the Custom Resource samples to deploy SWIM components. The operator reconciles each CR and creates the required deployments, services, brokers, and certificates:
- Deploy the Consumer Validator (simulates the AISP provider)
- Deploy the DNOTAM Provider
- Deploy the DNOTAM Consumer
- Deploy the Provider Validator (optional, for compliance testing)
Sample Custom Resource files are in the
swim-kubernetes-operator
repository under config/samples/.
5. Verify Deployment
# Check operator status
kubectl get pods -n swim-operator-system
# Check SWIM resources
kubectl get swimdigitalnotamproviders,swimdigitalnotamconsumers -A
# Check all pods
kubectl get pods -A | grep swim
# Check operator status
kubectl get pods -n swim-operator-system
# Check SWIM resources
kubectl get swimdigitalnotamproviders,swimdigitalnotamconsumers -A
# Check all pods
kubectl get pods -A | Select-String swim