[英]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.yaml
和verlays/svr1/kustomization.yaml
中添加一次。 如果這樣做,變壓器將變為:
replicas:
- name: example
count: 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.