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.

Durante el proceso de implementación, ¿cómo se transfieren los datos de su aplicación existente a una aplicación creada por una Chart pública de Helm para pilas LAMP?

Tome bitnami/wordpress o bitnami/drupal como ejemplo. Hay millones de artículos sobre cómo ejecutar dos líneas de código (helm get repo / helm install my-release chart) y tener una nueva versión completamente funcional de una aplicación en 30 segundos. Pero no puedo encontrar NINGUNA información sobre cómo obtener mis datos existentes en esa implementación.

En mi flujo de trabajo de desarrollo, uso dos imágenes de docker. Una es para los archivos de la aplicación y la otra es para la base de datos. Localmente, es bastante fácil ingresar mis datos en estas imágenes. Usando las instrucciones de docker de MariaDB, monto un directorio local que contiene mi archivo db.sql en /docker-entrypoint-initdb.d. Lo mismo ocurre con mis archivos: los descargo en un directorio local que luego se monta en la carpeta /var/www del contenedor. ¡Voilà! Aplicación en ejecución instantánea con todos los datos existentes.

Entonces, ¿cómo hago esto con un gráfico público de Helm?

Escenario: Obtengo copias locales de mi archivo db.sql y los archivos web. Realizo mis cambios. Quiero usar bitnami/drupal para instalar esto en un clúster (para que un colega pueda verlo, pruebas de aceptación del usuario, etc.). Entonces, ¿cómo hago eso? Si este es un problema de “values.yaml”, ¿cómo configuro ese archivo para que apunte al archivo de la base de datos que quiero inicializar? O, ¿cómo uso Helm install con –set para hacerlo?

Si poner en marcha una nueva aplicación es tan fácil como “helm install my-release bitnami/drupal”

entonces, ¿no debería ser igual de fácil ejecutar algo como

“helm install –set mariadb.docker-entrypoint-initdb.d.file=db.sql –set volume.www.initial.data=/local/web/files new-feature-ticket bitnami/drupal”?

Sé que eso es seudocódigo, pero eso es exactamente el tipo de respuesta que estoy buscando. Quiero poder implementar esto tan rápido como hago con una nueva aplicación, pero inicializada con mis datos existentes y la configuración mínima necesaria para hacerlo, ya sea a través de values.yaml o –set.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para llevar sus datos existentes a un despliegue utilizando un Chart Helm público como bitnami/wordpress o bitnami/drupal, puede utilizar la opción --set para configurar los valores del chart y hacer referencia a sus datos existentes.

    Por ejemplo, si tiene una copia local de db.sql y archivos web, puede especificar la ruta de estos archivos utilizando la opción --set:

    helm install --set mariadb.master.persistence.existingClaim=mysql-data \
    --set wordpress.persistence.existingClaim=wordpress-data \
    --set fileUploadVolume.existingClaim=uploads-data \
    my-release bitnami/wordpress
    

    En este ejemplo, mysql-data, wordpress-data y uploads-data son Persistent Volume Claims utilizados para almacenar los datos de la base de datos MySQL, los archivos de WordPress y las cargas de archivos, respectivamente. Al especificar --set con las reclamaciones existentes para cada componente, Helm utilizará los datos existentes en lugar de crear nuevos datos.

    También puede especificar la ruta de sus archivos locales utilizando la opción --set, como se muestra a continuación:

    helm install --set mariadb.master.persistence.existingClaim=mysql-data \
    --set wordpress.persistence.existingClaim=wordpress-data \
    --set fileUploadVolume.existingClaim=uploads-data \
    --set volumeMounts.configmap=configmap-volume \
    --set configmap.file="/ruta/al/archivo/configmap" \
    --set sharedFolder.file="/ruta/a/carpeta/compartida" \
    my-release bitnami/wordpress
    

    En este ejemplo, se utiliza un ConfigMap para almacenar los archivos de configuración y una carpeta compartida para almacenar los archivos de datos. Las rutas de estos archivos se especifican utilizando la opción --set, lo que le permite personalizar el despliegue con sus propios datos y configuración.

    En resumen, utilizar la opción --set con los valores del chart o crear un archivo values.yaml personalizado le puede ayudar a implementar una aplicación existente con sus datos de forma rápida y sencilla, al igual que implementar una nueva aplicación utilizando Helm.

Comments are closed.