No project description provided
Project description
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
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_api_server: https://kube-1.example.org
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 https://registry.example.org ALIAS
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file zalando-deploy-cli-1.0.7.tar.gz
.
File metadata
- Download URL: zalando-deploy-cli-1.0.7.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10bcfaf880b037a34f556f463f3123caf43e3dde3632d621f3b31faa2b858b20 |
|
MD5 | 529185f9596beafe73969cf985e94a3e |
|
BLAKE2b-256 | 788d44cd899a8978c6e05b224ddaef0cf5c10ea70bd474fbfe3d1d285d850575 |
File details
Details for the file zalando_deploy_cli-1.0.7-py3-none-any.whl
.
File metadata
- Download URL: zalando_deploy_cli-1.0.7-py3-none-any.whl
- Upload date:
- Size: 25.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfef7193b5230ea25772dd46e74b14bf45c7671f1c1796473896280562ce3f28 |
|
MD5 | d10654b77dfe4784f993bb55cd6d20fe |
|
BLAKE2b-256 | c77980ce3f4dde2aed993ca1f65927c4e9d325cbfe987d249a119189e9ed07e1 |