This release is a pre-release and may not be stable for production use.
CDK8S CLI
A CLI helper for cdk8s.
This is a work-in-progress project with no promise of continued support or development. This is not sutable for production applications.
Features
This project provides a simple CLI to help with applying cdk8s charts.
Usage
# Import the dependencies
from cdk8s_cli.cdk8s_cli import cdk8s_cli
from cdk8s import App, Chart
class ApplicationChart(Chart):
# Define cdk8s chart here
...
# Construct your Apps and charts as you normally would:
app = App()
ApplicationChart(app, "chart-name")
# Then call the CLI with:
cdk8s_cli(app, name="my-app")
That's it! You can now run your application with the desired flags
> python3 my-app.py apply
Resources synthed to /Users/exampleuser/project/my-project/dist
Deploy resources? [y/N]: y
Resource simple-cdk8s-chart-c81aeaa7 applied.
Resource simple-cdk8s-chart-deployment-c83ea641 applied in namespace simple-cdk8s-chart-c81aeaa7.
Resource simple-cdk8s-chart-deployment-service-c8f17013 applied in namespace simple-cdk8s-chart-c81aeaa7.
Apply complete
Example CLI Usage
Synth all apps
python3 main.py synth
Deploy all apps
python3 main.py deploy
Deploy selected apps
python3 main.py deploy --apps dev prod
Options
positional arguments:
{synth,apply} the action to perform. synth will synth the resources to the output directory. apply will apply the resources to the Kubernetes cluster
options:
-h, --help show this help message and exit
--apps APPS [APPS ...]
the apps to apply. Defaults to all apps. If supplied, apps not in this list will be skipped
--kube-context KUBE_CONTEXT
the Kubernetes context to use. Defaults to minikube
--kube-config-file KUBE_CONFIG_FILE
the path to a kubeconfig file
--verbose enable verbose output
--unattended enable unattended mode. This will not prompt for confirmation before applying
--debug enable debug mode. This will print debug information
--validate experimental feature. Will enable validation mode. This will wait for resources to report ready before exiting
--validate-timeout-minutes VALIDATE_TIMEOUT_MINUTES
the number of minutes to wait for resources to report ready before timing out. Needs --validate to be set
Development
This project is built using:
- Poetry as the package manager
- Ruff for formatting and linting
Features to be implemented
- Unit tests
- End-to-end tests
- Use the example projects for this
- Complete documentation
- Improve customisation
- More inputs, more flexability
- Diff functionality
- Similar to
kubectl diff
- Similar to
- Destroy functionality
- Similar to
kubectl delete
- Similar to
- List functionality
- List all resources in an app
- Useful, hierarchical view
Examples
Examples can be run using poetry run python3 examples/<example>/<example>.py synth
Simple Example
A very basic example containing a chart with a few simple resources in a single file deployed as a single stage.
Complex Example
A more complex example with multiple charts and multiple stages.
Jobs Example
An example job runner that executes Python scripts from a directory of scripts as jobs.
Metadata
Release files for cdk8s-cli 0.1.0a7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cdk8s_cli-0.1.0a7.tar.gz | 6.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cdk8s_cli-0.1.0a7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.3 kB
Release files / cdk8s_cli-0.1.0a7.tar.gz
| Download URL | cdk8s_cli-0.1.0a7.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a9ab53651ff9c5a14a457a456964643c52bc275ed36bbd81a44387282c446a68
|
|
BLAKE2b-256 checksum How to use checksums |
88aa16f3bed7f3d9976f32793d997090c83a83f7c17c894780c69e1a296847a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 12, 2025.
Transparency logRelease files / cdk8s_cli-0.1.0a7-py3-none-any.whl
| Download URL | cdk8s_cli-0.1.0a7-py3-none-any.whl |
|---|---|
| Size | 11.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c35d876f1147e62c6344e4f6725784c35c145d6aded1c4a05af8ca7a8144f0c8
|
|
BLAKE2b-256 checksum How to use checksums |
33a4b48900c52eddd6556bce34ad329b7d573415e119800c86eb471ad66ca741
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 12, 2025.
Transparency log