Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

417
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!