Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 30 additions & 14 deletions release/clouddeploy/delivery-pipeline.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -99,17 +99,17 @@ serialPipeline:
gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/cloudbuild-schema-verify-${TARGET_ID}.yaml .
gcloud builds submit --no-source --config=cloudbuild-schema-verify-${TARGET_ID}.yaml
analysis:
# 10 minutes.
duration: 600s
# 30 minutes.
duration: 1800s
googleCloud:
alertPolicyChecks:
sandboxPartialDeploymentAlertPolicyChecks
- phaseId: "canary-5"
profiles: ["sandbox-partial-phase-5"]
percentage: 50
analysis:
# 10 minutes.
duration: 600s
# 30 minutes.
duration: 1800s
googleCloud:
alertPolicyChecks:
sandboxPartialDeploymentAlertPolicyChecks
Expand Down Expand Up @@ -155,8 +155,8 @@ serialPipeline:
gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/cloudbuild-deploy-gke-${TARGET_ID}.yaml .
gcloud builds submit --no-source --config=cloudbuild-deploy-gke-${TARGET_ID}.yaml
analysis:
# 10 minutes.
duration: 600s
# 30 minutes.
duration: 1800s
googleCloud:
alertPolicyChecks:
sandboxStableDeploymentAlertPolicyChecks
Expand All @@ -183,17 +183,17 @@ serialPipeline:
gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/cloudbuild-schema-verify-${TARGET_ID}.yaml .
gcloud builds submit --no-source --config=cloudbuild-schema-verify-${TARGET_ID}.yaml
analysis:
# 10 minutes.
duration: 600s
# 1 hour.
duration: 3600s
googleCloud:
alertPolicyChecks:
productionPartialDeploymentAlertPolicyChecks
- phaseId: "canary-5"
profiles: ["production-partial-phase-5"]
percentage: 50
analysis:
# 10 minutes.
duration: 600s
# 1 hour.
duration: 3600s
googleCloud:
alertPolicyChecks:
productionPartialDeploymentAlertPolicyChecks
Expand Down Expand Up @@ -250,8 +250,8 @@ serialPipeline:
gcloud storage cp gs://${PROJECT_ID}-deploy/${TAG_NAME}/cloudbuild-deploy-gke-${TARGET_ID}.yaml .
gcloud builds submit --no-source --config=cloudbuild-deploy-gke-${TARGET_ID}.yaml
analysis:
# 10 minutes.
duration: 600s
# 1 hour.
duration: 3600s
googleCloud:
alertPolicyChecks:
productionStableDeploymentAlertPolicyChecks
Expand All @@ -260,18 +260,34 @@ apiVersion: deploy.cloud.google.com/v1
kind: Automation
metadata:
name: deploy-nomulus/auto-advance-canary
description: Automatically advances rollouts through canary-1 phase after successful deployment and analysis.
description: Automatically advances rollouts through canary-1 and canary-5 phases in non-prod.
# Placeholder: Replace with project service account.
serviceAccount: serviceAccount
selector:
targets:
- id: crash
- id: sandbox
- id: production
rules:
- advanceRolloutRule:
id: advance-canary-phases
sourcePhases:
- "canary-1"
- "canary-5"
wait: 0m
---
apiVersion: deploy.cloud.google.com/v1
kind: Automation
metadata:
name: deploy-nomulus/auto-promote-crash-to-sandbox
description: Automatically promotes release to sandbox after successful rollout in crash.
# Placeholder: Replace with project service account.
serviceAccount: serviceAccount
selector:
targets:
- id: crash
rules:
- promoteReleaseRule:
id: promote-crash-to-sandbox
destinationTargetId: "sandbox"
wait: 0m

12 changes: 12 additions & 0 deletions release/clouddeploy/skaffold.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ metadata:
name: nomulus-skaffold
profiles:
- name: crash
# Note: The stable profile intentionally includes partial-phase-5 manifests alongside
# primary workloads. This ensures that the candidate image is deployed across both deployments,
# maintaining stable pod and GKE node allocation to prevent churn on nodes hosting persistent
# registrar sessions.
manifests:
rawYaml:
- ../../jetty/kubernetes/nomulus-crash-backend.yaml
Expand Down Expand Up @@ -40,6 +44,10 @@ profiles:
deploy:
kubectl: { }
- name: sandbox
# Note: The stable profile intentionally includes partial-phase-5 manifests alongside
# primary workloads. This ensures that the candidate image is deployed across both deployments,
# maintaining stable pod and GKE node allocation to prevent churn on nodes hosting persistent
# registrar sessions.
manifests:
rawYaml:
- ../../jetty/kubernetes/nomulus-sandbox-backend.yaml
Expand Down Expand Up @@ -75,6 +83,10 @@ profiles:
deploy:
kubectl: { }
- name: production
# Note: The stable profile intentionally includes partial-phase-5 manifests alongside
# primary workloads. This ensures that the candidate image is deployed across both deployments,
# maintaining stable pod and GKE node allocation to prevent churn on nodes hosting persistent
# registrar sessions.
manifests:
rawYaml:
- ../../jetty/kubernetes/nomulus-production-backend.yaml
Expand Down
Loading