Two corrections on top of the naming pass, both found by checking the live cluster rather than the source. The rename had silently changed the user-facing annotation key from argocd.argoproj.io/sync-wave to cd.argoproj.io/sync-wave — 63 live Applications carry the old key, so deploying that would have ignored every sync-wave and broken fleet deploy ordering. The key is now cd.hanzo.ai/*, and universe 575650286 moves the ApplicationSet template that stamps it, so the controller regenerates all 63 consistently. The API group in code said argoproj.io/v1alpha1 in 157 places while the cluster has served apps.hanzo.ai/v1alpha1 since 2026-07-23 (the CRDs are applications.apps.hanzo.ai). Code now matches what is actually served. The legacy applications.argoproj.io/app-name label had ZERO live users, so it went with the rest. foo.argoproj.io test fixtures became foo.example.com — arbitrary test domains should not carry a vendor name. go build ./... exit 0. Co-authored-by: Hanzo Dev <[email protected]>
3.1 KiB
Executable File
PagerDuty V2
Parameters
The PagerDuty notification service is used to trigger PagerDuty events and requires specifying the following settings:
serviceKeys- a dictionary with the following structure:service-name: $pagerduty-key-service-namewhereservice-nameis the name you want to use for the service to make events for, and$pagerduty-key-service-nameis a reference to the secret that contains the actual PagerDuty integration key (Events API v2 integration)
If you want multiple Argo apps to trigger events to their respective PagerDuty services, create an integration key in each service you want to setup alerts for.
To create a PagerDuty integration key, follow these instructions to add an Events API v2 integration to the service of your choice.
Configuration
The following snippet contains sample PagerDuty service configuration. It assumes the service you want to alert on is called my-service.
apiVersion: v1
kind: Secret
metadata:
name: <secret-name>
stringData:
pagerduty-key-my-service: <pd-integration-key>
apiVersion: v1
kind: ConfigMap
metadata:
name: cd-notifications-cm
data:
service.pagerdutyv2: |
serviceKeys:
my-service: $pagerduty-key-my-service
Template
Notification templates support specifying subject for PagerDuty notifications:
apiVersion: v1
kind: ConfigMap
metadata:
name: cd-notifications-cm
data:
template.rollout-aborted: |
message: Rollout {{.rollout.metadata.name}} is aborted.
pagerdutyv2:
summary: "Rollout {{.rollout.metadata.name}} is aborted."
severity: "critical"
source: "{{.rollout.metadata.name}}"
The parameters for the PagerDuty configuration in the template generally match with the payload for the Events API v2 endpoint. All parameters are strings.
summary- (required) A brief text summary of the event, used to generate the summaries/titles of any associated alerts.severity- (required) The perceived severity of the event with respect to the affected system. Allowed values:critical,warning,error,infosource- (required) The unique location of the affected system, preferably a hostname or FQDN.component- Component of the source machine that is responsible for the event.group- Logical grouping of components of a service.class- The class/type of the event.url- The URL that should be used for the link "View in Hanzo CD" in PagerDuty.dedupKey- A string used by PagerDuty to deduplicate and correlate events. Events with the samededupKeywill be grouped into the same incident. If omitted, PagerDuty will create a new incident for each event.
The timestamp and custom_details parameters are not currently supported.
Annotation
Annotation sample for PagerDuty notifications:
apiVersion: apps.hanzo.ai/v1alpha1
kind: Rollout
metadata:
annotations:
notifications.apps.hanzo.ai/subscribe.on-rollout-aborted.pagerdutyv2: "<serviceID for PagerDuty>"