es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Implementar gráficos condicionales basados en kubeVersion – Helm.

Tengo dos gráficos de Helm con las versiones: 1.3 & 4.0. Estoy buscando formas de implementar los gráficos en el proceso de CI/CD, basado en la versión del clúster kubeVersion, si kubeVersion > 1.19 entonces v4.0 sino v1.3. ¿Cómo puedo lograr este tipo de opción condicional en Charts.yaml? ¿Existe alguna manera para esto?

Gracias de antemano.

Actualización: Se utiliza Helm v3.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    En Helm v3, puedes lograr esta opción de implementación condicional utilizando una combinación de values.yaml y declaraciones if en tu archivo Chart.yaml.

    Primero, puedes definir el valor kubeVersion en tu archivo values.yaml, de la siguiente manera:

    kubeVersion: 1.20
    

    A continuación, en tu archivo Chart.yaml, puedes utilizar la declaración if para especificar condicionalmente qué versión del gráfico se debe implementar según el valor de kubeVersion:

    apiVersion: v2
    name: mychart
    version: 4.0.0
    
    # si kubeVersion es mayor o igual a 1.19
    if: kubeVersion | lt 1.19
    dependencies:
      - name: subchart
        version: 1.3.0
        repository: https://example.com/charts
    
    # si kubeVersion es menor que 1.19
    else:
    dependencies:
      - name: subchart
        version: 4.0.0
        repository: https://example.com/charts
    

    En el ejemplo anterior, si el valor de kubeVersion en el archivo values.yaml es menor que 1.19, el gráfico implementará la versión 1.3.0 del subchart. Si el valor de kubeVersion es mayor o igual a 1.19, el gráfico implementará la versión 4.0.0 del subchart.

    Ten en cuenta que necesitarás utilizar una herramienta de CI/CD que te permita pasar el valor de kubeVersion como parámetro al comando de implementación de Helm.

Comments are closed.