首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kustomize中的补丁特定资源

kustomize中的补丁特定资源
EN

Stack Overflow用户
提问于 2021-02-19 11:07:52
回答 1查看 583关注 0票数 0

我有一个在覆盖中导入的基础资源,它在覆盖中也会使其他资源来自相同的基础,但具有不同的后缀。在overlay中,需要对基础资源进行修补,而不会影响其他新创建的资源。但是,这三个参数都已更改。我如何才能只修改我想要修改的内容?

下面是一个这样的例子。基本资源是具有1个复制副本的部署。在覆盖图中,基础被添加为资源,但我尝试修补它并将副本设置为0。不幸的是,所有部署的所有副本都设置为0。

基座

代码语言:javascript
复制
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

覆盖

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2021-02-25 15:41:55

下面的方法应该是可行的。我擅自重新组织了一些目录结构,以使其更清晰。因为您只更新副本计数,所以我也切换到replicas转换器而不是补丁:

base/kustomization.yaml

代码语言:javascript
复制
resources:
  - deployment.yaml

overlays/svr0/kustomization.yaml

代码语言:javascript
复制
resources:
  - ../../base

nameSuffix: -svr0

overlays/svr1/kustomization.yaml

代码语言:javascript
复制
resources:
  - ../../base

nameSuffix: -svr1

`overlays/all/kustomization.yaml`:
```yaml

资源:

../../base../svr0../svr1

副本:

名称: example-svr0

计数:0名称:示例-svr1

计数: 0

代码语言:javascript
复制
On a side note: There is two ways to go about it. Here I add the `replicas` transformer at the top. You could also add it once in `overlays/svr0/kustomization.yaml` and once in `verlays/svr1/kustomization.yaml` instead. If you do so the transformer will become:

```javascript
replicas:
  - name: example
    count: 0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66271235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档