Utiliser Terraform

Pour configurer Terraform dans votre environnement Google Distributed Cloud (GDC) isolé, vous devez le télécharger et le configurer pour qu'il gère les ressources Kubernetes.

Ce document s'adresse à tous les groupes d'audience qui doivent configurer Terraform pour gérer leurs workflows matériels et logiciels isolés. Pour en savoir plus, consultez Audiences pour la documentation GDC sous air gap.

Avant de commencer

Configurer Terraform

Pour configurer Terraform dans votre environnement GDC, procédez comme suit :

  1. Dans votre module Terraform ou votre collection de fichiers Terraform sur votre poste de travail, créez le fichier main.tf et ajoutez la configuration suivante :

    terraform {
      backend "s3" {
        bucket = "BUCKET_FQN"
        key = "TF_STATE_PATH"
        endpoint = "BUCKET_ENDPOINT"
        skip_credentials_validation = true
        force_path_style = true
        access_key = "ACCESS_KEY"
        secret_key = "SECRET_KEY"
      }
    }
    

    Remplacez les éléments suivants :

    • BUCKET_FQN : nom complet de la ressource personnalisée Bucket.

    • TF_STATE_PATH : chemin d'accès au fichier d'état Terraform à stocker dans le bucket de stockage.

    • BUCKET_ENDPOINT : point de terminaison de la ressource personnalisée Bucket.

    • ACCESS_KEY : clé d'accès obtenue à partir du secret contenant vos identifiants d'accès. Pour savoir comment obtenir la clé d'accès, consultez Obtenir les identifiants d'accès au bucket.

    • SECRET_KEY : clé secrète obtenue à partir du secret contenant vos identifiants d'accès. Pour savoir comment obtenir la clé secrète, consultez Obtenir les identifiants d'accès au bucket.

  2. Initialisez votre fichier d'état Terraform dans le bucket de stockage que vous avez spécifié à l'étape précédente :

    terraform init
    

    Terraform peut demander une région AWS comme entrée obligatoire, mais la valeur n'est pas utilisée, car vous utilisez le stockage d'objets GDC. Saisissez n'importe quelle région AWS pour répondre à l'exigence.

  3. Déployez la ressource de rôle de cluster crd-viewer et associez-la à votre compte utilisateur :

    kubectl apply --kubeconfig KUBECONFIG -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: crd-viewer
    rules:
    - apiGroups: ["apiextensions.k8s.io"]
      resources: ["customresourcedefinitions"]
      verbs: ["get", "list", "watch"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: crd-viewer-binding
    subjects:
    - kind: User
      name: USER_EMAIL
    roleRef:
      kind: ClusterRole
      name: crd-viewer
      apiGroup: rbac.authorization.k8s.io
    EOF
    

    Remplacez les éléments suivants :

    • KUBECONFIG : fichier kubeconfig du serveur d'API ou du cluster qui héberge les ressources que vous gérez avec Terraform.

    • USER_EMAIL : adresse e-mail de l'utilisateur auquel attribuer le rôle.

    Déployez le rôle crd-viewer sur chaque serveur ou cluster d'API que vous souhaitez utiliser avec Terraform.

  4. Dans le fichier main.tf, insérez le bloc required_providers suivant :

    terraform {
      required_providers {
        kubernetes = {
          source = "hashicorp/kubernetes"
          version = ">=2.24.0"
        }
      }
    }
    

    Cette configuration installe le fournisseur Kubernetes pour provisionner et gérer les ressources Kubernetes dans votre environnement GDC.

  5. Initialisez votre répertoire de travail Terraform pour installer le fournisseur :

    terraform init
    

Étapes suivantes