Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

419
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda