Skip to content

Commit 681e147

Browse files
author
unknown
committed
Terraform Cluster creation
1 parent bd04af8 commit 681e147

File tree

6 files changed

+82
-35
lines changed

6 files changed

+82
-35
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -134,4 +134,5 @@ dmypy.json
134134
# .tfstate files
135135
*.tfstate
136136
*.tfstate.*
137-
*.exe
137+
*.exe
138+
account.json

task1/README.md

Whitespace-only changes.

task1/main.sh

+39-30
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,36 @@
1-
############################################################
2-
# [1]. DEFINICION DE VARIABLES DEL SERVICE ACCOUNT DE GCP ##
3-
############################################################
1+
#############################################################
2+
## [1]. DEFINICION DE VARIABLES DEL SERVICE ACCOUNT DE GCP ##
3+
#############################################################
44

55
## GCP Project Name - Ejemplo: devops-manuel
66
GCP_PROJECT="devop-manu"
7-
87
## GCP Private Key ID - Ejemplo: 282b19cf817f43240aw984feaca8623aa29af233
98
GPC_PRIVATE_KEY_ID="282b19cf817f43240af984feaca86b3aa29af233"
10-
119
## GCP Private Key - Ejemplo: -----BEGIN PRIVATE KEY-----\-----END PRIVATE KEY-----\n
1210
GPC_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC8RCHSOBA2vvf9\n5n1TpPfyk5g/ksS/YsuA8efwCm0VzHKGu6Lkyt4Krz22qVYMwrkkdH2FZVC9osVH\nZ9R2Mj6FxEyGb869dPLJfifZ0q3vU3Tdo/rP8895XaZuAKlNoydEn40xZ0Tu62PM\n/aeahvQvxlPq3gbPbRw72YeinMlUnBiJHeojYL61DSKSwmMQjXvr5lspvfENwW8G\n0CnrBzc+4Pa/hTtjr38FNQLc0zcuO15BG8eY3p94yOJ6hz3bR0T9lRYBEzP8rUAd\nFs48bqSPdUVMreOehAoc76XbQmxmXAPCQAecwvuw0PzwlV0+dERNtqWGuDKIU5Kg\nUy0LzcaXAgMBAAECggEABdyXMvzk4Fd80C5ze3247JgU1vHiZ1UTof2mK46fi9y0\nOiawcTAxzqJbKQtHrxkG+7AW0mbvpx/gxZLhhhaVZMPSYCMuDC8OeiCP7BPHr5pp\nGpeG8R+Vt6EnU+h4XP7184iGNGITPt8cWd8R71lBVBV4OmlUS/QJO4HP28vG5vfx\ncETkdojsxa78yXcvyefncDQXfp/yY/j6P2r5PrIURAicORHmVSFTh72LVjUb4xTw\nFu8xTqcPij8KdwHTzt5xqQb1cI7T9j8VpXiutHO5APWcothRy++jWfWd3r+E23r1\nucfLJMsUcou+zeSUNTOWW5pyNJ+qDM7qgrdOeT97lQKBgQD6Bv2IMJZ87apIabCl\nVUbVUbFrUXwEQsiWwjJvCxYk0ARLVKtTTXhjz6FNAM99kdmySyARZtSLQGfj+Hkz\nXrY7Ve4qrqEmluH/5H3littaxNziEFiB67zQgeSkMULVCSdmsdqbbgxwGFzZadWA\nkLabhJt0oLGfdwzmcRcDpyxP6wKBgQDAw3MIAMr4n1T+HEaXJCLJ9+vU+CGuEsBc\nQ7XMOsvgzLiha7bKSVHvOjWrOf2Q0AeyH9nuzA6yYtY1pDS0pc+jaLgcgAQ1yUcH\nsdAGuWz3R2m0adFxeWOC7KiKzuW7v1Z2NEZxkPuEjdQCMxUpbLdA4Zhsa5f1zrld\ngT7l45nlBQKBgGA4Mnen4zIesIp/igiGgeT0NGgNisGFBfbms0wCozn1h8GJywka\n5jrbG8Mrja5QY8v2l1e7EA6q8ZBM/i+jwlOhZS+t1ryoEj9NKpoczv/mhO7GxZjy\nJM7FPj1l68daZ3xg87UfK9Azv/+3d/+rMWs2JDFE6jZpNWC1otq4ChiTAoGBAL7P\negmdB03uImrbwICSM6GrORX6fRRb2XA7UjUUqoYfAFBBWJKK24EsJL4WzEpRspx+\n7PJ1qcKpFZPJtKZxT8VYvo7vpbs8P4R9XgeZ+yQX26nL6Zgi6f9Klle5EC217Ddb\n7bMzKdX/srJusG7t/8RIy+He63BVrqXBb2qOzuKlAoGBAPSgitYkwV3Ly3BtdaO9\nP8jCjRNdWYnRyXypMpFlhsHH3Pq3jGpHhqCNbEmkqT8gGk0eoqz5vxH1cMM76ozQ\nOyYTNTGs4N83g8p1AeOgWY5DLMLxa8W6zXJhfSeuj54mpDA1uUaFaLMZlJO07Eik\nPDdb8sxOZUsKcVB+oe9gE/QX\n-----END PRIVATE KEY-----\n"
13-
1411
## GCP Client Email - Ejemplo: [email protected]
1512
GPC_CLIENT_MAIL="[email protected]"
16-
1713
## GCP Client ID - Ejemplo: 106512508332840639292
1814
GPC_CLIENT_ID="106512502332840639292"
19-
2015
## GCP CLIENT X509 CERT URL - Ejemplo: https://www.googleapis.com/robot/v1/metadata/x509/gcp-devops%40devop-manu.iam.gserviceaccount.com
2116
GPC_CLIENT_CERT_URL="https://www.googleapis.com/robot/v1/metadata/x509/gcp-devops%40devop-manu.iam.gserviceaccount.com"
2217

23-
################################################
24-
# [1.1]. DEFINICION DE VARIABLES DE TERRAFORM ##
25-
################################################
18+
#################################################
19+
## [1.1]. DEFINICION DE VARIABLES DE TERRAFORM ##
20+
#################################################
2621

2722
## GPC LOCATION
28-
GPC_LOCATION="us-central1-c"
29-
30-
##############################################################
31-
# [2]. REEMPLAZAR VARIABLES EN json DE CONFIGURACION DE GCP ##
32-
##############################################################
23+
GPC_LOCATION="us-central1"
24+
## GKE NAME
25+
GKE_NAME="devops-manu"
26+
## GKE NODE POOL NAME
27+
GKE_NODE_POOL="devops-nodepool"
28+
## GKE MACHINE TYPE
29+
GKE_MACHINE_TYPE="n1-standard-1"
30+
31+
###############################################################
32+
## [2]. REEMPLAZAR VARIABLES EN json DE CONFIGURACION DE GCP ##
33+
###############################################################
3334

3435
jq -n '{ "type": "service_account", "project_id": $gcp_project,
3536
"private_key_id": $gcp_private_key_id,
@@ -43,14 +44,16 @@ jq -n '{ "type": "service_account", "project_id": $gcp_project,
4344
--arg gcp_project $GCP_PROJECT \
4445
--arg gcp_private_key_id $GPC_PRIVATE_KEY_ID \
4546
--arg gcp_private_key "$GPC_PRIVATE_KEY" \
46-
--arg gcp_client_mail "$GPC_CLIENT_MAIL" \
47-
--arg gcp_client_id "$GPC_CLIENT_ID" \
48-
--arg gcp_gpc_client_cert_url "$GPC_CLIENT_CERT_URL" \
47+
--arg gcp_client_mail $GPC_CLIENT_MAIL \
48+
--arg gcp_client_id $GPC_CLIENT_ID \
49+
--arg gcp_gpc_client_cert_url $GPC_CLIENT_CERT_URL \
4950
> terraform/account.json
5051

51-
###########################################
52-
# [3]. INSTALACION DE TERRAFORM SEGUN OS ##
53-
###########################################
52+
sed -i 's+\\n+n+g' terraform/account.json
53+
54+
############################################
55+
## [3]. INSTALACION DE TERRAFORM SEGUN OS ##
56+
############################################
5457

5558
## Identificar el OS
5659
case "$OSTYPE" in solaris*) OS_TYPE=solaris;; darwin*) OS_TYPE=darwin;; linux*) OS_TYPE=linux;; bsd*) OS_TYPE=freebsd;; msys*) OS_TYPE=windows;; *) OS_TYPE=unknown;; esac
@@ -83,19 +86,25 @@ mv terraform.exe "terraform"
8386
## Eliminar el archivo ZIP
8487
rm -rf "$FILENAME"
8588

86-
##################################################
87-
# [4]. REEMPLAZAR VARIABLES EN terraform.tfvars ##
88-
##################################################
89+
###################################################
90+
## [4]. REEMPLAZAR VARIABLES EN terraform.tfvars ##
91+
###################################################
8992

9093
jq -n '{ "project_id": $gcp_project,
91-
"location": $gcp_location } ' \
94+
"location": $gcp_location,
95+
"gke_name": $gke_name,
96+
"gke_nodepool": $gke_nodepool,
97+
"gke_machine_type": $gke_machine_type } ' \
9298
--arg gcp_project $GCP_PROJECT \
9399
--arg gcp_location $GPC_LOCATION \
100+
--arg gke_name $GKE_NAME \
101+
--arg gke_nodepool $GKE_NODE_POOL \
102+
--arg gke_machine_type $GKE_MACHINE_TYPE \
94103
> terraform/terraform.tfvars.json
95104

96-
########################################
97-
# [5]. EJECUTAR COMANDOS DE TERRAFORM ##
98-
########################################
105+
#########################################
106+
## [5]. EJECUTAR COMANDOS DE TERRAFORM ##
107+
#########################################
99108

100109
## TERRAFORM INIT
101110
cd terraform
@@ -105,6 +114,6 @@ cd terraform
105114
./terraform.exe plan -var-file="terraform.tfvars.json"
106115

107116
## TERRAFORM APPLY
108-
./terraform.exe apply
117+
./terraform.exe apply -auto-approve
109118

110119
## TERRAFORM OUTPUT VARIABLES

task1/terraform/main.tf

+31-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,36 @@ provider "google" {
33
version = "~> 3.0.0"
44

55
credentials = file("account.json")
6-
location = var.location
7-
project = var.project
6+
project = var.project_id
87
}
98

9+
resource "google_container_cluster" "devops_cluster" {
10+
name = var.gke_name
11+
location = var.location
12+
initial_node_count = 1
13+
14+
master_auth {
15+
username = ""
16+
password = ""
17+
18+
client_certificate_config {
19+
issue_client_certificate = false
20+
}
21+
}
22+
23+
node_config {
24+
oauth_scopes = [
25+
"https://www.googleapis.com/auth/logging.write",
26+
"https://www.googleapis.com/auth/monitoring",
27+
]
28+
29+
metadata = {
30+
disable-legacy-endpoints = "true"
31+
}
32+
}
33+
34+
timeouts {
35+
create = "30m"
36+
update = "40m"
37+
}
38+
}

task1/terraform/terraform.tfvars.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
{
22
"project_id": "devop-manu",
3-
"location": "us-central1-c"
3+
"location": "us-central1",
4+
"gke_name": "devops-manu",
5+
"gke_nodepool": "devops-nodepool",
6+
"gke_machine_type": "n1-standard-1"
47
}

task1/terraform/variables.tf

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
variable "project_id" {
22
}
3-
43
variable "location" {
54
}
5+
variable "gke_name" {
6+
}
7+
variable "gke_nodepool" {
8+
}
9+
variable "gke_machine_type" {
10+
}

0 commit comments

Comments
 (0)