k8ts
Version:
Powerful framework for building Kubernetes manifests in TypeScript.
28 lines (27 loc) • 1.05 kB
text/typescript
import { ResourceNode } from "@k8ts/instruments"
import { App, Chart } from "cdk8s"
import { ManifestResource } from "../../node"
import { EquivCdk8s } from "../../node/equiv-cdk8s"
import { FileNodes } from "./assembler"
export interface ValidatingEvent {
node: ResourceNode
}
export interface ValidatorEventsTable {
validating: ValidatingEvent
}
export interface ValidatorOptions {}
export class NodeGraphValidator {
constructor(readonly options: ValidatorOptions) {}
validate(collection: FileNodes[]) {
const app = new App()
const rootChart = new Chart(app, "root_chart")
for (const fileNode of collection) {
for (const nodeManifest of fileNode.resources) {
const equiv = EquivCdk8s.get(nodeManifest.node._entity as ManifestResource)
const fullFqn = nodeManifest.node.fullFqn.replaceAll("/", "_").replaceAll(".", "-")
const cdk8sNode = new equiv(rootChart, fullFqn, nodeManifest.manifest)
}
}
app.synthYaml()
}
}