Skip to main content

A simple CLI for cdk8s

Project description

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)

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. If supplied, unnamed apps will always 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
  • Destroy functionality
    • Similar to kubectl delete
  • 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

Link

A very basic example containing a chart with a few simple resources in a single file deployed as a single stage.

Complex Example

Link

A more complex example with multiple charts and multiple stages.

Jobs Example

Link

An example job runner that executes Python scripts from a directory of scripts as jobs.

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

cdk8s_cli-0.1.0a6.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cdk8s_cli-0.1.0a6-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file cdk8s_cli-0.1.0a6.tar.gz.

File metadata

  • Download URL: cdk8s_cli-0.1.0a6.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for cdk8s_cli-0.1.0a6.tar.gz
Algorithm Hash digest
SHA256 adfc7a592166112de3e2feb33c13730bf03c8fd210c5751c45f468aa28ab3f6d
MD5 89437f5e0c5c5a341a9fb43213949e07
BLAKE2b-256 277d4fcb6052c8da82a373c2ba7f09eff2e9623471a468d2c08a2b548296660e

See more details on using hashes here.

Provenance

The following attestation bundles were made for cdk8s_cli-0.1.0a6.tar.gz:

Publisher: publish.yml on MatthewCane/cdk8s-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cdk8s_cli-0.1.0a6-py3-none-any.whl.

File metadata

  • Download URL: cdk8s_cli-0.1.0a6-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for cdk8s_cli-0.1.0a6-py3-none-any.whl
Algorithm Hash digest
SHA256 f93c1d4e17b3caa22f7bfa5ba8284c746ca21e96b646b2aaca13dd8a6d74ee69
MD5 018a6cad4203919a86f973162ce941e5
BLAKE2b-256 520025ba3def0f217f4d70cc0ee060042a5e373e8d9bb9f30e84286cd5fbb27d

See more details on using hashes here.

Provenance

The following attestation bundles were made for cdk8s_cli-0.1.0a6-py3-none-any.whl:

Publisher: publish.yml on MatthewCane/cdk8s-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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