k8ts
Version:
Powerful framework for building Kubernetes manifests in TypeScript.
42 lines (40 loc) • 1.36 kB
text/typescript
import {
DataSourceRecord_Binary,
DataSourceRecord_Text,
LocalFileSource,
manifest,
relations,
resolveBinary,
resolveText
} from "@k8ts/instruments"
import { CDK } from "../../_imports"
import { k8ts } from "../../kind-map"
import { api } from "../../kinds"
import { equiv_cdk8s } from "../../node/equiv-cdk8s"
import { ManifestResource } from "../../node/manifest-resource"
export type ConfigMap = ConfigMap.ConfigMap
export namespace ConfigMap {
export type ConfigMapEntrySource = LocalFileSource | string
export interface Props {
data: DataSourceRecord_Text
binaryData?: DataSourceRecord_Binary
}
(api.v1_.ConfigMap)
("none")
(CDK.KubeConfigMap)
({
async body(self): Promise<CDK.KubeConfigMapProps> {
const binaryData = await resolveBinary(self.props.binaryData ?? {})
const data = await resolveText(self.props.data)
return {
data: data.isEmpty() ? undefined : data.toObject(),
binaryData: binaryData.isEmpty()
? undefined
: binaryData.map(x => Buffer.from(x).toString("base64")).toObject()
}
}
})
export class ConfigMap extends ManifestResource<Props> {
override kind = api.v1_.ConfigMap
}
}