Skip to content

Commit bdd1c0c

Browse files
authored
Merge pull request #41 from kbst/integrationtests
Add multi-cloud integration tests
2 parents 25d308a + f6549ae commit bdd1c0c

File tree

10 files changed

+212
-0
lines changed

10 files changed

+212
-0
lines changed

cloudbuild-cleanup.yaml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
substitutions:
2+
_HOME: /workspace/tests/.user
3+
_TF_IN_AUTOMATION: "1"
4+
5+
steps:
6+
- id: docker build
7+
name: 'gcr.io/cloud-builders/docker'
8+
dir: tests
9+
args:
10+
- build
11+
- -t
12+
- kbst-infra-automation:bootstrap
13+
- ci-cd/
14+
15+
- id: terraform init
16+
name: 'kbst-infra-automation:bootstrap'
17+
dir: tests
18+
env:
19+
- HOME=$_HOME
20+
- TF_IN_AUTOMATION=$_TF_IN_AUTOMATION
21+
args:
22+
- terraform
23+
- init
24+
- --input=false
25+
26+
- id: terraform workspace
27+
name: 'kbst-infra-automation:bootstrap'
28+
dir: tests
29+
env:
30+
- HOME=$_HOME
31+
- TF_IN_AUTOMATION=$_TF_IN_AUTOMATION
32+
args:
33+
- terraform
34+
- workspace
35+
- select
36+
- ops
37+
38+
- id: terraform destroy
39+
name: 'kbst-infra-automation:bootstrap'
40+
dir: tests
41+
env:
42+
- HOME=$_HOME
43+
- TF_IN_AUTOMATION=$_TF_IN_AUTOMATION
44+
args:
45+
- terraform
46+
- destroy
47+
- --input=false
48+
- --auto-approve

cloudbuild-test.yaml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
substitutions:
2+
_HOME: /workspace/tests/.user
3+
_TF_IN_AUTOMATION: "1"
4+
5+
steps:
6+
- id: docker build
7+
name: 'gcr.io/cloud-builders/docker'
8+
dir: tests
9+
args:
10+
- build
11+
- -t
12+
- kbst-infra-automation:bootstrap
13+
- ci-cd/
14+
15+
- id: terraform init
16+
name: 'kbst-infra-automation:bootstrap'
17+
dir: tests
18+
env:
19+
- HOME=$_HOME
20+
- TF_IN_AUTOMATION=$_TF_IN_AUTOMATION
21+
args:
22+
- terraform
23+
- init
24+
- --input=false
25+
26+
- id: terraform workspace
27+
name: 'kbst-infra-automation:bootstrap'
28+
dir: tests
29+
env:
30+
- HOME=$_HOME
31+
- TF_IN_AUTOMATION=$_TF_IN_AUTOMATION
32+
args:
33+
- terraform
34+
- workspace
35+
- select
36+
- ops
37+
38+
- id: terraform plan
39+
name: 'kbst-infra-automation:bootstrap'
40+
dir: tests
41+
env:
42+
- HOME=$_HOME
43+
- TF_IN_AUTOMATION=$_TF_IN_AUTOMATION
44+
args:
45+
- terraform
46+
- plan
47+
- --input=false
48+
- --out=tfplan
49+
50+
- id: terraform apply
51+
name: 'kbst-infra-automation:bootstrap'
52+
dir: tests
53+
env:
54+
- HOME=$_HOME
55+
- TF_IN_AUTOMATION=$_TF_IN_AUTOMATION
56+
args:
57+
- terraform
58+
- apply
59+
- --input=false
60+
- tfplan

tests/.gitignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Local .terraform directories
2+
**/.terraform/*
3+
4+
# .tfstate files
5+
*.tfstate
6+
*.tfstate.*
7+
8+
# .user home directory
9+
.user/
10+
11+
# terraform generated clusters directory
12+
clusters/

tests/ci-cd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../quickstart/src/ci-cd

tests/clusters.tf

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
module "eks_zero" {
2+
providers = {
3+
aws = "aws.eks_zero"
4+
}
5+
6+
source = "../aws/cluster"
7+
8+
configuration = "${var.clusters["eks_zero"]}"
9+
}
10+
11+
module "gke_zero" {
12+
source = "../google/cluster"
13+
14+
configuration = "${var.clusters["gke_zero"]}"
15+
}
16+
17+
module "aks_zero" {
18+
source = "../azurerm/cluster"
19+
20+
configuration = "${var.clusters["aks_zero"]}"
21+
}

tests/config.auto.tfvars

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
clusters = {
2+
eks_zero = {
3+
# Settings for Apps-cluster
4+
apps = {
5+
name_prefix = "testing"
6+
base_domain = "infra.serverwolken.de"
7+
cluster_instance_type = "t2.small"
8+
cluster_desired_capacity = "1"
9+
cluster_min_size = "1"
10+
cluster_max_size = "1"
11+
cluster_availability_zones = "eu-west-1a,eu-west-1b,eu-west-1c"
12+
}
13+
14+
# Settings for Ops-cluster
15+
ops = {
16+
cluster_max_size = "1"
17+
cluster_availability_zones = "eu-west-1a,eu-west-1b"
18+
}
19+
}
20+
21+
gke_zero = {
22+
# Settings for Apps-cluster
23+
apps = {
24+
project_id = "terraform-kubestack-testing"
25+
name_prefix = "testing"
26+
base_domain = "infra.serverwolken.de"
27+
cluster_min_master_version = "1.11.8"
28+
cluster_initial_node_count = 1
29+
region = "europe-west1"
30+
cluster_additional_zones = "europe-west1-b,europe-west1-c,europe-west1-d"
31+
}
32+
33+
# Settings for Ops-cluster
34+
ops = {
35+
cluster_additional_zones = "europe-west1-b"
36+
}
37+
}
38+
39+
aks_zero = {
40+
# Settings for Apps-cluster
41+
apps = {
42+
resource_group = "terraform-kubestack-testing"
43+
name_prefix = "testing"
44+
base_domain = "infra.serverwolken.de"
45+
}
46+
47+
# Settings for Ops-cluster
48+
ops = {}
49+
}
50+
}

tests/manifests

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../quickstart/src/manifests

tests/providers.tf

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
provider "aws" {
2+
alias = "eks_zero"
3+
region = "eu-west-1"
4+
}
5+
6+
provider "google" {}
7+
8+
provider "google-beta" {}
9+
10+
provider "azurerm" {}

tests/state.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
terraform {
2+
backend "gcs" {
3+
bucket = "terraform-kubestack-testing-state"
4+
}
5+
}

tests/variables.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
variable "clusters" {
2+
description = "Map, holding configuration of all clusters."
3+
type = "map"
4+
}

0 commit comments

Comments
 (0)