cos*_*-14 3 kubernetes kustomize
我想用 kustomize 删除容器中的一些环境变量?那可能吗?当我打补丁时,它只是添加,正如你可能知道的那样。
如果不可能,我们可以将环境变量名称和密钥名称/密钥对一起替换吗?
containers:
- name: container1
env:
- name: NAMESPACE
valueFrom:
secretKeyRef:
name: x
key: y
Run Code Online (Sandbox Code Playgroud)
对此的任何帮助将不胜感激!谢谢!
如果您想NAMESPACE从清单中删除该变量,可以使用特殊$patch: delete指令来执行此操作。
如果我从这个部署开始:
apiVersion: apps/v1
kind: Deployment
metadata:
name: example
spec:
template:
spec:
containers:
- name: example
image: docker.io/traefik/whoami:latest
env:
- name: ENV_VAR_1
valueFrom:
secretKeyRef:
name: someSecret
key: someKeyName
- name: ENV_VAR_2
value: example-value
Run Code Online (Sandbox Code Playgroud)
如果我写在我的kustomization.yaml:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
patches:
- patch: |
apiVersion: apps/v1
kind: Deployment
metadata:
name: example
spec:
template:
spec:
containers:
- name: example
env:
- name: ENV_VAR_1
$patch: delete
Run Code Online (Sandbox Code Playgroud)
那么输出kustomize build就是:
apiVersion: apps/v1
kind: Deployment
metadata:
name: example
spec:
template:
spec:
containers:
- env:
- name: ENV_VAR_2
value: example-value
image: docker.io/traefik/whoami:latest
name: example
Run Code Online (Sandbox Code Playgroud)
使用这样的策略性合并补丁比 Nijat 的答案等 JSONPatch 风格的补丁有优势,因为它不依赖于环境变量的定义顺序。
| 归档时间: |
|
| 查看次数: |
3029 次 |
| 最近记录: |