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
}
...
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:
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:
Ten en cuenta que deberás configurar manualmente los secretos para
nombre_secreto_usuario
ynombre_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.