Requisitos
Atlantis funciona con la mayoría de los hosts de Git y configuraciones de Terraform. Continúe leyendo para confirmar que funciona con la suya.
Host de Git
Atlantis se integra con los siguientes hosts de Git:
- GitHub (público, privado o enterprise)
- GitLab (público, privado o enterprise)
- Gitea (público, privado y forks compatibles como Forgejo)
- Bitbucket Cloud aka bitbucket.org (público o privado)
- Bitbucket Server aka Stash
- Azure DevOps
Versión de GitLab
Atlantis soporta versiones de GitLab con mantenimiento activo. GitLab 15.6 introdujo detailed_merge_status, que Atlantis usa para comprobaciones más precisas de mergeable apply requirement. En versiones anteriores de GitLab, Atlantis recurre al campo heredado merge_status, que puede informar una merge request como mergeable incluso cuando la rama necesita un rebase.
Estado de Terraform
Atlantis soporta todos los tipos de backend excepto local state. No soportamos local state porque Atlantis no tiene almacenamiento permanente y no hace commit del nuevo statefile de vuelta al control de versiones.
TIP
Si está buscando una solución sencilla de remote state, revise el almacenamiento de free remote state de Terraform Cloud. Esto es totalmente soportado por Atlantis.
Estructura del Repositorio
Atlantis soporta cualquier estructura de repositorio de Terraform, por ejemplo:
Proyecto único de Terraform en la raíz del repo
.
├── main.tf
└── ...Múltiples carpetas de proyecto
.
├── project1
│ ├── main.tf
| └── ...
└── project2
├── main.tf
└── ...Módulos
.
├── project1
│ ├── main.tf
| └── ...
└── modules
└── module1
├── main.tf
└── ...Con módulos, si quiere que project1 sea planificado automáticamente cuando module1 sea modificado, necesita crear un archivo atlantis.yaml. Vea atlantis.yaml Use Cases para más detalles.
Terraform Workspaces
Vea la documentación de Terraform si no está familiarizado con los workspaces.
Si está usando Terraform >= 0.9.0, Atlantis soporta workspaces mediante un archivo atlantis.yaml que le dice a Atlantis los nombres de sus workspaces (vea atlantis.yaml Use Cases para más detalles)
Archivos .tfvars
.
├── production.tfvars
│── staging.tfvars
└── main.tfAtlantis soporta archivos .tfvars de dos maneras:
Archivos automáticos env/{workspace}.tfvars
Atlantis incluye automáticamente archivos de variables específicos del workspace si existen en un directorio env/:
.
├── main.tf
├── variables.tf
└── env/
├── default.tfvars
├── staging.tfvars
└── production.tfvarsAl usar esta estructura, Atlantis incluirá automáticamente el archivo apropiado según el workspace:
atlantis planincluyeenv/default.tfvarsatlantis plan -w stagingincluyeenv/staging.tfvarsatlantis plan -w productionincluyeenv/production.tfvars
Esto no requiere configuración adicional y funciona automáticamente.
Archivos .tfvars personalizados con atlantis.yaml
Para otras ubicaciones o estructuras de archivos .tfvars, necesita crear un archivo atlantis.yaml para decirle a Atlantis que use -var-file={YOUR_FILE}. Vea atlantis.yaml Use Cases para más detalles.
Múltiples Repos
Atlantis también soporta múltiples repos, siempre que haya un webhook configurado para cada repo.
Versiones de Terraform
Atlantis soporta todas las versiones de Terraform (incluida 0.12) y puede configurarse para usar diferentes versiones para diferentes repos/proyectos. Vea Terraform Versions.
Próximos Pasos
- Si su configuración de Terraform cumple con los requisitos de Atlantis, continúe con la guía de instalación y configure sus Git Host Access Credentials