add use-setup: devops, observability server/agent

This commit is contained in:
Haitao Pan 2023-12-21 17:38:55 +08:00
parent 076be7e396
commit 53997ba47d
4 changed files with 251 additions and 0 deletions

View File

@ -39,6 +39,21 @@ jobs:
needs:
- apply-cluster-resources
setup-observability-server:
uses: open-source-solution-design/Modern-Container-Application-Reference-Architecture/.github/workflows/use-setup-observability-server.yml@main
with:
domain: 'svc.plus'
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: open-source-solution-design/Modern-Container-Application-Reference-Architecture/.github/workflows/use-setup-k3s-cluster.yml@main
with:

View File

@ -0,0 +1,86 @@
name: Workflow Call Setup DevOPS Server
on:
workflow_call:
inputs:
domain:
required: true
type: string
cluster_name:
required: true
type: string
ssh_host_name:
required: true
type: string
secrets:
GCP_CREDENTIALS_JSON:
required: true
SSH_PRIVATE_KEY:
required: true
DNS_AK:
required: true
DNS_SK:
required: true
SSH_USER:
required: true
jobs:
setup-app-cluster:
runs-on: ubuntu-latest
env:
DNS_AK: ${{ secrets.DNS_AK }}
DNS_SK: ${{ secrets.DNS_SK }}
SSH_USER: ${{ secrets.SSH_USER }}
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SSH_HOST_DOMAIN: "${{ inputs.ssh_host_name }}.${{ inputs.domain }}"
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Pre Setup
run: |
sudo apt-get update
sudo apt-get install -y python3-pip jq
python -m pip install --upgrade pip jinja2
- name: Set up Terraform
uses: hashicorp/setup-terraform@v1
with:
terraform_version: 1.6.4
- name: Authenticate with Google Cloud
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCP_CREDENTIALS_JSON }}
- name: Extract SSH Host IP and Set as Env Variable
run: |
python3 scripts/init.py && terraform init
terraform output -raw ${{ inputs.ssh_host_name }}
echo "SSH_HOST_IP=$(terraform-bin output -raw ${{ inputs.ssh_host_name }} 2>/dev/null)" >> $GITHUB_ENV
shell: bash
working-directory: iac_modules/terraform/gcp/vhost/
- name: Update playbook hosts
run: bash observability-platform-pre_setup.sh
working-directory: playbook/
- name: Deploy Gitlab
run: |
export ANSIBLE_HOST_KEY_CHECKING=False
ansible-playbook -i hosts/inventory init_gitlab -e "cluster_name=${{inputs.ssh_host_name}}" -e "domain=${{inputs.domain}}" -D
working-directory: playbook/
- name: Deploy Harbor
run: |
export ANSIBLE_HOST_KEY_CHECKING=False
ansible-playbook -i hosts/inventory init_harbor -e "cluster_name=${{inputs.ssh_host_name}}" -e "domain=${{inputs.domain}}" -D
working-directory: playbook/
- name: Deploy Chartmuseum
run: |
export ANSIBLE_HOST_KEY_CHECKING=False
ansible-playbook -i hosts/inventory init_chartmuseum -e "cluster_name=${{inputs.ssh_host_name}}" -e "domain=${{inputs.domain}}" -D
working-directory: playbook/

View File

@ -0,0 +1,75 @@
name: Workflow Call Setup Observability Agent
on:
workflow_call:
inputs:
domain:
required: true
type: string
cluster_name:
required: true
type: string
ssh_host_name:
required: true
type: string
secrets:
GCP_CREDENTIALS_JSON:
required: true
SSH_PRIVATE_KEY:
required: true
DNS_AK:
required: true
DNS_SK:
required: true
SSH_USER:
required: true
jobs:
setup-app-cluster:
runs-on: ubuntu-latest
env:
DNS_AK: ${{ secrets.DNS_AK }}
DNS_SK: ${{ secrets.DNS_SK }}
SSH_USER: ${{ secrets.SSH_USER }}
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SSH_HOST_DOMAIN: "${{ inputs.ssh_host_name }}.${{ inputs.domain }}"
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Pre Setup
run: |
sudo apt-get update
sudo apt-get install -y python3-pip jq
python -m pip install --upgrade pip jinja2
- name: Set up Terraform
uses: hashicorp/setup-terraform@v1
with:
terraform_version: 1.6.4
- name: Authenticate with Google Cloud
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCP_CREDENTIALS_JSON }}
- name: Extract SSH Host IP and Set as Env Variable
run: |
python3 scripts/init.py && terraform init
terraform output -raw ${{ inputs.ssh_host_name }}
echo "SSH_HOST_IP=$(terraform-bin output -raw ${{ inputs.ssh_host_name }} 2>/dev/null)" >> $GITHUB_ENV
shell: bash
working-directory: iac_modules/terraform/gcp/vhost/
- name: Update playbook hosts
run: bash observability-platform-pre_setup.sh
working-directory: playbook/
- name: Setup Observability Agent
shell: bash
run: |
export ANSIBLE_HOST_KEY_CHECKING=False
ansible-playbook -i hosts/inventory init_observability-agent -e "cluster_name=${{inputs.ssh_host_name}}" -e "domain=${{inputs.domain}}" -D
working-directory: playbook/

View File

@ -0,0 +1,75 @@
name: Workflow Call Setup Observability Server
on:
workflow_call:
inputs:
domain:
required: true
type: string
cluster_name:
required: true
type: string
ssh_host_name:
required: true
type: string
secrets:
GCP_CREDENTIALS_JSON:
required: true
SSH_PRIVATE_KEY:
required: true
DNS_AK:
required: true
DNS_SK:
required: true
SSH_USER:
required: true
jobs:
setup-app-cluster:
runs-on: ubuntu-latest
env:
DNS_AK: ${{ secrets.DNS_AK }}
DNS_SK: ${{ secrets.DNS_SK }}
SSH_USER: ${{ secrets.SSH_USER }}
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SSH_HOST_DOMAIN: "${{ inputs.ssh_host_name }}.${{ inputs.domain }}"
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Pre Setup
run: |
sudo apt-get update
sudo apt-get install -y python3-pip jq
python -m pip install --upgrade pip jinja2
- name: Set up Terraform
uses: hashicorp/setup-terraform@v1
with:
terraform_version: 1.6.4
- name: Authenticate with Google Cloud
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCP_CREDENTIALS_JSON }}
- name: Extract SSH Host IP and Set as Env Variable
run: |
python3 scripts/init.py && terraform init
terraform output -raw ${{ inputs.ssh_host_name }}
echo "SSH_HOST_IP=$(terraform-bin output -raw ${{ inputs.ssh_host_name }} 2>/dev/null)" >> $GITHUB_ENV
shell: bash
working-directory: iac_modules/terraform/gcp/vhost/
- name: Update playbook hosts
run: bash observability-platform-pre_setup.sh
working-directory: playbook/
- name: Setup Observability Server
shell: bash
run: |
export ANSIBLE_HOST_KEY_CHECKING=False
ansible-playbook -i hosts/inventory init_observability-server -e "cluster_name=${{inputs.ssh_host_name}}" -e "domain=${{inputs.domain}}" -D
working-directory: playbook/