我正在尝试修补一个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
然后我试图在staging覆盖中修补这个。
覆盖/分期/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
在base/war.cron.yaml
和overlays/staging/war.cron.patch.yaml
文件。