From f2e7b64595a437d59118111bb34be7d148e6ed92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Mudrini=C4=87?= Date: Mon, 24 Oct 2022 13:12:51 +0200 Subject: [PATCH] Use smaller instances for AWS E2E tests (#2415) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Make worker volume size configurable in AWS configs Signed-off-by: Marko Mudrinić * Use smaller instances for AWS E2E tests Signed-off-by: Marko Mudrinić * Use varFile for AWS infra definitions Signed-off-by: Marko Mudrinić Signed-off-by: Marko Mudrinić --- examples/terraform/aws/README.md | 1 + examples/terraform/aws/output.tf | 6 +- examples/terraform/aws/variables.tf | 6 ++ test/e2e/testdata/aws.tfvars | 11 ++++ test/e2e/testdata/aws_stable.tfvars | 10 +++ test/e2e/tests_definitions.go | 95 ++++++++++++----------------- 6 files changed, 70 insertions(+), 59 deletions(-) create mode 100644 test/e2e/testdata/aws.tfvars create mode 100644 test/e2e/testdata/aws_stable.tfvars diff --git a/examples/terraform/aws/README.md b/examples/terraform/aws/README.md index 65089d84e..a37586fe6 100644 --- a/examples/terraform/aws/README.md +++ b/examples/terraform/aws/README.md @@ -87,6 +87,7 @@ No modules. | [worker\_deploy\_ssh\_key](#input\_worker\_deploy\_ssh\_key) | add provided ssh public key to MachineDeployments | `bool` | `true` | no | | [worker\_os](#input\_worker\_os) | OS to run on worker machines, default to var.os | `string` | `""` | no | | [worker\_type](#input\_worker\_type) | instance type for workers | `string` | `"t3.medium"` | no | +| [worker\_volume\_size](#input\_worker\_volume\_size) | Size of the EBS volume, in Gb | `number` | `50` | no | ## Outputs diff --git a/examples/terraform/aws/output.tf b/examples/terraform/aws/output.tf index 2eefde166..64e8e60b7 100644 --- a/examples/terraform/aws/output.tf +++ b/examples/terraform/aws/output.tf @@ -125,7 +125,7 @@ output "kubeone_workers" { subnetId = local.subnets[local.zoneA] instanceType = var.worker_type assignPublicIP = true - diskSize = 50 + diskSize = var.worker_volume_size diskType = "gp2" ## Only applicable if diskType = io1 diskIops = 500 @@ -183,7 +183,7 @@ output "kubeone_workers" { subnetId = local.subnets[local.zoneB] instanceType = var.worker_type assignPublicIP = true - diskSize = 50 + diskSize = var.worker_volume_size diskType = "gp2" ## Only applicable if diskType = io1 diskIops = 500 @@ -241,7 +241,7 @@ output "kubeone_workers" { subnetId = local.subnets[local.zoneC] instanceType = var.worker_type assignPublicIP = true - diskSize = 50 + diskSize = var.worker_volume_size diskType = "gp2" ## Only applicable if diskType = io1 diskIops = 500 diff --git a/examples/terraform/aws/variables.tf b/examples/terraform/aws/variables.tf index 9c74969c4..aa1f4d45d 100644 --- a/examples/terraform/aws/variables.tf +++ b/examples/terraform/aws/variables.tf @@ -146,6 +146,12 @@ variable "worker_type" { type = string } +variable "worker_volume_size" { + default = 50 + description = "Size of the EBS volume, in Gb" + type = number +} + variable "bastion_type" { default = "t3.nano" description = "instance type for bastion" diff --git a/test/e2e/testdata/aws.tfvars b/test/e2e/testdata/aws.tfvars new file mode 100644 index 000000000..892c4786c --- /dev/null +++ b/test/e2e/testdata/aws.tfvars @@ -0,0 +1,11 @@ +disable_kubeapi_loadbalancer = true +subnets_cidr = 27 + +# Use smaller instances in Ireland for E2E tests +aws_region = "eu-west-1" +control_plane_type = "t3a.small" +control_plane_volume_size = 25 +worker_type = "t3a.small" +worker_volume_size = 25 +bastion_type = "t3a.nano" +initial_machinedeployment_spotinstances_max_price = 0.0204 diff --git a/test/e2e/testdata/aws_stable.tfvars b/test/e2e/testdata/aws_stable.tfvars new file mode 100644 index 000000000..010ec9dbf --- /dev/null +++ b/test/e2e/testdata/aws_stable.tfvars @@ -0,0 +1,10 @@ +disable_kubeapi_loadbalancer = true +subnets_cidr = 27 + +# Use smaller instances in Ireland for E2E tests +aws_region = "eu-west-1" +control_plane_type = "t3a.small" +control_plane_volume_size = 25 +worker_type = "t3a.small" +bastion_type = "t3a.nano" +initial_machinedeployment_spotinstances_max_price = 0.0204 diff --git a/test/e2e/tests_definitions.go b/test/e2e/tests_definitions.go index 1ba08423b..120366ad1 100644 --- a/test/e2e/tests_definitions.go +++ b/test/e2e/tests_definitions.go @@ -37,11 +37,8 @@ var ( "PROVIDER": "aws", }, terraform: terraformBin{ - path: "../../examples/terraform/aws", - vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", - }, + path: "../../examples/terraform/aws", + varFile: "testdata/aws.tfvars", }, }, "aws_default_stable": { @@ -54,11 +51,8 @@ var ( "PROVIDER": "aws", }, terraform: terraformBin{ - path: "../../../kubeone-stable/examples/terraform/aws", - vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", - }, + path: "../../../kubeone-stable/examples/terraform/aws", + varFile: "testdata/aws_stable.tfvars", }, }, "aws_centos": { @@ -71,10 +65,9 @@ var ( "preset-aws-e2e-kubeone": "true", }, terraform: terraformBin{ - path: "../../examples/terraform/aws", + path: "../../examples/terraform/aws", + varFile: "testdata/aws.tfvars", vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", "os=centos", }, }, @@ -89,10 +82,9 @@ var ( "preset-aws-e2e-kubeone": "true", }, terraform: terraformBin{ - path: "../../../kubeone-stable/examples/terraform/aws", + path: "../../../kubeone-stable/examples/terraform/aws", + varFile: "testdata/aws_stable.tfvars", vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", "os=centos", }, }, @@ -107,12 +99,15 @@ var ( "preset-aws-e2e-kubeone": "true", }, terraform: terraformBin{ - path: "../../examples/terraform/aws", + path: "../../examples/terraform/aws", + varFile: "testdata/aws.tfvars", vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", "os=rhel", - "bastion_type=t3.micro", + // NB: command-line flags have priority over terraform.tfvars + // so it's safe to override variables like this + "bastion_type=t3a.micro", + "control_plane_volume_size=50", + "worker_volume_size=50", }, }, }, @@ -126,12 +121,14 @@ var ( "preset-aws-e2e-kubeone": "true", }, terraform: terraformBin{ - path: "../../../kubeone-stable/examples/terraform/aws", + path: "../../../kubeone-stable/examples/terraform/aws", + varFile: "testdata/aws_stable.tfvars", vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", "os=rhel", - "bastion_type=t3.micro", + // NB: command-line flags have priority over terraform.tfvars + // so it's safe to override variables like this + "bastion_type=t3a.micro", + "control_plane_volume_size=50", }, }, }, @@ -145,10 +142,9 @@ var ( "preset-aws-e2e-kubeone": "true", }, terraform: terraformBin{ - path: "../../examples/terraform/aws", + path: "../../examples/terraform/aws", + varFile: "testdata/aws.tfvars", vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", "os=rockylinux", }, }, @@ -163,10 +159,9 @@ var ( "preset-aws-e2e-kubeone": "true", }, terraform: terraformBin{ - path: "../../../kubeone-stable/examples/terraform/aws", + path: "../../../kubeone-stable/examples/terraform/aws", + varFile: "testdata/aws_stable.tfvars", vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", "os=rockylinux", }, }, @@ -181,10 +176,9 @@ var ( "preset-aws-e2e-kubeone": "true", }, terraform: terraformBin{ - path: "../../examples/terraform/aws", + path: "../../examples/terraform/aws", + varFile: "testdata/aws.tfvars", vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", "os=flatcar", }, }, @@ -199,10 +193,9 @@ var ( "preset-aws-e2e-kubeone": "true", }, terraform: terraformBin{ - path: "../../../kubeone-stable/examples/terraform/aws", + path: "../../../kubeone-stable/examples/terraform/aws", + varFile: "testdata/aws_stable.tfvars", vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", "os=flatcar", }, }, @@ -217,13 +210,10 @@ var ( "preset-aws-e2e-kubeone": "true", }, terraform: terraformBin{ - path: "../../examples/terraform/aws", + path: "../../examples/terraform/aws", + varFile: "testdata/aws.tfvars", vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", "os=flatcar", - "ssh_username=core", - "bastion_user=core", "worker_deploy_ssh_key=false", }, }, @@ -238,13 +228,10 @@ var ( "preset-aws-e2e-kubeone": "true", }, terraform: terraformBin{ - path: "../../../kubeone-stable/examples/terraform/aws", + path: "../../../kubeone-stable/examples/terraform/aws", + varFile: "testdata/aws_stable.tfvars", vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", "os=flatcar", - "ssh_username=core", - "bastion_user=core", "worker_deploy_ssh_key=false", }, }, @@ -259,10 +246,9 @@ var ( "preset-aws-e2e-kubeone": "true", }, terraform: terraformBin{ - path: "../../examples/terraform/aws", + path: "../../examples/terraform/aws", + varFile: "testdata/aws.tfvars", vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", "os=amzn", }, }, @@ -277,10 +263,9 @@ var ( "preset-aws-e2e-kubeone": "true", }, terraform: terraformBin{ - path: "../../../kubeone-stable/examples/terraform/aws", + path: "../../../kubeone-stable/examples/terraform/aws", + varFile: "testdata/aws_stable.tfvars", vars: []string{ - "disable_kubeapi_loadbalancer=true", - "subnets_cidr=27", "os=amzn", }, }, @@ -296,10 +281,8 @@ var ( "TEST_TIMEOUT": "120m", }, terraform: terraformBin{ - path: "../../examples/terraform/aws", - vars: []string{ - "subnets_cidr=27", - }, + path: "../../examples/terraform/aws", + varFile: "testdata/aws.tfvars", }, }, "azure_default": {