A compatability layer for using cdk8s constructs within Terraform CDK.
import { App, TerraformStack } from "cdktf";
import { App as CDK8sApp, Chart } from "cdk8s";
import { CDK8sProvider } from "cdktf-cdk8s";
import { MyCdk8sChart } from "./my-cdk8s-chart";
export class MyKubernetesStack extends TerraformStack {
constructor(scope: Construct, name: string) {
super(scope, name);
const cdk8sApp = new CDK8sApp();
// Configure your cdk8s application like usual
new HelloKube(cdk8sApp, "my-chart");
// For properties see https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs
// Extends on the Provider class from @cdktf/provider-kubernetes
new CDK8sProvider(this, "cdk8s-dev", {
configPath: "./kubeconfig.yaml",
configContext: "my-dev-cluster",
// Only the cdk8sApp property is added
// There is no need to run synth on the cdk8sApp, this is done by the provider
cdk8sApp,
});
}
}
const app = new App();
new MyStack(app, "cdktf-cdk8s");
app.synth();