我正在尝试使用 helm 设置 CronJob。我的工作模板部分如下
jobTemplate:
metadata:
creationTimestamp: null
spec:
backoffLimit: 3
template:
metadata:
creationTimestamp: null
spec:
containers:
- args:
- >
POD_LIST=($(kubectl get pod
--field-selector=status.phase=Succeeded -n ex-namespace -l
tekton.dev/pipeline | awk '$5 ~
/(^[6-9][0-9]*|^[1-5][0-9]+)d.*/ {print $1}')); for podname in
$POD_LIST; do;
echo "deleting pod $podname";
kubectl delete pod -n ex-namespace $podname;
done;
command:
- /bin/sh
- '-c'
image: > kubctlImage
imagePullPolicy: IfNotPresent
name: cleanup-completed-pods
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
securityContext: {}
serviceAccount: ral-tekton
serviceAccountName: ral-tekton
terminationGracePeriodSeconds: 30
schedule: 0 0 * * *
startingDeadlineSeconds: 200
successfulJobsHistoryLimit: 3
当此作业触发时,我在 Pod 日志中收到以下错误。
"/bin/sh: 1: 语法错误:"("意外"
显然这是一个 shell 脚本错误,但不确定我在这里缺少什么?
有人可以帮我找到这里的 shell 错误吗?
p.s:我复制了命令,将其转换为单行,并在我的 mac 的 /bin/sh shell 上尝试,似乎可以正常工作。
可能会工作,假设你的 kubectl 镜像有 gawk
- args:
- >
for podname in $(kubectl get pod
--field-selector=status.phase=Succeeded -n ex-namespace -l
tekton.dev/pipeline | awk '$5 ~
/(^[6-9][0-9]*|^[1-5][0-9]+)d.*/ {print $1}'); do
echo "deleting pod $podname";
kubectl delete pod -n ex-namespace $podname;
done;