Skip to content
Open
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
248 changes: 248 additions & 0 deletions take-it-live.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,248 @@
version: "2.0"

service:
name: ifsc
type: single
repo: razorpay/ifsc
owner_team: "Platform"
owner_slack: "#ifsc"
aliases: []
special_notes: |
Namespace: ifsc
Cluster: prod

phases:
- name: local-development
description: "Build, test, lint, and review code"
depends_on: []
when:
type: always
stages:
- name: build-and-test
depends_on: []
execution_mode: inline
skills:
- name: shell-agent
config:
description: "Build the binary and run unit tests"
commands:
- "# Add your build command here"
- "# Add your test command here"

- name: in-prod-deployment
description: "Run readiness checks, deploy to production"
depends_on: [local-development]
when:
type: always
stages:
- name: gng-readiness
depends_on: []
execution_mode: sub-agent
skills:
- name: gng-readiness
config:
app_name: "ifsc"
source_repo: "razorpay/ifsc"
- name: go-nogo
depends_on: [gng-readiness]
execution_mode: inline
skills:
- name: go-nogo-gate
config:
require_ci_pass: true
require_review_approval: true
- name: deployment
depends_on: [go-nogo]
execution_mode: inline
skills:
- name: spinnaker-ops-assistant
config:
spinnaker_app: "prod-mum-rspl-ifsc"
repo: "razorpay/ifsc"
region: mumbai-rspl
pipeline_parameters:
deployment_process: regular

# ---------------------------------------------------------------------------
# MULTI-REGION TEMPLATES (commented — uncomment when expanding to SG/US)
# Mumbai (IN) is the primary region above. SG and US deploy independently:
# - infra-setup phases for SG/US run in parallel with in-prod-infra-setup
# - deployment phases for SG/US are sequential after their own infra-setup
# - Each region's deployment can proceed independently (no cross-region gating)
# ---------------------------------------------------------------------------

# - name: sg-prod-infra-setup
# description: "Provision SG production infrastructure: Helm values, Spinnaker pipelines"
# depends_on: [integration-testing]
# when:
# type: auto-detect
# checks:
# - type: file-missing
# repo: kube-manifests
# path: "singapore/ifsc/values.yaml"
# branch: singapore_release
# - type: file-missing
# repo: spinacode
# path: "v3/ifsc/prod-sg/"
# condition: any_true
# description: "SG production infrastructure not fully provisioned yet"
# stages:
# - name: sg-prod-helm-values
# depends_on: []
# execution_mode: sub-agent
# output_contract:
# required:
# - name: pr_url
# type: string
# skills:
# - name: helm-chart-generator
# config:
# environment: prod
# region: ap-southeast-1
# - name: pr-shepherd
# config:
# repo: razorpay/kube-manifests
# pre_merge:
# required_approvals: 1
# halt_after: pre_merge
# - name: create-sg-spinnaker-pipelines
# depends_on: []
# execution_mode: sub-agent
# output_contract:
# required:
# - name: pr_url
# type: string
# skills:
# - name: spinnaker-ops-assistant
# config:
# action: generate-v3-pipelines
# app_name: "ifsc"
# repo: "${service.repo}"
# region: ap-southeast-1
# pipeline_type: standard
# - name: pr-shepherd
# config:
# repo: razorpay/spinacode
# pre_merge:
# required_approvals: 1
# halt_after: pre_merge

# - name: sg-prod-deployment
# description: "Deploy to SG production via Spinnaker and verify"
# depends_on: [sg-prod-infra-setup]
# when:
# type: always
# stages:
# - name: sg-gng-readiness
# depends_on: []
# execution_mode: sub-agent
# output_contract:
# required:
# - name: status
# type: enum
# values: [GO, NO_GO, CONDITIONAL_GO]
# skills:
# - name: gng-readiness
# config:
# app_name: "ifsc"
# source_repo: "${service.repo}"
# region: ap-southeast-1
# - name: sg-deployment
# depends_on: [sg-gng-readiness]
# execution_mode: inline
# skills:
# - name: spinnaker-ops-assistant
# config:
# spinnaker_app: "prod-sg-rspl-ifsc"
# repo: "${service.repo}"
# region: singapore-rspl
# pipeline_parameters:
# deployment_process: regular

# - name: us-prod-infra-setup
# description: "Provision US production infrastructure: Helm values, Spinnaker pipelines"
# depends_on: [integration-testing]
# when:
# type: auto-detect
# checks:
# - type: file-missing
# repo: kube-manifests
# path: "us/ifsc/values.yaml"
# branch: us_release
# - type: file-missing
# repo: spinacode
# path: "v3/ifsc/prod-us/"
# condition: any_true
# description: "US production infrastructure not fully provisioned yet"
# stages:
# - name: us-prod-helm-values
# depends_on: []
# execution_mode: sub-agent
# output_contract:
# required:
# - name: pr_url
# type: string
# skills:
# - name: helm-chart-generator
# config:
# environment: prod
# region: us-east-2
# - name: pr-shepherd
# config:
# repo: razorpay/kube-manifests
# pre_merge:
# required_approvals: 1
# halt_after: pre_merge
# - name: create-us-spinnaker-pipelines
# depends_on: []
# execution_mode: sub-agent
# output_contract:
# required:
# - name: pr_url
# type: string
# skills:
# - name: spinnaker-ops-assistant
# config:
# action: generate-v3-pipelines
# app_name: "ifsc"
# repo: "${service.repo}"
# region: us-east-2
# pipeline_type: standard
# - name: pr-shepherd
# config:
# repo: razorpay/spinacode
# pre_merge:
# required_approvals: 1
# halt_after: pre_merge

# - name: us-prod-deployment
# description: "Deploy to US production via Spinnaker and verify"
# depends_on: [us-prod-infra-setup]
# when:
# type: always
# stages:
# - name: us-gng-readiness
# depends_on: []
# execution_mode: sub-agent
# output_contract:
# required:
# - name: status
# type: enum
# values: [GO, NO_GO, CONDITIONAL_GO]
# skills:
# - name: gng-readiness
# config:
# app_name: "ifsc"
# source_repo: "${service.repo}"
# region: us-east-2
# - name: us-deployment
# depends_on: [us-gng-readiness]
# execution_mode: inline
# skills:
# - name: spinnaker-ops-assistant
# config:
# spinnaker_app: "prod-us-rspl-ifsc"
# repo: "${service.repo}"
# region: us-rspl
# pipeline_parameters:
# deployment_process: regular
Loading