Отдельные выходные файлы синтезатора cdk8s

Следующий код создаст один файл yaml, содержащий все мои определения развертывания и набора состояний, есть ли способ разделить разные файлы на выходе, например dist/clusterip.k8s.yaml а также dist/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")

2 ответа

Да, есть.

Это реализовано в этом коммите: 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;
}

Возможно, это не совсем то, что вы хотите услышать, но cdk8s создает один выходной файл для каждого графика. Таким образом, вы можете разделить ресурсы на несколько диаграмм в своем приложении.

В качестве личного обходного пути вы также можете самостоятельно разделить документы yaml на файл. Когда вы уже начали использовать Python, это должно быть просто yaml.safe_loadвыходной файл, цикл по всем документам и yaml.safe_dumpих снова. Между загрузкой и дампом вы можете организовать вещи по своему усмотрению.

Другие вопросы по тегам