Kustomize 用法简介二(删)

耶喝运维 2021-02-26
592

删除

先说几个一下patch的区别

  • patchesStrategicMerge:将所有的文件解析为Strategic Merge Patch
  • patchesJSON6902:将所有的文件解析为Json Path
  • patches:它会自动检测是patchesStrategicMerge还是patchesJSON6902 在使用这三个patch的时候,按道理来说是应该区别对待 ,但是第三个可以自动检测,我在生产环境中都是使用第三个patches,让它自动解析格式进行,不知道是否有坑,目前没有遇到过

创建一个新的目录,yehe/overlays/delete 使用patches语法,可以删除指定内容

删除一个对象

我们使用上一章创建的service对象,去测试删除语法,首先集成overlays/add 的Kustomization,在overlays/delete 中创建kustomization.yaml

bases:
- ../add
patches:
- remove-svc.yaml

remoce-svc.yaml

kind: Service
apiVersion: v1
metadata:
  name: nginx
$patch: delete

与模型 kustomize build overlays/delete
,可以看到,Service已经被删除

删除一个字段

我们用类似的方法,删除之前的env 创建一个remove-filed.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: flaskapp
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: flaskapp
        version: v1
    spec:
      containers:
        - name: flaskapp
          image: dustise/flaskapp
          env:
          - name: CONFIG
            $patch: delete

再把补丁加入kustomization.yaml

bases:
- ../add
patchesStrategicMerge:
- remove-svc.yaml
- remove-field.yaml

再次使用kustomize build overlays/delete
,可以看到新的环境变量已经被删除


文章转载自耶喝运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论