Skip to main content

Cloud Development Kit for Kubernetes

Project description

cdk8s

Cloud Development Kit for Kubernetes

cdk8s is a software development framework for defining Kubernetes applications using rich object-oriented APIs. It allows developers to leverage the full power of software in order to define abstract components called "constructs" which compose Kubernetes resources or other constructs into higher-level abstractions.

This library is the foundation of cdk8s. It includes base types that are used to define cdk8s applications.

Chart

The Chart is a container that synthesizes a single Kubernetes manifest.

# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
class MyChart(Chart):
    def __init__(self, scope, ns):
        super().__init__(scope, ns)

During synthesis, charts collect all the ApiObject nodes (recursively) and emit a single YAML manifest that includes all these objects.

ApiObject

An ApiObject is a construct that represents an entry in a Kubernetes manifest. In most cases, you won't use ApiObject directly but rather use classes that are generated by the cdk8s CLI and extend this base class.

Include

The Include construct can be used to include an existing manifest in a chart.

The following example will include the Kubernetes Dashboard in MyChart:

# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from cdk8s import Include

class MyChart(Chart):
    def __init__(self, scope, id):
        super().__init__(scope, id)

        dashboard = Include(self, "dashboard", {
            "url": "https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml",
            # or
            "url": "dashboard.yaml"
        })

All API objects defined in the included manifest will be added as children ApiObjects under the Include construct's scope. This implies that you can use Node.of(include).children to inspect them.

The following example queries for all the Deployment resources in the dashboard:

# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
deps = Node.of(dashboard).children.filter((c: ApiObject) => c.kind === 'Deployment')

NOTE: names of included objects (metadata.name) are preserved. This means that if you try to include the same manifest twice into the same chart, your manifest will have duplicate definitions of the same objects.

Testing

cdk8s bundles a set of test utilities under the Testing class:

  • Testing.app() returns an App object bound to a temporary output directory.
  • Testing.synth(chart) returns the Kubernetes manifest synthesized from a chart.

License

This project is distributed under the Apache License, Version 2.0.

This module is part of the cdk8s project.

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

cdk8s-0.23.0.tar.gz (199.6 kB view details)

Uploaded Source

Built Distribution

cdk8s-0.23.0-py3-none-any.whl (197.8 kB view details)

Uploaded Python 3

File details

Details for the file cdk8s-0.23.0.tar.gz.

File metadata

  • Download URL: cdk8s-0.23.0.tar.gz
  • Upload date:
  • Size: 199.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for cdk8s-0.23.0.tar.gz
Algorithm Hash digest
SHA256 512bbb707d97e9d76be2beb817c4e6a014bdbcc5dee97664ff9db0fa04d039bd
MD5 4c9ca061d3c340dc756557557a9fe7ca
BLAKE2b-256 a5adbe483df5da59d6b4bc930a0ba3f28a51b5164a83b22154a1a36fcf43342f

See more details on using hashes here.

File details

Details for the file cdk8s-0.23.0-py3-none-any.whl.

File metadata

  • Download URL: cdk8s-0.23.0-py3-none-any.whl
  • Upload date:
  • Size: 197.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for cdk8s-0.23.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d20beee5ceed4b57f27b2a9457f0dc30b21449c876ccb75bf0b2be06b2b901be
MD5 2d3b268ad91ed52380ad1ccc8fe17e6b
BLAKE2b-256 9fa44b085631946a3d7c66cf645cf0861e2df96f500c15af5d8a6243b7f0dda6

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