Tout ce qui est publié sur Terraform Registry est public.
Terraform Cloud permet de publier des modules privés à l’intérieur du Terraform Cloud Private Registry.
Tous les utilisateurs de l’organisations peuvent voir les modules du registry privé
On peut importer un module d’un registry privé via HOSTNAME/NAMESPACE/NAME/PROVIDER:
module "vpc" {
source = "app.terraform.io/example_corp/vpc/aws"
version = "0.9.3"
}
Terraform Cloud supporte 3 types de tokens API: user, team et organization.
Le type de token utilisé donne accès à différentes permissions.
organization: settings > security: API tokens
Token à l’échelle de l’organisation.
Permet de créer et configurer les workspaces et teams.
Chaque organisation ne peut avoir qu’un token valide à un instant T et
seuls les propriétaires de l’organisation peuvent générer ou annuler ce token
team: settings > organization settings : teams
Tokens à l’échelles des équipes.
Permet d’accéder aux workspaces auxquels l’équipe a accès et d’effectuer des actions dessus.
Chaque équipe ne peut avoir qu’un token valide à un instant T et
tout membre de l’équipe peut générer ou annuler ce token
user: user settings > tokens
Token à l’échelle des utilisateurs.
Hérite des permissions auxquelles l’utilisateur est associé.
Ce peut être pour un utilisateur réel ou un service account.
Utiliser terraform login obtient un user token
Organization-level
Gérer les permissions de certaines ressources ou configurations à l’échelle de l’organisation.
Certaines actions ne sont accessibles qu’aux propriétaires (1 à n personnes) de l’organisation
Workspace-level
Gérer les permissions pour un workspace spécifique
Une estimation des coûts associés au plan est disponible et sera affiché dans le détail du plan
Ce calcul ne concerne que certaines ressource d’AWS, azure ou GCP
Cette fonctionnalité n’est disponible que pour
la version payante de Terraform Cloud — dans le plan “Teams & Governance”
On peut définir une politique Sentinel pour s’assurer que le coûts des ressources reste en dessous d’un tarif donné. Les vérifications seront effectuées au lancement d’un run
Settings > Policy sets > create a new policy set
Policies > Create a new policy
Un run environment est une VM ou container crée pour l’exécution du code terraform.
Il s’agit d’une machine Linux d’architecture x86_64, et qui est à usage unique
Terraform Cloud injecte les variables d’environnement suivantes:
Variable | Description |
---|---|
TFC_RUN_ID |
Un identifiant unique pour le run en cours |
TFC_WORKSPACE_NAME |
Le nom du workspace |
TFC_WORKSPACE_SLUG |
Le slug de la configuration utilisée — c’est à dire organization/workspace |
TFC_CONFIGURATION_VERSION_GIT_BRANCH |
Le nom de la branche utilisée |
TFC_CONFIGURATION_VERSION_GIT_COMMIT_SHA |
Le sha du commit |
TFC_CONFIGURATION_VERSION_GIT_TAG |
Le tag du commit |
On peut y accéder dans les fichiers de configuration en définissant une variable de même nom
variable "TFC_RUN_ID" {}
On peut choisir dans les paramètres
Agents est une fonctionnalité payante du plan “Business”, qui permet à Terraform Cloud de communiquer avec une infrastructure isolée, privée ou on-premise — comme vSphere, Nutanix ou OpenStack.