分离cdk8s合成器的输出文件



以下代码将创建一个yaml文件dist/clusterip.k8s.yaml,其中包含我对部署和状态集的所有定义,是否有方法在输出中分离不同的文件,如dist/clusterip.k8s.yamldist/statefulset.k8s.yaml

class MyChart(Chart):
def __init__(self, scope: Construct, id: str):
super().__init__(scope, id)
ClusterIp(self, 'clusterip')
StateFulSet(self, 'statefulset')
app = App()
MyChart(app, "clusterip")

也许不是你想要听到的,但cdk8s为每个图表创建一个输出文件。因此,您可以在应用程序中将资源拆分为多个图表。

作为您的个人解决方案,您还可以自己将yaml文档拆分为每个文件。当您已经开始使用Python时,这应该很简单,比如yaml.safe_load输出文件,循环所有文档并再次yaml.safe_dump它们。在加载和转储之间,您可以随心所欲地组织事情。

是的。

它已在本次提交中实现:https://github.com/cdk8s-team/cdk8s-core/commit/474e373c1b86a57a3568cca0f9629e038266f2d5

发件人https://github.com/cdk8s-team/cdk8s-core/blob/d00d2de5816106ea8bb7259e4ee5da907bc83e2a/src/app.ts:

/** The method to divide YAML output into files */
export enum YamlOutputType {
/** All resources are output into a single YAML file */
FILE_PER_APP,
/** Resources are split into seperate files by chart */
FILE_PER_CHART,
/** Each resource is output to its own file */
FILE_PER_RESOURCE,
/** Each chart in its own folder and each resource in its own file */
FOLDER_PER_CHART_FILE_PER_RESOURCE,
}
export interface AppProps {
/**
* The directory to output Kubernetes manifests.
*
* @default - CDK8S_OUTDIR if defined, otherwise "dist"
*/
readonly outdir?: string;
/**
*  The file extension to use for rendered YAML files
* @default .k8s.yaml
*/
readonly outputFileExtension?: string;
/**
*  How to divide the YAML output into files
* @default YamlOutputType.FILE_PER_CHART
*/
readonly yamlOutputType?: YamlOutputType;
}

相关内容

  • 没有找到相关文章

最新更新