无法通过 Helm 发送单行命令

问题描述 投票:0回答:1

我正在尝试使用 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 上尝试,似乎可以正常工作。

shell kubernetes-helm argocd
1个回答
1
投票

可能会工作,假设你的 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;
© www.soinside.com 2019 - 2024. All rights reserved.