Using Cloud Deploy notifications

This page describes how to use Cloud Deploy service notifications, including how to subscribe to them.

Cloud Deploy uses Pub/Sub to publish notifications for two purposes:

  • To let you integrate Cloud Deploy with third-party tools and other Google tools, such as tools for workflow ticketing or test infrastructure.

  • To extend Cloud Deploy with supplemental business logic.

Available topics

Cloud Deploy publishes messages to the following set of Google Pub/Sub topics:

  • clouddeploy-resources

    When there is an operation (create, update, delete) against any Cloud Deploy core resource (automation, custom target type, delivery pipeline, job run, release, rollout, target).

  • clouddeploy-operations

    • When Cloud Deploy renders the Skaffold configuration.
    • When Cloud Deploy deploys to a target ( Start , Succeed , Failure , Terminated (job run), Cancelled (rollout)).
  • clouddeploy-approvals

    • When Cloud Deploy needs an approval (or rejection) of a rollout.
    • When a rollout has been approved or rejected.
  • clouddeploy-advances

    • When a Cloud Deploy rollout has been advanced from one phase to the next.
    • When a rollout is ready to be advanced.

You can use a push or pull model for your Pub/Sub subscriptions.

Receive Cloud Deploy service notifications

To receive Cloud Deploy service notifications:

  1. Enable the Cloud Deploy API for your project:

    Enable the Cloud Deploy API

  2. Enable the Pub/Sub API:

    Enable the Pub/Sub API

  3. Create the Pub/Sub topic or topics, based on which notification types you want to receive:

     gcloud pubsub topics create clouddeploy-resources
    gcloud pubsub topics create clouddeploy-operations
    gcloud pubsub topics create clouddeploy-approvals
    gcloud pubsub topics create clouddeploy-advances 
    

    To learn more about managing Pub/Sub topics, see Managing topics and subscriptions .

You have several of options for subscribing to notifications. For example, you can push messages to an endpoint , or write a Python app for polling your subscription .

To learn how to set up Pub/Sub subscriptions for Cloud Deploy service notifications, read the Pub/Sub Subscriber Guide . You can also learn about Pub/Sub Client Libraries , which make developing subscriber applications easier.

Field values

This section lists possible values for fields in the Cloud Deploy Pub/Sub messages.

For Action

In these notifications, the possible values for Action are as follows.

  • For resources

    • Create
    • Update
    • Delete
  • For operations:

    • Start
    • Succeed
    • Failure
    • Terminated
    • Cancelled
  • For approvals:

    • Required
    • Approved
    • Rejected
  • For advances:

    • Required
    • Advanced

For ResourceType

And the possible values for ResourceType are as follows:

  • DeliveryPipeline
  • Target
  • Release
  • Rollout
  • JobRun

Sample messages

The following examples show several types of Pub/Sub messages from Cloud Deploy topics.

Delivery pipeline create

The following is an example of a Pub/Sub message published to clouddeploy-resources in response to creation of a new deliveryPipeline :

 {
  "ackId":   "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQBQgUBXx9cEFMdVhddmhRDRlyfWByY11AAgVMVnldURsHaE5tdR_Wg6LHS0NVaF4TBgpGVX5fXx0IYVtedi_m7r_2wPXOXkAvOYXL6Mtpe735h9xvZiM9XxJLLD5-IzRFQV5AEkwoAURJUytDCypYEU4EISE-MD5FUw",
  "message": {
    "attributes": {
      "Action": "Create",
      "Resource": "projects/120123456789/locations/us-central1/deliveryPipelines/etest",
      "ResourceType": "DeliveryPipeline",
      "Location": "us-central1",
      "DeliveryPipelineId": "etest",
      "ProjectNumber": "120123456789",

    },
    "messageId": "2407836004659723",
    "publishTime": "2021-05-17T21:24:48.204Z"
  }
} 

Render start

The following is an example of a Pub/Sub message published to clouddeploy-operations to notify that a release has been rendered:

 {
  "ackId": "U0RQBhYsXUZIUTcZCGhRDk9eIz81IChFFwYIFAV8fXBBTHVeXHRoUQ0Zcn1gcmNfR1MLFlN5WFEaB2hObXUfioKix0tDVWheEwYKRVZ3W1kdBGFVXH0v_qD5rMP1zl5AKDnZyujLaXudkqxfZiM9XxJLLD5-PTNFQV5AEkw2BkRJUytDCypYEU4EISE-MD5F",
  "message": {
    "attributes": {
      "Action": "Start",
      "Resource": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2",
      "ResourceType": "Release"
      "Location": "us-central1",
      "DeliveryPipelineId": "etest",
      "ProjectNumber": "120123456789",
      "ReleaseId": "f2",
    },
    "messageId": "2407805942699908",
    "publishTime": "2021-05-17T21:28:04.201Z"
  }
} 

Approval required

The following is an example of a Pub/Sub message published to clouddeploy-approvals to notify that a rollout requires approval:

 {
   "ackId": "RVNEUAYWLF1GSFE3GQhoUQ5PXiM_NSAoRRILUxNRXHQBWhBpWF8aB1ENGXJ8ZnxtCRBVU0FWf1VbEQ16bVxti6C2rERfQXduWhQJBkBXd11aHQhoXF9dotnkpeTv2kFwYSuN8_7mSH_Mo6AYZiA9XBJLLD5-IzZFQV5AEkwoA0RJUytDCypYEU4EISE-MD4",
   "message": {
     "attributes": {
       "Action": "Required",
       "Rollout": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2/rollouts/rollout-123"
       "ReleaseId": "f2",
       "RolloutId": "rollout-123",
       "TargetId": "prod",
       "Location": "us-central1",
       "ProjectNumber": "120123456789",
     },
     "messageId": "2407845492165003",
     "publishTime": "2021-05-17T21:31:25.143Z"
   }
 } 

Rollout advance

The following is an example of a Pub/Sub message published to clouddeploy-advances to notify that a rollout has been advanced from one phase to the next:

 {
  "ackId": "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUSAwVPAihdeTFXKkFZdWhRDRlyfWB9bV4UUFZMV38OURoHaE5tdR_z4ILjS0NVbVkQBApEUHldXhkEa1RcfC-a0fmv1OzMV0AvOaCoyO9pe77r3NluZiM9XhJLLD5-Jz1FQV5AEkwsCERJUytDCypYEU4EISE-MD5FUw",
  "message": {
    "attributes": {
      "Action": "Advanced",
      "Location": "us-central1",
      "PhaseId": "stable",
      "ProjectNumber": "120123456789",
      "ReleaseId": "rollout-123",
      "Rollout": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2/rollouts/rollout-123",
      "RolloutId": "rollout-123",
      "TargetId": "prod"
    },
    "messageId": "7335813725293809",
    "publishTime": "2023-04-03T15:16:30.425Z"
  }
} 

In this message, PhaseId identifies the phase that the rollout has been advanced to.

What's next

Design a Mobile Site
View Site in Mobile | Classic
Share by: