skip to Main Content

Hello I am trying to passing a env values to a job in order to do this I use the following kubernetes template:

apiVersion: batch/v1
kind: Job
metadata:
  name: socksdownloader
spec:
  template:
    spec:
      containers:
      - name: socksdownloader
        image: socksdownloader:0.0.1
   #     env:
   #     - name: REDIS_HOST
   #       value: redis
   #     - name: REDIS_PORT
   #       value: 6379
   #     - name: REDIS_DB
   #       value: 0
   #     - name: REDIS_KEY
   #       value: "SOCK:"
        command: ["python",  "src/main.py"]
      restartPolicy: Never
  backoffLimit: 4

If I uncoment the env entries of the yml I got the following error:

The request is invalid: patch: Invalid value:
"map[metadata:map[annotations:map[kubectl.kubernetes.io/last-applied-configuration:{"apiVersion":"batch/v1","kind":"Job","metadata":{"annotations":{},"name":"socksdownloader","namespace":"default"},"spec":{"backoffLimit":4,"template":{"spec":{"containers":[{"command":["python","src/main.py"],"env":[{"name":"REDIS_HOST","value":"redis"},{"name":"REDIS_PORT","value":6379},{"name":"REDIS_DB","value":0},{"name":"REDIS_KEY","value":"SOCK:"}],"image":"socksdownloader:0.0.1","name":"socksdownloader"}],"restartPolicy":"Never"}}}}n]] spec:map[template:map[spec:map[]]]]": cannot convert int64 to string

The question is how can I pass that values to a Job in order to that can get connection to redis.

Thanks

2

Answers


  1. For the port it needs to be value: "6379" and similar for the DB. YAML automatically guesses if something looks like a number but environment variables must be strings. Hence "cannot convert int64 to string".

    Login or Signup to reply.
  2. Kubernetes’ envvar specification requires environment variable values to be coerced as strings, so integers need to be passed through quote.

    Use quotes with the integer values:

    - name: REDIS_PORT
      value: "6379"
    - name: REDIS_DB
      value: "0"
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search