Skip to content

Commit e6059e3

Browse files
committed
import of tests for gke-multi-region and gke-service-lb examples
1 parent 08f71b3 commit e6059e3

File tree

9 files changed

+136
-63
lines changed

9 files changed

+136
-63
lines changed

example-gke-k8s-helm/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ gcloud auth application-default login
77
export GOOGLE_PROJECT=$(gcloud config get-value project)
88
```
99

10+
## Enable service management API
11+
12+
This example creates a Cloud Endpoints service and requires that the Service Manangement API is enabled.
13+
14+
```
15+
gcloud services enable servicemanagement.googleapis.com
16+
```
17+
1018
### Install helm
1119

1220
```

example-gke-k8s-multi-region/README.md

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,6 @@ gcloud auth application-default login
1313
export GOOGLE_PROJECT=$(gcloud config get-value project)
1414
```
1515

16-
## Create the `terraform.tfvars` file
17-
18-
```
19-
cat > terraform.tfvars <<EOF
20-
gke_username = "admin"
21-
gke_password = "$(openssl rand -base64 16)"
22-
EOF
23-
```
24-
2516
## Run Terraform
2617

2718
```

example-gke-k8s-multi-region/gke-regional/get_server_config_beta.sh

Lines changed: 0 additions & 28 deletions
This file was deleted.

example-gke-k8s-multi-region/gke-regional/main.tf

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ variable "cluster_name" {
66
default = "tf-regional"
77
}
88

9-
variable "gke_username" {}
10-
variable "gke_password" {}
11-
129
variable "master_version" {
1310
default = ""
1411
}
@@ -30,27 +27,26 @@ variable "subnetwork" {
3027
default = "default"
3128
}
3229

33-
// External data source to fetch latest regional versions (beta).
34-
data "external" "container-regional-versions-beta" {
35-
program = ["${path.module}/get_server_config_beta.sh"]
30+
data "google_compute_zones" "available" {
31+
region = "${var.region}"
32+
}
3633

37-
query = {
38-
region = "${var.region}"
39-
}
34+
data "google_container_engine_versions" "default" {
35+
zone = "${element(data.google_compute_zones.available.names, 0)}"
4036
}
4137

4238
resource "google_container_cluster" "default" {
4339
name = "${var.cluster_name}"
4440
region = "${var.region}"
4541
initial_node_count = "${var.node_count}"
46-
min_master_version = "${var.master_version != "" ? var.master_version : data.external.container-regional-versions-beta.result.latest_master_version}"
42+
min_master_version = "${var.master_version != "" ? var.master_version : data.google_container_engine_versions.default.latest_master_version}"
4743
network = "${var.network}"
4844
subnetwork = "${var.subnetwork}"
4945

50-
master_auth {
51-
username = "${var.gke_username}"
52-
password = "${var.gke_password}"
53-
}
46+
// Use legacy ABAC until these issues are resolved:
47+
// https://github.com/mcuadros/terraform-provider-helm/issues/56
48+
// https://github.com/terraform-providers/terraform-provider-kubernetes/pull/73
49+
enable_legacy_abac = true
5450

5551
node_config {
5652
tags = ["${var.tags}"]

example-gke-k8s-multi-region/main.tf

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
variable "gke_username" {}
2-
variable "gke_password" {}
3-
41
variable "region1_cluster_name" {
52
default = "tf-region1"
63
}
@@ -50,8 +47,6 @@ module "cluster1" {
5047
source = "./gke-regional"
5148
region = "${var.region1}"
5249
cluster_name = "${var.region1_cluster_name}"
53-
gke_username = "${var.gke_username}"
54-
gke_password = "${var.gke_password}"
5550
tags = ["tf-gke-region1"]
5651
network = "${google_compute_subnetwork.region1.network}"
5752
subnetwork = "${google_compute_subnetwork.region1.name}"
@@ -61,8 +56,6 @@ module "cluster2" {
6156
source = "./gke-regional"
6257
region = "${var.region2}"
6358
cluster_name = "${var.region2_cluster_name}"
64-
gke_username = "${var.gke_username}"
65-
gke_password = "${var.gke_password}"
6659
tags = ["tf-gke-region2"]
6760
network = "${google_compute_subnetwork.region2.network}"
6861
subnetwork = "${google_compute_subnetwork.region2.name}"
@@ -71,8 +64,7 @@ module "cluster2" {
7164
provider "kubernetes" {
7265
alias = "cluster1"
7366
host = "${module.cluster1.endpoint}"
74-
username = "${var.gke_username}"
75-
password = "${var.gke_password}"
67+
token = "${data.google_client_config.current.access_token}"
7668
client_certificate = "${base64decode(module.cluster1.client_certificate)}"
7769
client_key = "${base64decode(module.cluster1.client_key)}"
7870
cluster_ca_certificate = "${base64decode(module.cluster1.cluster_ca_certificate)}"
@@ -81,8 +73,7 @@ provider "kubernetes" {
8173
provider "kubernetes" {
8274
alias = "cluster2"
8375
host = "${module.cluster2.endpoint}"
84-
username = "${var.gke_username}"
85-
password = "${var.gke_password}"
76+
token = "${data.google_client_config.current.access_token}"
8677
client_certificate = "${base64decode(module.cluster2.client_certificate)}"
8778
client_key = "${base64decode(module.cluster2.client_key)}"
8879
cluster_ca_certificate = "${base64decode(module.cluster2.cluster_ca_certificate)}"

example-gke-k8s-multi-region/test.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env bash
2+
3+
set -x
4+
set -e
5+
6+
URL="http://$(terraform output load-balancer-ip)"
7+
status=0
8+
count=0
9+
while [[ $count -lt 120 && $status -ne 200 ]]; do
10+
echo "INFO: Waiting for load balancer..."
11+
status=$(curl -sf -m 5 -o /dev/null -w "%{http_code}" "${URL}" || true)
12+
((count=count+1))
13+
sleep 5
14+
done
15+
if [[ $count -lt 120 ]]; then
16+
echo "INFO: PASS"
17+
else
18+
echo "ERROR: Failed"
19+
fi

example-gke-k8s-service-lb/main.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ resource "google_compute_subnetwork" "default" {
2727
private_ip_google_access = true
2828
}
2929

30+
data "google_client_config" "current" {}
31+
3032
data "google_container_engine_versions" "default" {
3133
zone = "${var.zone}"
3234
}
@@ -39,6 +41,11 @@ resource "google_container_cluster" "default" {
3941
network = "${google_compute_subnetwork.default.name}"
4042
subnetwork = "${google_compute_subnetwork.default.name}"
4143

44+
// Use legacy ABAC until these issues are resolved:
45+
// https://github.com/mcuadros/terraform-provider-helm/issues/56
46+
// https://github.com/terraform-providers/terraform-provider-kubernetes/pull/73
47+
enable_legacy_abac = true
48+
4249
// Wait for the GCE LB controller to cleanup the resources.
4350
provisioner "local-exec" {
4451
when = "destroy"

example-gke-k8s-service-lb/test.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env bash
2+
3+
set -x
4+
set -e
5+
6+
URL="http://$(terraform output load-balancer-ip)"
7+
status=0
8+
count=0
9+
while [[ $count -lt 120 && $status -ne 200 ]]; do
10+
echo "INFO: Waiting for load balancer..."
11+
status=$(curl -sf -m 5 -o /dev/null -w "%{http_code}" "${URL}" || true)
12+
((count=count+1))
13+
sleep 5
14+
done
15+
if [[ $count -lt 120 ]]; then
16+
echo "INFO: PASS"
17+
else
18+
echo "ERROR: Failed"
19+
fi

tests/pipelines/tf-examples-regression.yaml

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
example_dir: example-gke-k8s-helm
3838
region: us-west1
3939
zone: us-west1-b
40-
init_script: |
40+
init_script: |
4141
# Install helm
4242
curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > get_helm.sh
4343
chmod 700 get_helm.sh
@@ -65,6 +65,76 @@ jobs:
6565
body: email/body-failed
6666
file: git/tests/tasks/run-example.yaml
6767

68+
###
69+
# run-example-gke-multi-region
70+
###
71+
- name: run-example-gke-multi-region
72+
serial: true
73+
plan:
74+
- get: once-a-day
75+
trigger: true
76+
77+
- get: git
78+
trigger: false
79+
80+
- task: run-example-gke-multi-region
81+
params:
82+
git_src: git
83+
git_target: git
84+
service_account_json: ((regression-project.service_account_json))
85+
project_id: ((regression-project.project_id))
86+
backend_bucket: {{backend_bucket}}
87+
backend_prefix: terraform-google-examples/
88+
env_name: tf-ci-gke-multi-region
89+
example_dir: example-gke-k8s-multi-region
90+
region: us-central1
91+
zone: us-central1-b
92+
TF_VAR_network_name: tf-ci-gke-multi-region
93+
TF_VAR_region1_cluster_name: tf-ci-gke-multi-1
94+
TF_VAR_region1: us-central1
95+
TF_VAR_region2_cluster_name: tf-ci-gke-multi-2
96+
TF_VAR_region2: us-east1
97+
on_failure:
98+
put: send-an-email
99+
params:
100+
subject: email/subject-failed
101+
body: email/body-failed
102+
file: git/tests/tasks/run-example.yaml
103+
104+
###
105+
# run-example-gke-service-lb
106+
###
107+
- name: run-example-gke-service-lb
108+
serial: true
109+
plan:
110+
- get: once-a-day
111+
trigger: true
112+
113+
- get: git
114+
trigger: false
115+
116+
- task: run-example-gke-service-lb
117+
params:
118+
git_src: git
119+
git_target: git
120+
service_account_json: ((regression-project.service_account_json))
121+
project_id: ((regression-project.project_id))
122+
backend_bucket: {{backend_bucket}}
123+
backend_prefix: terraform-google-examples/
124+
env_name: tf-ci-gke-service-lb
125+
example_dir: example-gke-k8s-service-lb
126+
region: us-central1
127+
zone: us-central1-f
128+
TF_VAR_network_name: tf-ci-gke-service-lb
129+
TF_VAR_region: us-central1
130+
TF_VAR_zone: us-central1-f
131+
on_failure:
132+
put: send-an-email
133+
params:
134+
subject: email/subject-failed
135+
body: email/body-failed
136+
file: git/tests/tasks/run-example.yaml
137+
68138
###
69139
# Resource types
70140
###

0 commit comments

Comments
 (0)