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

Kubernetes 1.25+ with cluster-admin access
kubectl configured with cluster access
Helm CLI Install from helm.sh/docs/intro/install or via package manager: 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:

  1. Install cert-manager: kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.0/cert-manager.yaml
  2. Create a self-signed ClusterIssuer for certificate generation
  3. Install Strimzi Kafka Operator in the strimzi-system namespace
  4. 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:

  1. Deploy the Consumer Validator (simulates the AISP provider)
  2. Deploy the DNOTAM Provider
  3. Deploy the DNOTAM Consumer
  4. 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