Deployment (Development) #120
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deployment (Development) | |
on: | |
workflow_run: | |
workflows: ["Release Image (Development)"] | |
types: | |
- completed | |
jobs: | |
deploy-dev: | |
runs-on: ubuntu-latest | |
if: ${{ github.event.workflow_run.conclusion == 'success' }} | |
environment: | |
name: development | |
url: https://api.development.basedosdados.org | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
ref: development | |
- name: Import secrets from Vault | |
id: import_secrets | |
uses: hashicorp/[email protected] | |
with: | |
url: https://vault.basedosdados.org | |
token: ${{ secrets.VAULT_TOKEN }} | |
secrets: | | |
secret/data/gcp_credentials/basedosdados-dev GCP_PROJECT_ID | GCP_PROJECT_ID ; | |
secret/data/gcp_credentials/basedosdados-dev GH_ACTIONS_SA | GCP_SA ; | |
secret/data/gcp_credentials/basedosdados-dev GKE_CLUSTER_NAME | GKE_CLUSTER_NAME ; | |
secret/data/gcp_credentials/basedosdados-dev GKE_CLUSTER_ZONE | GKE_CLUSTER_ZONE ; | |
- name: Setup Google Cloud CLI | |
uses: google-github-actions/[email protected] | |
with: | |
service_account_key: ${{ steps.import_secrets.outputs.GCP_SA }} | |
project_id: ${{ steps.import_secrets.outputs.GCP_PROJECT_ID }} | |
export_default_credentials: true | |
- name: Get GKE credentials | |
uses: google-github-actions/[email protected] | |
with: | |
cluster_name: ${{ steps.import_secrets.outputs.GKE_CLUSTER_NAME }} | |
location: ${{ steps.import_secrets.outputs.GKE_CLUSTER_ZONE }} | |
credentials: ${{ steps.import_secrets.outputs.GCP_SA }} | |
- name: Write values.yaml file | |
run: | | |
cat << EOF > values.yaml | |
api: | |
name: "api-development" | |
image: | |
name: "ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}" | |
tag: "development" | |
pullPolicy: "Always" | |
replicas: 1 | |
resources: | |
limits: | |
cpu: 2000m | |
memory: 2048Mi | |
requests: | |
cpu: 1000m | |
memory: 1024Mi | |
env: | |
- name: "BASE_URL_FRONTEND" | |
value: "https://development.basedosdados.org" | |
- name: "BASE_URL_API" | |
value: "https://development.api.basedosdados.org" | |
envFrom: | |
- secretRef: | |
name: api-development-secrets | |
settingsModule: "basedosdados_api.settings.prod" | |
database: | |
host: "cloud-sql-proxy" | |
port: 5432 | |
name: "api_development" | |
user: "api_development" | |
passwordSecret: "api-development-database-password" | |
ingress: | |
enabled: true | |
host: "development.api.basedosdados.org" | |
annotations: | |
kubernetes.io/ingress.class: nginx | |
nginx.ingress.kubernetes.io/rewrite-target: / | |
cert-manager.io/issuer: "letsencrypt-production" | |
nginx.ingress.kubernetes.io/ssl-redirect: "true" | |
tls: | |
- hosts: | |
- development.api.basedosdados.org | |
secretName: api-development-basedosdados-org-tls | |
EOF | |
- name: Deploy using Helm | |
run: | | |
helm upgrade --install api-dev charts/basedosdados-api/. -n website -f values.yaml --wait |