187 lines
6.0 KiB
YAML
187 lines
6.0 KiB
YAML
name: MultiCluster Pipeline Create with IAC tools
|
||
|
||
env:
|
||
STATE: "create" # 可以根据需要更改初始状态, 可选create,update, destroy
|
||
CLOUD: "gcp" # 选择云服务商, 可选: gcp, aws, ali, azure
|
||
DNS_AK: ${{ secrets.DNS_AK }}
|
||
DNS_SK: ${{ secrets.DNS_SK }}
|
||
SSH_USER: ${{ secrets.HOST_USER }}
|
||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
|
||
on:
|
||
pull_request:
|
||
paths:
|
||
- '.github/workflows/iac-pipeline-create.yml'
|
||
workflow_dispatch:
|
||
branches:
|
||
- main
|
||
|
||
jobs:
|
||
apply-cluster-resources:
|
||
uses: svc-design/actions/.github/workflows/setup-gcp-cloud.yml@main
|
||
with:
|
||
config: 'multi-cluster-config.yaml'
|
||
secrets:
|
||
SSH_PUBLIC_KEY: ${{ secrets.SSH_PUBLIC_KEY }}
|
||
GCP_CREDENTIALS_JSON: ${{ secrets.GCP_CREDENTIALS_JSON }}
|
||
|
||
setup-monitor-cluster:
|
||
uses: svc-design/actions/.github/workflows/setup-k3s-cluster.yml@main
|
||
with:
|
||
domain: 'svc-dev.ink'
|
||
cluster_name: 'monitor'
|
||
ssh_host_name: 'monitor'
|
||
secrets:
|
||
GCP_CREDENTIALS_JSON: ${{ secrets.GCP_CREDENTIALS_JSON }}
|
||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
DNS_AK: ${{ secrets.DNS_AK }}
|
||
DNS_SK: ${{ secrets.DNS_SK }}
|
||
VAULT_URL: ${{ secrets.VAULT_URL }}
|
||
VAULT_TOKEN: ${{ secrets.VAULT_TOKEN }}
|
||
SSH_USER: ${{ secrets.HOST_USER }}
|
||
needs:
|
||
- apply-cluster-resources
|
||
|
||
setup-observability-server:
|
||
uses: svc-design/actions/.github/workflows/setup-observability-server.yml@main
|
||
with:
|
||
domain: 'svc-dev.ink'
|
||
cluster_name: 'monitor'
|
||
ssh_host_name: 'monitor'
|
||
secrets:
|
||
GCP_CREDENTIALS_JSON: ${{ secrets.GCP_CREDENTIALS_JSON }}
|
||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
DNS_AK: ${{ secrets.DNS_AK }}
|
||
DNS_SK: ${{ secrets.DNS_SK }}
|
||
SSH_USER: ${{ secrets.HOST_USER }}
|
||
needs:
|
||
- setup-monitor-cluster
|
||
|
||
# setup-devops-cluster:
|
||
# uses: svc-design/actions/.github/workflows/setup-k3s-cluster.yml@main
|
||
# with:
|
||
# domain: 'svc-dev.ink'
|
||
# cluster_name: 'devops'
|
||
# ssh_host_name: 'devops'
|
||
# secrets:
|
||
# GCP_CREDENTIALS_JSON: ${{ secrets.GCP_CREDENTIALS_JSON }}
|
||
# SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
# DNS_AK: ${{ secrets.DNS_AK }}
|
||
# DNS_SK: ${{ secrets.DNS_SK }}
|
||
# VAULT_URL: ${{ secrets.VAULT_URL }}
|
||
# VAULT_TOKEN: ${{ secrets.VAULT_TOKEN }}
|
||
# SSH_USER: ${{ secrets.HOST_USER }}
|
||
# needs:
|
||
# - apply-cluster-resources
|
||
#
|
||
# setup-devops-cluster-observability-agent:
|
||
# uses: svc-design/actions/.github/workflows/setup-observability-agent.yml@main
|
||
# with:
|
||
# domain: 'svc-dev.ink'
|
||
# cluster_name: 'devops'
|
||
# ssh_host_name: 'devops'
|
||
# secrets:
|
||
# GCP_CREDENTIALS_JSON: ${{ secrets.GCP_CREDENTIALS_JSON }}
|
||
# SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
# DNS_AK: ${{ secrets.DNS_AK }}
|
||
# DNS_SK: ${{ secrets.DNS_SK }}
|
||
# SSH_USER: ${{ secrets.HOST_USER }}
|
||
# needs:
|
||
# - setup-devops-cluster
|
||
|
||
setup-sit-cluster:
|
||
uses: svc-design/actions/.github/workflows/setup-k3s-cluster.yml@main
|
||
with:
|
||
domain: 'svc-dev.ink'
|
||
cluster_name: 'sit'
|
||
ssh_host_name: 'sit'
|
||
secrets:
|
||
GCP_CREDENTIALS_JSON: ${{ secrets.GCP_CREDENTIALS_JSON }}
|
||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
DNS_AK: ${{ secrets.DNS_AK }}
|
||
DNS_SK: ${{ secrets.DNS_SK }}
|
||
VAULT_URL: ${{ secrets.VAULT_URL }}
|
||
VAULT_TOKEN: ${{ secrets.VAULT_TOKEN }}
|
||
SSH_USER: ${{ secrets.HOST_USER }}
|
||
needs:
|
||
- apply-cluster-resources
|
||
|
||
setup-sit-cluster-observability-agent:
|
||
uses: svc-design/actions/.github/workflows/setup-observability-agent.yml@main
|
||
with:
|
||
domain: 'svc-dev.ink'
|
||
cluster_name: 'sit'
|
||
ssh_host_name: 'sit'
|
||
secrets:
|
||
GCP_CREDENTIALS_JSON: ${{ secrets.GCP_CREDENTIALS_JSON }}
|
||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
DNS_AK: ${{ secrets.DNS_AK }}
|
||
DNS_SK: ${{ secrets.DNS_SK }}
|
||
SSH_USER: ${{ secrets.HOST_USER }}
|
||
needs:
|
||
- setup-sit-cluster
|
||
|
||
setup-uat-cluster:
|
||
uses: svc-design/actions/.github/workflows/setup-k3s-cluster.yml@main
|
||
with:
|
||
domain: 'svc-dev.ink'
|
||
cluster_name: 'uat'
|
||
ssh_host_name: 'uat'
|
||
secrets:
|
||
GCP_CREDENTIALS_JSON: ${{ secrets.GCP_CREDENTIALS_JSON }}
|
||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
DNS_AK: ${{ secrets.DNS_AK }}
|
||
DNS_SK: ${{ secrets.DNS_SK }}
|
||
VAULT_URL: ${{ secrets.VAULT_URL }}
|
||
VAULT_TOKEN: ${{ secrets.VAULT_TOKEN }}
|
||
SSH_USER: ${{ secrets.HOST_USER }}
|
||
needs:
|
||
- apply-cluster-resources
|
||
|
||
setup-uat-cluster-observability-agent:
|
||
uses: svc-design/actions/.github/workflows/setup-observability-agent.yml@main
|
||
with:
|
||
domain: 'svc-dev.ink'
|
||
cluster_name: 'uat'
|
||
ssh_host_name: 'uat'
|
||
secrets:
|
||
GCP_CREDENTIALS_JSON: ${{ secrets.GCP_CREDENTIALS_JSON }}
|
||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
DNS_AK: ${{ secrets.DNS_AK }}
|
||
DNS_SK: ${{ secrets.DNS_SK }}
|
||
SSH_USER: ${{ secrets.HOST_USER }}
|
||
needs:
|
||
- setup-uat-cluster
|
||
|
||
setup-prod-cluster:
|
||
uses: svc-design/actions/.github/workflows/setup-k3s-cluster.yml@main
|
||
with:
|
||
domain: 'svc-dev.ink'
|
||
cluster_name: 'prod'
|
||
ssh_host_name: 'prod'
|
||
secrets:
|
||
GCP_CREDENTIALS_JSON: ${{ secrets.GCP_CREDENTIALS_JSON }}
|
||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
DNS_AK: ${{ secrets.DNS_AK }}
|
||
DNS_SK: ${{ secrets.DNS_SK }}
|
||
VAULT_URL: ${{ secrets.VAULT_URL }}
|
||
VAULT_TOKEN: ${{ secrets.VAULT_TOKEN }}
|
||
SSH_USER: ${{ secrets.HOST_USER }}
|
||
needs:
|
||
- apply-cluster-resources
|
||
|
||
setup-prod-cluster-observability-agent:
|
||
uses: svc-design/actions/.github/workflows/setup-observability-agent.yml@main
|
||
with:
|
||
domain: 'svc-dev.ink'
|
||
cluster_name: 'prod'
|
||
ssh_host_name: 'prod'
|
||
secrets:
|
||
GCP_CREDENTIALS_JSON: ${{ secrets.GCP_CREDENTIALS_JSON }}
|
||
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
DNS_AK: ${{ secrets.DNS_AK }}
|
||
DNS_SK: ${{ secrets.DNS_SK }}
|
||
SSH_USER: ${{ secrets.HOST_USER }}
|
||
needs:
|
||
- setup-prod-cluster
|