Skip to main content

No project description provided

Project description

Build Status Code Coverage 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

Usage

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=https://deploy-api.example.org \
    --aws-account=aws:7.. \
    --aws-region=eu-central-1 \
    --kubernetes-cluster=aws:7..:kube-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

Project details


Download files

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

Source Distribution

zalando-deploy-cli-0.29.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

zalando_deploy_cli-0.29-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

Details for the file zalando-deploy-cli-0.29.tar.gz.

File metadata

File hashes

Hashes for zalando-deploy-cli-0.29.tar.gz
Algorithm Hash digest
SHA256 3fe60ef0bb6364e96db1b2eb4f2bbd6edd2b930f2ec8379378a5c466c32e1805
MD5 b0e153575141f0cece50a0ffb3576469
BLAKE2b-256 d387b4d07c23421d8c560bb652fe062ff5c8e22d961b4eedb57643451c1da4cb

See more details on using hashes here.

File details

Details for the file zalando_deploy_cli-0.29-py3-none-any.whl.

File metadata

File hashes

Hashes for zalando_deploy_cli-0.29-py3-none-any.whl
Algorithm Hash digest
SHA256 24a08c10cb26f0311936e29d7226f2f8f8b09ef0e5a2cecc199573a7c300e9d0
MD5 a82d4433310036241105de44e9c74ef8
BLAKE2b-256 43830aa3d43a95c5fc9e810159e2fb8baa09cdd89d505e3fdfe0c16dfe829705

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page