Exoscale (SKS)

Deploy jambonz on Exoscale Scalable Kubernetes Service

Prerequisites

You will need:

  • An Exoscale account at exoscale.com
  • API credentials (key and secret with full permissions)
  • Terraform >= 1.5
  • kubectl installed

Provision the SKS Cluster

The Terraform templates for provisioning an SKS cluster are available here.

  • Clone the Terraform repository to your local machine.
  • Navigate to exoscale/provision-sks-cluster.
  • Export your API credentials:
    $export EXOSCALE_API_KEY="your-api-key"
    $export EXOSCALE_API_SECRET="your-api-secret"
  • Copy terraform.tfvars.example to terraform.tfvars and edit it with your desired settings.
  • Run terraform init && terraform plan && terraform apply to provision the cluster.
  • Configure kubectl: export KUBECONFIG=$(pwd)/kubeconfig && kubectl get nodes

When deploying Traefik (or another ingress controller) with multiple node pools, Exoscale requires a load balancer annotation specifying the instance pool ID. See the Terraform README for details.

Deploy jambonz

Once the cluster is provisioned, deploy jambonz using the Helm chart. Follow the instructions in the Helm chart README to configure and install.

After deployment, complete the Post-Install Steps and generate a license key as described in Software Licensing.

Cleanup

You must delete any Kubernetes LoadBalancer services (which create Exoscale NLBs) before running terraform destroy, or the destroy will fail because the instance pools are locked by the NLBs.

  1. Delete NLBs via the Exoscale CLI:
    $exo compute load-balancer list --zone <zone>
    $exo compute load-balancer delete <NLB_ID> --zone <zone>
  2. Run terraform destroy.

Resources