iac_modules/.github/workflows/iac-pipeline-create.yml
2024-07-12 16:45:06 +08:00

187 lines
6.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: MultiCluster Pipeline Create with IAC tools
env:
STATE: "create" # 可以根据需要更改初始状态, 可选createupdate, 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