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.

Crear un entorno de Cloud Composer con un repositorio privado utilizando Terraform.

Estoy tratando de crear un entorno de Cloud Composer con un paquete PyPI de un repositorio privado utilizando Terraform. Cloud Composer admite repositorios privados de PyPI. Sin embargo, la configuración de un repositorio privado requiere un cubo de Composer existente.

Cuando uso Terraform para crear un entorno, el cubo y el entorno se crean de una vez. Según lo que puedo ver, la creación del entorno fallará antes de tener la oportunidad de escribir el archivo de configuración en el cubo. ¿Hay alguna manera de crear un entorno de Cloud Composer con un repositorio privado utilizando Terraform?

Esto es aproximadamente lo que estoy intentando hacer:

resource "google_composer_environment" "test" {
  provider = google-beta
  project  = var.project_id
  region   = var.region
  config {
    software_config {
      image_version = "composer-2.0.0-airflow-2.1.4"
      pypi_packages = {
        mypackage = "*"  # desde un repositorio privado de PyPI
      }
    ...
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, actualmente no es posible crear un entorno de Cloud Composer con un repositorio privado utilizando Terraform de una sola vez. La creación del entorno fallará antes de que la configuración del paquete PyPI pueda ser escrita en el bucket del composer.

    Una posible solución alternativa para este problema es crear primero el bucket de Cloud Composer por separado utilizando un recurso de Terraform, y luego crear el entorno de Cloud Composer utilizando otro recurso de Terraform. Una vez creado el entorno, puede configurar manualmente el repositorio privado de PyPI utilizando la interfaz de usuario o la API de Cloud Composer.

    Aquí tienes un ejemplo de cómo crear un bucket de Cloud Composer utilizando Terraform:

    recurso "google_storage_bucket" "composer_bucket" {
      nombre          = "mi-bucket-de-composer"
      proyecto       = var.project_id
      ubicación      = var.region
      destrucción_forzada = true
    
      versionado {
        habilitado = true
      }
    
      regla_de_ciclo_de_vida {
        acción {
          tipo = "Eliminar"
        }
    
        condición {
          edad = 30
        }
      }
    }
    

    Y aquí tienes un ejemplo de cómo crear un entorno de Cloud Composer que utiliza el bucket creado anteriormente y un repositorio privado de PyPI:

    recurso "google_composer_environment" "test" {
      proveedor = google-beta
      proyecto  = var.project_id
      región   = var.region
    
      configuración {
        configuración_de_software {
          versión_de_imagen = "composer-2.0.0-airflow-2.1.4"
          paquetes_pypi = {
            mi_paquete = "*"
          }
        }
        cantidad_de_nodos = 3
    
        # Utiliza el bucket creado previamente para el entorno
        prefijo_dag_gcs = "gs://${google_storage_bucket.composer_bucket.name}/dags"
    
        # Configura las credenciales del repositorio privado de PyPI
        configuración_de_entorno_privado {
          paquetes_pypi {
            nombre             = "mi_paquete"
            nombre_repositorio  = "mi-repo-privado"
            url_repositorio   = "https://mi-repo-privado.com/pypi"
            nombre_secreto_usuario  = "mi-secreto-de-usuario"
            nombre_secreto_contraseña  = "mi-secreto-de-contraseña"
            método_autenticación      = "TOKEN" # o "BASIC_AUTH" para autenticación básica
          }
        }
      }
    }
    

    Ten en cuenta que deberás configurar manualmente los secretos para nombre_secreto_usuario y nombre_secreto_contraseña utilizando la Consola de Cloud o Cloud SDK. También puedes utilizar otros métodos para almacenar y gestionar secretos, como HashiCorp Vault, y recuperarlos utilizando fuentes de datos o módulos externos de Terraform.

Comments are closed.