Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

422
Vistas
Kubernetes Jobspec pasa Json Args: ¿Por qué este Yaml no es válido y cómo solucionarlo?

Estoy tratando de ejecutar trabajos que llaman a aplicaciones de python que toman diccionarios como parámetros.

Por ejemplo, ejecutarlo localmente podría verse así:

 python3 examples/test.py '{"school":"EFG", "standard": "2", "name": "abc", "city": "miami"}'

Entonces, en mi especificación de trabajo, estoy tratando de hacer esto:

 command: ["/bin/bash","-c"] args: ["python3 examples/test.py '{"school":"EFG", "standard": "2", "name": "abc", "city": "miami"}'"]

Sin embargo, aparece un error de yaml:

 error: error parsing job.yaml.tmpl: error converting YAML to JSON: yaml: line 18: could not find expected ':'

Veo en yaml lint que no es válido. La única forma en que he logrado pasar la validación de yaml es escapar de cada comilla individual, que no es escalable para cientos de trabajos que los usuarios ejecutarán

 args: - "python3 examples/test.py '{\"school\":\"hello\", \"standard\": \"5\"}'"

¿Por qué este yaml no es válido y cómo puedo hacer esto sin necesidad de escapar de cada cita en un diccionario dado que pasa un usuario?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Es difícil replicar su configuración sin su código, sin embargo, los ejemplos a continuación deberían funcionar para usted. En Kubernetes Docs - Ejecutar un comando en un shell , puede encontrar información, que todos los comandos deben estar wrapped .

En algunos casos, necesita que su comando se ejecute en un shell. Por ejemplo, su comando puede consistir en varios comandos conectados juntos, o puede ser un script de shell. Para ejecutar su comando en un shell, envuélvalo.

A continuación tienes la sintaxis predeterminada

 command: ["/bin/sh","-c"] args: ["command one; command two && command three"]

Cambié un poco su comando y verifiqué en yamllint , todo pasó.

Ejemplos con solo /bin/bash en command :

 command: - /bin/bash args: - "-c" - "python3 examples/test.py '{\"school\":\"EFG\", \"standard\": \"2\", \"name\": \"abc\", \"city\": \"miami\"}'\"]" or command: ["/bin/bash"] args: ["-c", "python3 examples/test.py", '{"school":"EFG", "standard": "2", "name": "abc", "city": "miami"}']

Ejemplos con /bin/bash y -c en command :

 command: - /bin/bash - "-c" args: - "python3 examples/test.py" - "{\"school\":\"EFG\", \"standard\": \"2\", \"name\": \"abc\", \"city\": \"miami\"}" or command: ["/bin/bash", "-c"] args: ["python3 examples/test.py", '{"school":"EFG", "standard": "2", "name": "abc", "city": "miami"}']

Además, hubo una pregunta sobre la ejecución de varios comandos de kubernetes en spec . Puedes encontrarlo aquí .

Déjame saber si esto funcionó para ti.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda