LoginSignup
0
0

More than 3 years have passed since last update.

Kubernetes: CronJob で Secrets を使う

Posted at

CronJob で認証付きの WebAPI を叩きたい。Secrets に秘匿情報を入れて、それを環境変数として参照するのが良さそうということでやってみた。

まず、key=value の形式でファイルを作る。

$ cat > env-secrets.txt
USER=hoge
PASSWORD=fugafuga

kubectl create secret generic <名前> --from-env-file <filename> で登録する。

$ kubectl create secret generic secrets-sample --from-env-file env-secrets.txt
secret/secrets-sample created

これを secretRef で参照すると、そのまま環境変数として参照できるようになる

secretstest.yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: secretstest
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: busybox
            image: busybox
            envFrom:
            - secretRef:
                name: secrets-sample
            args:
            - /bin/sh
            - -c
            - echo $USER; echo $PASSWORD
          restartPolicy: OnFailure
$ kubectl apply -f secretstest.yaml
$ kubectl get pods  # 実行されるまで最大1分待つ
NAME                           READY   STATUS      RESTARTS   AGE
secretstest-1234567890-ababa   0/1     Completed   0          10s
$ kubectl logs secretstest-1234567890-ababa
hoge
fugafuga

後片付け

$ rm env-secrets.txt
$ kubectl delete cronjob secretstest
$ kubectl delete secrets secrets-sample

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0