- Terraform
- Google Cloud Platform Services and APIs (GCP Services & APIs)
- Docker
- VPC that project will be assigned to
- 2 subnets attached to 2 different ips [(managment subnet) for VM and (restrecited subnet -for GKE]
- NAT Gateway and Router
- Firewall to allow SSH Connection
- Service accounts that are attached to VM and GKE cluster.
- service account [vm:container.admin]
- service account [GKE:(roles/storage.admin) and (iam.workloadIdentityUser)]
- A VM isolated in a private subnet (without external ip)
- Setting up GKE in private subnet
- Container Node Pool
- Build 2 images on the local machine 1 for the python app and the other for radis pull this images from (docker hub) then build these images
- docker build -t .
- Next step is push this 2 images into GCR by the following command :
- [docker push gcr.io/< project id >/ < image name >]
File included in Terraform Folder and its name is script.sh