https://lajosbencz.github.io/synku/
yarn add kubernetes-models synku
// project.ts
import * as k8s from "kubernetes-models";
import synku, { behavior } from "synku";
export default synku("example", (release) => {
const config = release.add("config");
config
.with(
behavior((component) => {
component.findAll(k8s.v1.ConfigMap).forEach((configMap) => {
configMap.data!.baz = "bax";
});
})
)
.draft(k8s.v1.ConfigMap, {
data: {
foo: "bar",
},
});
});
npx synku ./project.ts > project.yaml
helm pull oci://registry-1.docker.io/bitnamicharts/kafka --version 32.4.3 --untar --untardir charts
npx synku chart ./charts/kafka --name Kafka --output kafka-chart.ts
// project.ts
import * as k8s from "kubernetes-models";
import synku, { behavior } from "synku";
import { KafkaChart } from "./kafka-chart.ts";
export default synku("example", (release) => {
release
.with(
behavior((component) => {
component.findAll(k8s.v1.ConfigMap).forEach((configMap) => {
configMap.data!.baz = "bax";
});
})
)
.draft(k8s.v1.ConfigMap, {
data: {
foo: "bar",
},
});
const kafka = release.add("kafka", KafkaChart, {
broker: {
persistence: {
enabled: false,
},
},
});
kafka.with(
behavior((component) => {
component.findAll(k8s.v1.ConfigMap).forEach((configMap) => {
delete configMap.data?.baz;
});
})
);
});
export SYNKU_TRACE=1
npx synku ./project.ts > project.yaml