在掌舵图中执行命令

siv3szwd  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(472)

我有一个Cassandra的舵图,它运行良好,我能够连接到它并运行 cqlsh 命令。
我想在图表上加一个舵钩。我已经设法做到了,但是,我不能在容器中执行cqlsh。这是我的kubernetes工作我想执行 post-install 阶段。

apiVersion: batch/v1
kind: Job
metadata:
  name: my-job
spec:
  template:
    metadata:
     name: hook-job
     annotations:
       "helm.sh/hook": post-install
       "helm.sh/hook-delete-policy": hook-succeeded
   spec:
     containers:
     - name: cqlsh-cmd
       image: <cassandra-image>
       command: ["bin/sh", "-c", "cqlsh"]
     restartPolicy: OnFailure

但是,找不到cqlsh命令。
总的来说,我不得不重复使用我在舵图中定义的同一个容器似乎很奇怪。我做错什么了吗?

ee7vknir

ee7vknir1#

此时您的吊舱/集装箱可能无法升起。在后生命周期下使用。

spec:
    containers:
    - name: cqlsh-cmd
      image: <cassandra-image>
      lifecycle:
        postStart:
          exec:
            command: ["/bin/sh", "-c", "
                set -x\n
                while true;\n
                do\n
                  echo 'looking cassandra...,'\n
                  timeout 1 bash -c 'cat < /dev/null > /dev/tcp/localhost/9042'\n
                  exitCode=$?\n

                  if [ $exitCode = 0 ]; then\n
                    cqlsh /**your command**/ \n
                    break;\n
                  fi\n
                  sleep 1s\n
                done\n
              "]

相关问题