kubernetes - 使用 kustomize 修补 kubernetes cronjob
问题描述
我正在尝试修补 cronjob,但不知怎的,它并没有像我预期的那样工作。我使用相同的文件夹结构进行部署,并且有效。
这是文件夹结构:
.
├── base
│ ├── kustomization.yaml
│ └── war.cron.yaml
└── overlays
└── staging
├── kustomization.yaml
├── war.cron.patch.yaml
└── war.cron.staging.env
基础/kustomization.yaml
---
kind: Kustomization
resources:
- war.cron.yaml
基地/war.cron.yaml
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: war-event-cron
spec:
schedule: "*/5 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: war-event-cron
image: my-registry/war-service
imagePullPolicy: IfNotPresent
command:
- python
- run.py
args:
- sync-events
envFrom:
- secretRef:
name: war-event-cron-secret
restartPolicy: OnFailure
然后我试图在暂存覆盖中修补它。
覆盖/登台/kustomization.yaml
---
kind: Kustomization
namespace: staging
bases:
- "../../base"
patchesStrategicMerge:
- war.cron.patch.yaml
secretGenerator:
- name: war-event-cron-secret
behavior: create
envs:
- war.cron.staging.env
覆盖/登台/war.cron.patch.yaml
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: war-event-cron
spec:
jobTemplate:
spec:
template:
spec:
containers:
- name: war-event-cron
image: my-registry/war-service:nightly
args:
- sync-events
- --debug
但结果kustomize build overlays/staging/
不是我想要的。command
消失了,没有secret
被引用。
apiVersion: v1
data:
...
kind: Secret
metadata:
name: war-event-cron-secret-d8m6bh7284
namespace: staging
type: Opaque
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: war-event-cron
namespace: staging
spec:
jobTemplate:
spec:
template:
spec:
containers:
- args:
- sync-events
- --debug
image: my-registry/war-service:nightly
name: war-event-cron
restartPolicy: OnFailure
schedule: '*/5 * * * *'
解决方案
这是已知的错误kustomize
- 检查并关注GitHub 上的这个主题(大约一个月前创建)以获取更多信息。
目前,解决您的问题是使用apiVersion:batch/v1beta1
而不是apiVersion: batch/v1
inbase/war.cron.yaml
和overlays/staging/war.cron.patch.yaml
文件。
推荐阅读
- c# - 如何将 Rebus 数据总线附件与 Rebus.Async 回复一起使用
- java - if-else 语句和运算符的问题
- python - 为什么在 python 3.8 中只使用位置参数?
- git - 如何在 React Native 中使用某人的拉取请求?
- google-apps-script - 如何在单元格中显示左零?'001 +1 = '002 通过谷歌脚本应用程序
- java - 向下滚动以查看我的页面末尾(在救护车图像下方)
- php - Laravel:yt-player 没有显示
- c# - 如何在 .NET 中更改 Wav 文件的格式?
- java - 使用 Microsoft REST API - Java 将 Xbox-Live GamerTag 转换为 XUID
- html - 如何使 div 最初隐藏并在输入输入时加载?