cdk8s is a framework for defining Kubernetes applications using object-oriented programming languages instead of YAML.
The tool addresses the friction of writing Kubernetes manifests by letting developers use familiar programming constructs. Applications are structured as a tree of constructs, with an App at the root containing Charts that represent separate Kubernetes manifests. Each Chart composes lower-level constructs down to individual Kubernetes resources like Pods, Services, and Deployments. When executed, a cdk8s app synthesizes these definitions into standard Kubernetes manifest files that can be applied to any cluster using kubectl or GitOps tools. The approach draws from the design of the AWS Cloud Development Kit and supports interoperability with AWS CDK constructs for applications spanning both Kubernetes and cloud infrastructure.
Developers should choose cdk8s if they prefer writing infrastructure code in a programming language rather than YAML, and if their team has existing expertise in object-oriented development. The tool suits projects where reusable abstractions and programmatic composition provide value over static manifests. The framework supports multiple programming languages through its construct-based architecture. Since cdk8s only synthesizes manifests and does not apply them directly, it integrates into existing deployment workflows without requiring changes to how manifests reach clusters.
The project maintains multiple repositories for its core library, command-line interface, and high-level Kubernetes constructs, with the umbrella repository handling cross-module concerns. Development activity shows sustained engagement across the distributed package structure, with ongoing maintenance of the documentation site and examples. The project operates as a Cloud Native Computing Foundation Sandbox Project and actively encourages community feedback and contributions through multiple channels.