Skip to content

Commit 1b7748e

Browse files
committed
chore: unified deploy staging and prod
1 parent 61f30e6 commit 1b7748e

File tree

2 files changed

+37
-125
lines changed

2 files changed

+37
-125
lines changed

.github/workflows/deploy-production.yaml

Lines changed: 0 additions & 124 deletions
This file was deleted.

.github/workflows/deploy.yaml

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,4 +121,40 @@ jobs:
121121
juju refresh cs-canonical-com --path ./cs-canonical-com_ubuntu-22.04-amd64.charm --resource flask-app-image=${{ needs.publish-image.outputs.image_url }}
122122
juju wait-for application cs-canonical-com --query='name=="cs-canonical-com" && (status=="active" || status=="idle")'
123123
124-
124+
deploy-production:
125+
runs-on: [self-hosted, self-hosted-linux-amd64-jammy-private-endpoint-medium]
126+
needs: [pack-charm, publish-image]
127+
steps:
128+
- name: Checkout Code
129+
uses: actions/checkout@v3
130+
131+
- name: Install Dependencies
132+
run: |
133+
sudo snap install juju --channel=3.6/stable --classic
134+
sudo snap install vault --classic
135+
136+
- name: Download Charm Artifact
137+
uses: actions/download-artifact@v4
138+
with:
139+
name: cs-canonical-com-charm
140+
141+
- name: Configure Vault and Juju
142+
run: |
143+
export VAULT_ADDR=https://vault.admin.canonical.com:8200
144+
export TF_VAR_login_approle_role_id=${{ secrets.PROD_VAULT_APPROLE_ROLE_ID }}
145+
export TF_VAR_login_approle_secret_id=${{ secrets.PROD_VAULT_APPROLE_SECRET_ID }}
146+
export VAULT_SECRET_PATH_ROLE=secret/prodstack6/roles/prod-cs-canonical-com
147+
export VAULT_SECRET_PATH_COMMON=secret/prodstack6/juju/common
148+
VAULT_TOKEN=$(vault write -f -field=token auth/approle/login role_id=${TF_VAR_login_approle_role_id} secret_id=${TF_VAR_login_approle_secret_id})
149+
export VAULT_TOKEN
150+
mkdir -p ~/.local/share/juju
151+
vault read -field=controller_config "${VAULT_SECRET_PATH_COMMON}/controllers/juju-controller-36-production-ps6" | base64 -d > ~/.local/share/juju/controllers.yaml
152+
USERNAME=$(vault read -field=username "${VAULT_SECRET_PATH_ROLE}/juju")
153+
PASSWORD=$(vault read -field=password "${VAULT_SECRET_PATH_ROLE}/juju")
154+
printf "controllers:\n juju-controller-36-production-ps6:\n user: %s\n password: %s\n" "$USERNAME" "$PASSWORD" > ~/.local/share/juju/accounts.yaml
155+
156+
- name: Deploy Application to production
157+
run: |
158+
export JUJU_MODEL=admin/prod-cs-canonical-com
159+
juju refresh cs-canonical-com --path ./cs-canonical-com_ubuntu-22.04-amd64.charm --resource flask-app-image=${{ needs.publish-image.outputs.image_url }}
160+
juju wait-for application cs-canonical-com --query='name=="cs-canonical-com" && (status=="active" || status=="idle")'

0 commit comments

Comments
 (0)