Ce guide vous explique comment créer, gérer et supprimer des groupes de déploiement.
Un groupe de déploiement est un ensemble de déploiements organisés dans un graphique acyclique orienté. Utilisez des groupes de déploiement pour gérer les déploiements associés en tant que ressource logique unique. Vous pouvez appliquer les déploiements dans l'ordre topologique ou les supprimer dans l'ordre topologique inverse.
Avant de commencer
- Assurez-vous qu'Infra Manager est activé, et que la Google Cloud CLI est installée et initialisée.
- Assurez-vous de disposer du rôle d'administrateur de configuration (
roles/config.admin) d'Identity and Access Management. Assurez-vous que votre projet comporte un déploiement existant ou créez-en un. Pour créer un déploiement de test afin de créer des groupes de déploiement, exécutez la commande suivante :
gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/NEW_DEPLOYMENT_ID \ --service-account=SERVICE_ACCOUNT \ --git-source-repo="https://github.com/terraform-google-modules/terraform-google-network" \ --git-source-directory="examples/simple_project_with_regional_network" \ --git-source-ref="v6.0.1" \ --input-values=network_name=test-network,project_id=PROJECT_ID \ --import-existing-resourcesRemplacez les éléments suivants :
- PROJECT_ID : ID de votre Google Cloud projet.
- LOCATION : emplacement du déploiement
que vous devez créer pour créer un groupe de déploiement. Google Cloud Par exemple,
us-central1. - NEW_DEPLOYMENT_ID : ID d'un
déploiement. Vous avez besoin d'un déploiement existant pour créer un groupe de déploiement.
Remplacez
EXISTING_DEPLOYMENT_IDparNEW_DEPLOYMENT_IDdans les sections suivantes. - SERVICE_ACCOUNT : ID du compte de service que vous utilisez pour créer le déploiement.
Créer un groupe de déploiement
Un groupe de déploiement est un ensemble de déploiements qu'Infra Manager gère en tant qu'unité logique unique.
Lorsque vous créez un groupe de déploiement, chaque déploiement que vous ajoutez au groupe est une unité de déploiement.
Pour créer un groupe de déploiement, utilisez l'API REST comme suit :
Envoyez une requête
POSTau point de terminaisondeploymentGroups:curl \ -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/?deployment_group_id=DEPLOYMENT_GROUP_ID" \ --data '{ "deploymentUnits": [ { "id": "DEPLOYMENT_UNIT_ID_1", "deployment": "projects/PROJECT_ID/locations/LOCATION/deployments/EXISTING_DEPLOYMENT_ID" }, { "id": "DEPLOYMENT_UNIT_ID_2", "dependencies": ["DEPENDENT_UNIT_ID"] } ] }'Remplacez les éléments suivants :
- PROJECT_ID : ID de votre Google Cloud projet.
- LOCATION : emplacement du groupe de déploiement. Google Cloud Par exemple,
us-central1. - DEPLOYMENT_GROUP_ID : ID du groupe de déploiement que vous souhaitez créer.
- DEPLOYMENT_UNIT_ID_1 : ID de l'unité de déploiement à ajouter au groupe de déploiement.
- EXISTING_DEPLOYMENT_ID : ID d'un déploiement existant que vous utilisez pour créer une unité de déploiement du groupe de déploiement.
- DEPLOYMENT_UNIT_ID_2 : ID d'une deuxième unité de déploiement à ajouter au groupe de déploiement. Vous pouvez ajouter des définitions pour chaque unité de déploiement que vous souhaitez ajouter à votre groupe de déploiement.
- Facultatif : DEPENDENT_UNIT_ID : ID de l'unité de déploiement qui sert de dépendance. Cette dépendance doit être provisionnée avant l'unité définie et déprovisionnée après celle-ci.
Envoyez une requête
GETau point de terminaisondeploymentGroup:curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID"Remplacez les éléments suivants :
- PROJECT_ID : ID de votre Google Cloud projet.
- LOCATION : emplacement du groupe de déploiement. Google Cloud Par exemple,
us-central1. - DEPLOYMENT_GROUP_ID : ID du nouveau groupe de déploiement.
Provisionner un groupe de déploiement
Pour appliquer les déploiements référencés dans un groupe de déploiement, vous devez provisionner le groupe. Le provisionnement applique les déploiements dans l'ordre défini par la structure deploymentUnits. Si vous devez créer ou mettre à jour un déploiement au cours de ce processus, vous pouvez fournir sa définition dans l'objet deploymentSpecs de votre requête de provisionnement.
Pour provisionner un groupe de déploiement, utilisez l'API REST comme suit :
Envoyez une requête
POSTau point de terminaisonprovision:curl \ -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID:provision" \ --data '{ "deploymentSpecs": { "DEPLOYMENT_UNIT_ID_2": { "deploymentId": "DEPLOYMENT_ID_2", "deployment": { "terraformBlueprint": { "gitSource": { "directory": "examples/simple_project_with_regional_network", "ref": "v6.0.1", "repo": "https://github.com/terraform-google-modules/terraform-google-network" }, "inputValues": { "network_name": { "inputValue": "test-network" } }, "externalValues": { "project_id": { "deploymentSource": { "deployment": "projects/PROJECT_ID/locations/LOCATION/deployments/EXISTING_DEPLOYMENT_ID", "outputName": "project_id" } } } }, "serviceAccount": "SERVICE_ACCOUNT", "importExistingResources": true } } } }'Remplacez les éléments suivants :
- PROJECT_ID : ID de votre Google Cloud projet.
- LOCATION : emplacement du groupe de déploiement. Google Cloud Par exemple,
us-central1. - DEPLOYMENT_GROUP_ID : ID du nouveau groupe de déploiement.
- DEPLOYMENT_UNIT_ID_2 : ID d'une deuxième unité de déploiement à ajouter au groupe de déploiement. Vous pouvez ajouter des définitions pour chaque unité de déploiement que vous souhaitez ajouter à votre groupe de déploiement.
- DEPLOYMENT_ID_2 : ID de chaîne de la deuxième unité de déploiement à ajouter au groupe de déploiement.
- EXISTING_DEPLOYMENT_ID : ID d'un déploiement existant.
- SERVICE_ACCOUNT : ID de chaîne du compte de service que vous utilisez pour provisionner le groupe de déploiement.
Pour envoyer une requête
GETau point de terminaison des opérations, utilisez l'API REST comme suit :curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"Remplacez les éléments suivants :
- PROJECT_ID : ID de votre Google Cloud projet.
- LOCATION : emplacement du groupe de déploiement. Google Cloud Par exemple,
us-central1. - OPERATION_ID : ID de l'opération que vous
souhaitez interroger. Par exemple,
operation-1000000000000-64d67ecd2868c-caa044f9-6b48677e
Infra Manager utilise une opération de longue durée (LRO) pour afficher la progression du provisionnement. Une réponse réussie indique que le provisionnement est terminé :
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OP_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.config.v1.OperationMetadata", "createTime": "2026-02-24T01:27:57.045161236Z", "target": "projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID", "verb": "update", "requestedCancellation": false, "apiVersion": "v1", "provisionDeploymentGroupMetadata": { "step": "PROVISIONING_DEPLOYMENT_UNITS", "deploymentUnitProgresses": [ { "unitId": "DEPLOYMENT_UNIT_ID_1", "deployment": "projects/PROJECT_ID/locations/LOCATION/deployments/EXISTING_DEPLOYMENT_ID", "state": "APPLYING_DEPLOYMENT", "intent": "UPDATE_DEPLOYMENT", "deploymentOperationSummary": { "build": "56c739c7-cf42-457c-a889-0e0c139cf7b3", "logs": "gs://path/to/log", "content": "gs://path/to/content", "artifacts": "gs://path/to/artifacts" } }, { "unitId": "DEPLOYMENT_UNIT_ID_2", "state": "QUEUED", "intent": "CREATE_DEPLOYMENT" } ] } } }Où :
- OP_ID : ID de l'opération. Généré par Infra Manager.
- EXISTING_DEPLOYMENT_ID : ID du déploiement qu'
Infra Manager provisionnera avant
DEPLOYMENT_UNIT_ID_1.
Lister les révisions d'un groupe de déploiement
Infra Manager crée une révision de groupe de déploiement une fois qu'une opération provision
ou deprovision est terminée.
Pour lister les révisions de groupe de déploiement, utilisez l'API REST comme suit :
Envoyez une requête
GETau point de terminaisonrevisions:curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID/revisions"Remplacez les éléments suivants :
- PROJECT_ID : ID de votre Google Cloud projet.
- LOCATION : emplacement du groupe de déploiement. Google Cloud Par exemple,
us-central1. - DEPLOYMENT_GROUP_ID : ID du groupe de déploiement pour lequel vous souhaitez lister les révisions.
Mettre à jour un groupe de déploiement
Pour mettre à jour un groupe de déploiement, modifiez sa définition. Vous pouvez éventuellement provisionner la définition mise à jour dans le groupe de déploiement.
Pour mettre à jour un groupe de déploiement, utilisez l'API REST comme suit :
Envoyez une requête
PATCHau point de terminaisondeploymentGroups:curl \ -X PATCH \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID" \ --data '{ "deploymentUnits": [ { "id": "DEPLOYMENT_UNIT_ID_3" } ] }'Remplacez les éléments suivants :
- PROJECT_ID : ID de votre Google Cloud projet.
- LOCATION : emplacement du groupe de déploiement. Google Cloud Par exemple,
us-central1. - DEPLOYMENT_GROUP_ID : ID du groupe de déploiement que vous souhaitez mettre à jour.
- DEPLOYMENT_UNIT_ID_3 : ID du déploiement à mettre à jour.
Facultatif : provisionnez le groupe de déploiement mis à jour. Envoyez une requête
POSTau point de terminaisonprovision:curl \ -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID:provision" \ --data '{ "deploymentSpecs": { "DEPLOYMENT_UNIT_ID_3": { "deploymentId": "EXISTING_DEPLOYMENT_ID", "deployment": { "terraformBlueprint": { "gitSource": { "directory": "examples/simple_project_with_regional_network", "ref": "v6.0.1", "repo": "https://github.com/terraform-google-modules/terraform-google-network" }, "inputValues": { "network_name": { "inputValue": "test-network" }, "project_id": { "inputValue": "PROJECT_ID" } } }, "serviceAccount": "SERVICE_ACCOUNT", "importExistingResources": true } } } }'Remplacez les éléments suivants :
- PROJECT_ID : ID de votre Google Cloud projet.
- LOCATION : emplacement du groupe de déploiement. Google Cloud Par exemple,
us-central1. - DEPLOYMENT_GROUP_ID : ID du groupe de déploiement que vous souhaitez mettre à jour.
- DEPLOYMENT_UNIT_ID_3 : ID d'une troisième unité de déploiement à ajouter au groupe de déploiement.
- EXISTING_DEPLOYMENT_ID : ID d'un déploiement existant.
- SERVICE_ACCOUNT : ID de chaîne du compte de service que vous utilisez pour mettre à jour le groupe de déploiement.
Lorsque vous provisionnez un groupe de déploiement, les modifications basées sur la dernière révision réussie sont appliquées aux déploiements du groupe de déploiement.
Si vous supprimez un déploiement de la définition du groupe de déploiement, puis que vous le provisionnez, le déploiement supprimé sera supprimé avec ses ressources.
Une réponse réussie indique que le provisionnement est terminé.
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OP_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.config.v1.OperationMetadata", "createTime": "2026-02-26T20:03:26.580085899Z", "target": "projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID", "verb": "update", "requestedCancellation": false, "apiVersion": "v1", "provisionDeploymentGroupMetadata": { "step": "PROVISIONING_DEPLOYMENT_UNITS", "deploymentUnitProgresses": [ { "unitId": "revisions/REVISION_ID/deploymentUnits/DEPLOYMENT_UNIT_ID_2", "deployment": "projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID_2", "state": "DELETING_DEPLOYMENT", "intent": "CLEAN_UP", "deploymentOperationSummary": { "deploymentStep": "VALIDATING_REPOSITORY" } }, { "unitId": "revisions/REVISION_ID/deploymentUnits/DEPLOYMENT_UNIT_ID_1", "deployment": "projects/PROJECT_ID/locations/LOCATION/deployments/NEW_DEPLOYMENT_NAME", "state": "QUEUED", "intent": "CLEAN_UP" }, { "unitId": "DEPLOYMENT_UNIT_ID_3", "state": "QUEUED", "intent": "RECREATE_DEPLOYMENT" } ] } }, "done": false }Où :
- OP_ID : ID de l'opération. Généré par Infra Manager.
- REVISION_ID : ID de la révision. Généré par Infra Manager.
Déprovisionner un groupe de déploiement
Déprovisionnez un groupe de déploiement pour supprimer tous les déploiements référencés et tous les déploiements qui faisaient partie de la dernière révision réussie (mais qui ont été supprimés depuis).
Pour déprovisionner un groupe de déploiement, utilisez l'API REST comme suit :
Envoyez une requête
POSTau point de terminaisondeprovision:curl \ -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID:deprovision" \ --data '{ "deletePolicy": "DELETE", "force": true }'Remplacez les éléments suivants :
- PROJECT_ID : ID de votre Google Cloud projet.
- LOCATION : emplacement du groupe de déploiement. Google Cloud
Par exemple,
us-central1. - DEPLOYMENT_GROUP_ID : ID du groupe de déploiement que vous souhaitez déprovisionner.
Une réponse réussie indique que le déprovisionnement est terminé.
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OP_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.config.v1.OperationMetadata", "createTime": "2026-02-26T20:12:46.929574561Z", "endTime": "2026-02-26T20:14:04.390333218Z", "target": "projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID", "verb": "update", "requestedCancellation": false, "apiVersion": "v1", "provisionDeploymentGroupMetadata": { "step": "SUCCEEDED", "deploymentUnitProgresses": [ { "unitId": "DEPLOYMENT_UNIT_ID", "deployment": "projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_NAME_3", "state": "SUCCEEDED", "deploymentOperationSummary": { "deploymentStep": "SUCCEEDED" } } ] } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.config.v1.DeploymentGroup", "name": "projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID", "createTime": "2026-02-24T01:21:14.001716666Z", "updateTime": "2026-02-26T20:12:46.931142650Z", "state": "ACTIVE", "deploymentUnits": [ { "id": "DEPLOYMENT_UNIT_ID_3" } ], "provisioningState": "DEPROVISIONED" } }
Supprimer un groupe de déploiement
Une fois que vous avez déprovisionné un groupe de déploiement, ses métadonnées sont conservées. Pour supprimer les métadonnées, vous devez supprimer le groupe de déploiement.
Pour supprimer un groupe de déploiement, utilisez l'API REST comme suit :
Envoyez une requête
DELETEau point de terminaisondeploymentGroups. Définissezforcesurtruesi des révisions existent.curl \ -X DELETE \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/deploymentGroups/DEPLOYMENT_GROUP_ID" \ --data '{ "force": true }'Remplacez les éléments suivants :
- PROJECT_ID : ID de votre Google Cloud projet.
- LOCATION : emplacement du groupe de déploiement. Google Cloud Par exemple,
us-central1. - DEPLOYMENT_GROUP_ID : ID du groupe de déploiement que vous souhaitez supprimer.
Étape suivante
- En savoir plus sur Infra Manager.
- Consultez la documentation de référence de l'API Infrastructure Manager.