【发布时间】:2021-05-22 01:41:46
【问题描述】:
我有一个基础资源,它在叠加层中导入,在叠加层中,它还生成来自相同基础但后缀不同的其他资源。在叠加层中,需要对基础资源进行修补,而不会影响其他新创建的资源。然而,这三个人都变了。我怎样才能只修改我打算修改的那个?
下面是一个例子。基本资源是具有 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
【问题讨论】:
标签: kubernetes kustomize