Hi Francis,

I suggest accessing the environment variables directly, no need to pass
them as command arguments I guess.

Best,
Matyas

On Thu, Apr 28, 2022 at 11:31 AM Francis Conroy <
francis.con...@switchdin.com> wrote:

> Hi all,
>
> I'm trying to use a kubernetes secret as a command line argument in my job
> and the text replacement doesn't seem to be happening. I've verified
> passing the custom args via the command line on my local flink cluster but
> can't seem to get the environment var replacement to work.
>
> apiVersion: flink.apache.org/v1alpha1
> kind: FlinkDeployment
> metadata:
>   namespace: default
>   name: http-over-mqtt
> spec:
>   image: flink:1.14.4-scala_2.12-java11
>   flinkVersion: v1_14
>   flinkConfiguration:
>     taskmanager.numberOfTaskSlots: "2"
>     kubernetes.env.secretKeyRef: 
> "env:DJANGO_TOKEN,secret:switchdin-django-token,key:token"
> #    containerized.taskmanager.env.DJANGO_TOKEN: "$DJANGO_TOKEN"
>   serviceAccount: flink
>   jobManager:
>     replicas: 1
>     resource:
>       memory: "1024m"
>       cpu: 1
>   taskManager:
>     resource:
>       memory: "1024m"
>       cpu: 1
>   podTemplate:
>     spec:
>       serviceAccount: flink
>       containers:
>         - name: flink-main-container
>           volumeMounts:
>             - mountPath: /flink-job
>               name: flink-jobs
>           env:
>             - name: DJANGO_TOKEN  # kubectl create secret generic 
> switchdin-django-token --from-literal=token='[TOKEN]'
>               valueFrom:
>                 secretKeyRef:
>                   name: switchdin-django-token
>                   key: token
>                   optional: false
>       initContainers:
>         - name: grab-mqtt-over-http-jar
>           image: docker-push.k8s.local/test/switchdin/platform_flink:job-41
>           command: [ "/bin/sh", "-c",
>                      "cp /opt/switchdin/* /tmp/job/." ]  # Copies the jar in 
> the init container to the flink-jobs volume
>           volumeMounts:
>             - name: flink-jobs
>               mountPath: /tmp/job
>       volumes:
>         - name: flink-jobs
>           emptyDir: { }
>   job:
>     jarURI: local:///flink-job/switchdin-topologies-1.0-SNAPSHOT.jar
>     args: ["--swit-django-token", "$DJANGO_TOKEN",
>            "--swit-prod","false"]
>     entryClass: org.switchdin.HTTPOverMQTT
>     parallelism: 1
>     upgradeMode: stateless
>     state: running
>
> In the logs I can see:
>
> 2022-04-28 08:43:02,329 WARN org.switchdin.HTTPOverMQTT [] - ARGS ARE {}
> 2022-04-28 08:43:02,329 WARN org.switchdin.HTTPOverMQTT [] -
> --swit-django-token
> 2022-04-28 08:43:02,330 WARN org.switchdin.HTTPOverMQTT [] - $DJANGO_TOKEN
> 2022-04-28 08:43:02,330 WARN org.switchdin.HTTPOverMQTT [] - --swit-prod
> 2022-04-28 08:43:02,330 WARN org.switchdin.HTTPOverMQTT [] - false
>
> Anyone know how I can do this? I'm considering mounting it in a volume,
> but that seems like a lot of hassle for such a small thing.
>
> Thanks in advance!
>
>
> This email and any attachments are proprietary and confidential and are
> intended solely for the use of the individual to whom it is addressed. Any
> views or opinions expressed are solely those of the author and do not
> necessarily reflect or represent those of SwitchDin Pty Ltd. If you have
> received this email in error, please let us know immediately by reply email
> and delete it from your system. You may not use, disseminate, distribute or
> copy this message nor disclose its contents to anyone.
> SwitchDin Pty Ltd (ABN 29 154893857) PO Box 1165, Newcastle NSW 2300
> Australia
>

Reply via email to