簡體   English   中英

在 kustomize 中修補特定資源

[英]Patch specific resource in kustomize

我有一個基礎資源,它在疊加層中導入,疊加層中的其他資源也來自相同的基礎但具有不同的后綴。 在疊加層中,需要對基礎資源進行修補,而不會影響其他新創建的資源。 然而,這三個人都變了。 我怎樣才能修改我打算修改的那個?

下面是一個例子。 基本資源是具有 1 個副本的部署。 在疊加層中,基礎作為資源添加,但我嘗試對其進行修補並將副本設置為 0。不幸的是,所有部署的所有副本都設置為 0。

根據

EX_HOME=$(mktemp -d)
BASE=$EX_HOME/base
mkdir $BASE

cat <<EOF >$BASE/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: example
  labels:
    app: example
spec:
  replicas: 1
  selector:
    matchLabels:
      app: example
  template:
    metadata:
      labels:
        app: example
    spec:
      containers:
        - name: example
          image: alpine:latest
          command: ["sh","-c", "sleep 1h"]
EOF

cat <<EOF>$BASE/kustomization.yaml
resources:
- deployment.yaml
EOF

覆蓋

OVERLAYS=$EX_HOME/overlays
mkdir -p $OVERLAYS/srv0
mkdir -p $OVERLAYS/srv1

cat <<EOF>$OVERLAYS/kustomization.yaml
resources:
  - svr0
  - svr1
  - ../base

patches:
  - patch: |-
      - op: replace
        path: /spec/replicas
        value: 0
    target:
      kind: Deployment
      group: apps
      version: v1
      name: example
EOF

cat <<EOF>$OVERLAYS/svr0/kustomization.yaml
resources:
  - ../../base
nameSuffix: -svr0
EOF

cat <<EOF>$OVERLAYS/svr0/kustomize.yaml
resources:
  - ../../base
nameSuffix: -svr1
EOF

以下應該工作。 我冒昧地重新組織了一下目錄結構以使其更清晰。 由於您只更新副本計數,我還切換到副本轉換器而不是補丁:

base/kustomization.yaml

resources:
  - deployment.yaml

overlays/svr0/kustomization.yaml

resources:
  - ../../base

nameSuffix: -svr0

overlays/svr1/kustomization.yaml

resources:
  - ../../base

nameSuffix: -svr1

`overlays/all/kustomization.yaml`:
```yaml
resources:
  - ../../base
  - ../svr0
  - ../svr1

replicas:
  - name: example-svr0
    count: 0
  - name: example-svr1
    count: 0

附帶說明:關於它的 go 有兩種方法。 在這里,我在頂部添加了replicas轉換器。 您也可以在overlays/svr0/kustomization.yamlverlays/svr1/kustomization.yaml中添加一次。 如果這樣做,變壓器將變為:

replicas:
  - name: example
    count: 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM