Skip to content

Instantly share code, notes, and snippets.

View mynameisameed's full-sized avatar

Mohammed Sameed Uddin mynameisameed

View GitHub Profile
Task 1: Create a project jumphost instance
Navigation menu > Compute engine > VM Instance
Task 2: Create a Kubernetes service cluster
gcloud config set compute/zone us-east1-b
gcloud container clusters create nucleus-webserver1
@mynameisameed
mynameisameed / provider.tf
Last active June 28, 2021 15:51
GCP provider
provider "google" {
credentials = file("./Credentials.json")
project = "project-id"
region = "us-central1"
zone = "us-central1-c"
}
terraform {
backend "gcs" {
bucket = "bucket-name"
prefix = "terraform/state1"
credentials = "Credentials.json" #mention here the name and add service account key inside same folder
}
}
resource "google_compute_instance" "web" {
name = "webserver"
machine_type = "f1-micro"
tags = ["http-server"]
boot_disk {
initialize_params {
image = "debian-cloud/debian-9"
#!/bin/bash
sudo apt-get update && sudo apt -y install apache2
echo '<!doctype html><html><body><h1>Hello You Successfully was able to run a webserver on GCP with Terraform!</h1></body></html>' | sudo tee /var/www/html/index.html
\GCP on Terraform> terraform plan
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# google_compute_instance.test will be created
+ resource "google_compute_instance" "test" {
+ can_ip_forward = false
@mynameisameed
mynameisameed / roles-gke.sh
Last active May 2, 2022 10:34
roles needed for GKE
gcloud projects add-iam-policy-binding <project-name> --member serviceAccount:<service account name>@<project-name>.iam.gserviceaccount.com --role roles/compute.admin
gcloud projects add-iam-policy-binding <project-name> --member serviceAccount:<service account name>@<project-name>.iam.gserviceaccount.com --role roles/iam.serviceAccountUser
gcloud projects add-iam-policy-binding <project-name> --member serviceAccount:<service account name>@<project-name>.iam.gserviceaccount.com --role roles/resourcemanager.projectIamAdmin
gcloud projects add-iam-policy-binding <project-name> --member serviceAccount:<service account name>@<project-name>.iam.gserviceaccount.com --role roles/container.clusterAdmin
gcloud projects add-iam-policy-binding <project-name> --member serviceAccount:<service account name>@<project-name>.iam.gserviceaccount.com --role roles/compute.viewer
gcloud projects add-iam-policy-binding <project-name> --member se
@mynameisameed
mynameisameed / gke-apis.sh
Last active May 2, 2022 11:07
Need these api services to be enabled before you can deploy GKE clusters
gcloud services enable compute.googleapis.com
gcloud services enable container.googleapis.com
@mynameisameed
mynameisameed / gcp-terraform-backend.tf
Created May 1, 2022 11:53
this file helps terraform state file to be stored in remote backend, which can be used by other teams in the organization & dont have to manually update
terraform {
backend "gcs" {
bucket = "<bucket-name>"
prefix = "terraform/state"
credentials = "./terraform-gke-keyfile.json"
}
}
@mynameisameed
mynameisameed / provider.tf
Created May 1, 2022 18:51
terraform provider helps you get
provider "google" {
project = var.project_id
region = var.region
credentials = "${file(var.credentials)}"
}