0

kustomize バイナリを使用して、特定の kubernetes 展開 yaml ファイルを作成しています。

{バージョン:kustomize/v3.8.1 GitCommit:0b359d0ef0272e6545eda0e99aacd63aef99c4d0 BuildDate:2020-07-16T00:58:46Z GoOs:linux GoArch:amd64}

これが私のディレクトリ構造です:

overlays
├── parser
│   ├── dev
│   │   └── nonsec
│   │       ├── dev-patches-parsers-tests.yaml
│   │       ├── dev-patches-parsers.yaml
│   │       └── kustomization.yaml
│   ├── prod
│   │   ├── nonsec
│   │   │   ├── kustomization.yaml
│   │   │   ├── prod-patches-parsers-tests.yaml
│   │   │   └── prod-patches-parsers.yaml
│   │   ├── sec
│   │   │   ├── kustomization.yaml
│   │   │   ├── prod-patches-parsers-sec-tests.yaml
│   │   │   ├── prod-patches-parsers-sec.yaml
│   │   │   ├── prod-patches-parsers-tests.yaml
│   │   │   └── prod-patches-parsers.yaml
│   │   └── v3r
│   │       └── empty.txt
│   ├── stage

│   └── suit

overlays/parser/prod/nonsec と /overlays/parser/prod/sec には、2 つの同一のパッチ ファイル セットが含まれていることに注意してください。共通ファイルを取り出して、prod の下の 1 レベルにプッシュしたい - 複数のディレクトリに同じパッチのコピーを入れたくない。nonsec ビルドと sec ビルドの両方で同じ prod-patches のセットを使用したいのですが、kustomize でそれを行う方法がわかりません。上記のディレクトリにそれらを配置しようとしましたが、kustomize は上記のディレクトリ内のパッチ ファイルへの参照を許可しません。これは私が行う必要があることです。

これらの prod-patches*.yaml ファイルが複数のディレクトリで重複しないようにするにはどうすればよいですか?!

これが私のnonsec kustomization.yamlです

# Use this as the base code
resources:
  - ../../../../base

# Decorate the base code with the following components
components:
  - ../../../../components/common-all
  - ../../../../components/common-prod
  - ../../../../components/parser

# Then finally, patch the results from above with this:
patchesStrategicMerge:
 - prod-patches-parsers.yaml
 - prod-patches-parsers-tests.yaml

そして、これは私の kustomization.yaml です。

# Use this as the base code
resources:
  - ../../../../base

# Decorate the base code with the following components
components:
  - ../../../../components/common-all
  - ../../../../components/common-prod
  - ../../../../components/parser

# Then finally, patch the results from above with this:
patchesStrategicMerge:
 - prod-patches-parsers.yaml
 - prod-patches-parsers-tests.yaml
 - prod-patches-parsers-sec.yaml
 - prod-patches-parsers-sec-tests.yaml 
4

1 に答える 1

0

次のことができます。

overlays
├── parser
│   ├── dev
│   │   └── nonsec
│   │       ├── dev-patches-parsers-tests.yaml
│   │       ├── dev-patches-parsers.yaml
│   │       └── kustomization.yaml
│   ├── prod
│   │   ├── kustomization.yaml
│   │   ├── prod-patches-parsers-tests.yaml
│   │   ├── prod-patches-parsers.yaml
│   │   ├── nonsec
│   │   │   └── kustomization.yaml
│   │   ├── sec
│   │   │   ├── kustomization.yaml
│   │   │   ├── prod-patches-parsers-sec-tests.yaml
│   │   │   └── prod-patches-parsers-sec.yaml
│   │   └── v3r
│   │       └── empty.txt

overlays/parser/prod/kustomization.yaml:

resources:
  - ../../../../base
  - ../../../../components/common-all
  - ../../../../components/common-prod
  - ../../../../components/parser

patchesStrategicMerge:
  - prod-patches-parsers.yaml
  - prod-patches-parsers-tests.yaml

overlays/parser/prod/nonsec/kustomization.yaml:

resources:
  - ../

overlays/parser/prod/sec/kustomization.yaml:

resources:
  - ../

patchesStrategicMerge:
  - prod-patches-parsers.yaml
  - prod-patches-parsers-tests.yaml

全体的なディレクトリ構造は少し複雑なので、単純化またはフラット化することをお勧めします。

于 2021-01-22T10:49:02.730 に答える