gke-build-api-trigger #179
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: 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 |