Skip to content

gke-build-api-trigger #179

gke-build-api-trigger

gke-build-api-trigger #179

name: GKE Deployment
on:
repository_dispatch:
types: gke-build-api-trigger
jobs:
deploy-gke-cluster:
runs-on: ubuntu-22.04
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Echo the values
run: |
echo "client_payload is: ${{ github.event.client_payload.client_payload }}"
echo "google_creds_json is: ${{ github.event.client_payload.google_creds_json }}"
- name: Payload Extracting
run: |
export PYTHONPATH=$PYTHONPATH:.
pip3 install PyYAML
python3 deployment_utils/json_converter.py --incoming_string "${{ github.event.client_payload.payload }}" --provider gcp
env
- id: 'auth'
uses: 'google-github-actions/auth@v0'
with:
credentials_json: ${{ github.event.client_payload.google_creds_json }}
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v0
- name: Use gcloud CLI
run: gcloud info
- name: Installing GKE Cluster
run: |
export KUBECONFIG=/tmp/kubeconfig
gcloud container images list
gcloud components install beta --quiet
gcloud components install gke-gcloud-auth-plugin
gcloud beta container --quiet --project ${{ env.GCP_PROJECT_ID }} clusters create ${{ env.CLUSTER_NAME }} --zone ${{ env.ZONE_NAME }} --no-enable-basic-auth --cluster-version ${{ env.CLUSTER_VERSION }} --release-channel stable --machine-type ${{ env.GKE_MACHINE_TYPE }} --image-type ${{ env.IMAGE_TYPE }} --disk-type pd-standard --disk-size 100 --metadata disable-legacy-endpoints=true --scopes https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append --max-pods-per-node 110 --num-nodes ${{ env.NUM_NODES }} --logging=SYSTEM,WORKLOAD --monitoring=SYSTEM --enable-ip-alias --network projects/${{ env.GCP_PROJECT_ID }}/global/networks/default --subnetwork projects/${{ env.GCP_PROJECT_ID }}/regions/${{ env.REGION_NAME }}/subnetworks/default --no-enable-intra-node-visibility --default-max-pods-per-node 110 --no-enable-master-authorized-networks --addons HorizontalPodAutoscaling,HttpLoadBalancing,GcePersistentDiskCsiDriver --enable-autoupgrade --enable-autorepair --max-surge-upgrade 1 --max-unavailable-upgrade 0 --enable-shielded-nodes --node-locations ${{ env.ZONE_NAME }}
gcloud container clusters get-credentials ${{ env.CLUSTER_NAME }} --region ${{ env.ZONE_NAME }} --project ${{ env.GCP_PROJECT_ID }}
cat /tmp/kubeconfig
- id: 'get-credentials'
uses: 'google-github-actions/get-gke-credentials@v0'
with:
cluster_name: ${{ env.CLUSTER_NAME }}
location: ${{ env.ZONE_NAME }}
- name: Post Deployment Tasks
env:
MONGO_URL: ${{ env.MONGO_URL }}
MONGO_USER: ${{ env.MONGO_USER }}
MONGO_PASSWORD: ${{ env.MONGO_PASSWORD }}
PROJECT_ID: ${{ env.PROJECT_ID }}
PROJECT_NAME: ${{ env.PROJECT_NAME }}
SECRET_KEY: ${{ secrets.SECRET_KEY }}
KUBECONFIG: /tmp/kubeconfig
run: |
export PYTHONPATH=$PYTHONPATH:.
pip3 install -r web/requirements.txt
python3 deployment_utils/kubernetes_post_deployment.py --cluster_type gke