Hola, estoy tratando de pasar valores env a un trabajo para hacer esto, uso la siguiente plantilla de kubernetes:
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
Si descomento las entradas env del yml, obtengo el siguiente error:
La solicitud no es válida: parche: Valor no válido: "mapa[metadatos:mapa[anotaciones:mapa[kubectl.kubernetes.io/last-applied-configuration:{"apiVersion":"batch/v1","kind":"Job ","metadatos":{"anotaciones":{},"name":"socksdownloader","namespace":"default"},"spec":{"backoffLimit":4,"template":{"spec" :{"contenedores":[{"comando":["python","src/main.py"],"env":[{"nombre":"REDIS_HOST","valor":"redis"},{ "nombre":"REDIS_PORT","valor":6379},{"nombre":"REDIS_DB","valor":0},{"nombre":"REDIS_KEY","valor":"SOCK:"}] ,"image":"socksdownloader:0.0.1","name":"socksdownloader"}],"restartPolicy":"Nunca"}}}}\n]] spec:map[template:map[spec:map[ ]]]]": no se puede convertir int64 a cadena
La pregunta es cómo puedo pasar esos valores a un trabajo para que pueda conectarse a redis.
Gracias
La especificación envvar de envvar
requiere que los valores de las variables de entorno se coaccionen como cadenas, por lo que los números enteros deben pasarse entre comillas.
Use comillas con los valores enteros:
- name: REDIS_PORT value: "6379" - name: REDIS_DB value: "0"
Para el puerto debe tener el value: "6379"
y similar para la base de datos. YAML adivina automáticamente si algo parece un número, pero las variables de entorno deben ser cadenas. Por lo tanto, "no se puede convertir int64 a cadena".