Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

No project description provided

Project description

PyPI Downloads Latest PyPI version License

This CLI provides an opinionated, high-level wrapper for the “Autobahn” deployment API:

  • It only provides high-level commands
    • Only support what CI/CD pipelines need
    • Low-level access to Kubernetes provided by zkubectl
  • It uses Mustache for templating
    • Familiar to Zalando users: we already use it in Senza
    • Language-agnostic: users could switch to other tools without changing their manifests

Steps required by CI/CD Pipeline

  • Apply stateful resources
    • Cloud Formation templates
    • Kubernetes manifests
    • Should be possible for a whole directory
  • Create Kubernetes deployment
  • Switch “traffic” / scale deployments pod by pod
    • Needs to check pod “readyness”
  • Delete old deployments
  • Scale deployment (manually triggered)

Why another CLI?

The CI/CD pipeline could also call the “Autobahn” deployment API directly, but:

  • CI/CD pipeline (Jenkinsfile) would contain a lot of code and logic to interact with Autobahn API directly
  • Hard to test interaction with Autobahn API without running CI/CD (Jenkins)
  • No standard templating for Kubernetes manifests — first approach relied on another 3rd party tool (sigil)
  • Switching to another CI/CD would require reimplementing logic from Jenkinsfile


All commands interacting with the “Autobahn” deployment API either need the --execute flag (for immediate approval and execution) or additional calls to approve and execute.

$ sudo pip3 install -U zalando-deploy-cli
$ zdeploy configure \
    --deploy-api= \
    --aws-account=aws:7.. \
    --aws-region=eu-central-1 \
$ zdeploy apply ./apply/my-service.yaml --execute \
    application=kio version=cd53 release=12
$ zdeploy create-deployment deployment.yaml kio cd53 12 --execute
$ zdeploy wait-for-deployment kio cd53 12
$ zdeploy switch-deployment kio cd53 12 2/10 --execute
$ zdeploy wait-for-deployment kio cd53 12
$ zdeploy switch-deployment kio cd53 12 3/10 --execute
$ # ..
$ zdeploy switch-deployment kio cd53 12 10/10 --execute
$ zdeploy delete-old-deployments kio cd53 12 --execute
$ zdeploy scale-deployment kio cd53 12 15 --execute # manual scaling

You can also just use the Mustache template interpolation manually:

$ zdeploy render-template my-manifest.yaml foo=bar var2=123

Configure for Cluster

You can automatically set Kubernetes Cluster specific configuration using the cluster’s alias:

$ zdeploy configure-for-cluster ALIAS

New configuration:
  aws_account: aws:7..
  kubernetes_cluster: aws:7..:kube-1

If you don’t have zkubectl configured you also need to provide the Cluster Registry URL:

$ zdeploy configure-for-cluster --cluster-registry-url ALIAS

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for zalando-deploy-cli, version 1.0.10
Filename, size File type Python version Upload date Hashes
Filename, size zalando_deploy_cli-1.0.10-py3-none-any.whl (25.6 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size zalando-deploy-cli-1.0.10.tar.gz (18.0 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page