Skip to content

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 01 May 18:40
8d32223

New: Azure Kubernetes Service (AKS) emulation (#111, closes #50)

Microsoft.ContainerService/managedClusters ARM management plane with two backends:

Backend When What works
stub (default) always terraform apply, az aks list, azlocal aks ..., mock kubeconfig (kubectl will not connect)
real (k3s in Docker) AKS_BACKEND=k3s + Docker daemon everything above + a real rancher/k3s cluster per AKS resource; kubectl apply actually deploys pods

Mirrors the ACI Docker pattern, so users do not need to install k3d / kind / minikube.

CLI

azlocal aks create --resource-group RG --name N [--node-count 1] [--kubernetes-version 1.30.0]
azlocal aks list   --resource-group RG
azlocal aks show   --resource-group RG --name N
azlocal aks delete --resource-group RG --name N
azlocal aks get-credentials --resource-group RG --name N [--file PATH|-] [--overwrite-existing]

get-credentials defaults to merging into ~/.kube/config like real az aks does.

Lifecycle coverage

Trigger Cleanup behavior
terraform destroy / azlocal aks delete / direct DELETE container removed immediately
Resource group cascade delete every cluster's container in that RG removed
miniblue SIGTERM / SIGINT / docker stop every running k3s container torn down before miniblue exits
miniblue SIGKILL / OOM / crash next start with AKS_BACKEND=k3s reaps orphans
PERSISTENCE=1 restart matching containers preserved; same kubeconfig still works

New full Docker image variant

Default moabukar/miniblue:latest stays scratch (~9MB). Real-backend users (ACI, AKS) can build the full target which adds the docker CLI:

docker build --target=full -t miniblue:full .
docker run -v /var/run/docker.sock:/var/run/docker.sock \
  -p 4566:4566 -p 4567:4567 -e AKS_BACKEND=k3s miniblue:full

Other changes

  • New dedicated CI pipeline .github/workflows/aks-e2e.yml that runs Terraform apply against the AKS example and a real-backend k3s smoke (DinD on the runner) on AKS-touching PRs and push to main
  • Resource group cascade delete now cleans up child AKS resources properly
  • cmd/miniblue graceful shutdown propagates to AKS so k3s containers do not leak past miniblue's lifetime
  • 27 services total (was 26); see azlocal health

Upgrading

docker pull moabukar/miniblue:0.6.0
brew upgrade miniblue

Try it:

azlocal group create --name myRG --location eastus
azlocal aks create --resource-group myRG --name dev --node-count 1
azlocal aks list --resource-group myRG

Known limitation

The real backend always runs k3s v1.30.14. If you PUT a cluster with a different kubernetesVersion the ARM response will echo it back but kubectl version will report the actual k3s version (a WARNING log fires when this happens). Per-version k3s images is on the roadmap for v0.7.