From 0cd3c092780cd9377a53cb0b8ebfdc147e5a7283 Mon Sep 17 00:00:00 2001 From: eamonn Date: Fri, 10 Jul 2020 15:10:41 +0200 Subject: [PATCH 1/6] Adding the port-testing module. This would be used to confirm our port openings to knet are still active --- .gitignore | 2 ++ modules/port-tester/README.md | 8 ++++++++ modules/port-tester/main.tf | 16 ++++++++++++++++ modules/port-tester/variables.tf | 17 +++++++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 modules/port-tester/README.md create mode 100644 modules/port-tester/main.tf create mode 100644 modules/port-tester/variables.tf diff --git a/.gitignore b/.gitignore index f3564cf..67e89b0 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ override.tf.json *.swp +# Jetbrains +**/.idea/* diff --git a/modules/port-tester/README.md b/modules/port-tester/README.md new file mode 100644 index 0000000..ff79ded --- /dev/null +++ b/modules/port-tester/README.md @@ -0,0 +1,8 @@ +# Port testing Addon +Very simple go webserver that executes a HTTP GET against a +provided endpoint and tests for an expected returned status code + +This application doesn't do any testing itself, it will only execute +what you want it to. An expect use is to config a dashboard like grafana +to, on a schedule, hit an endpoint and check the response. Populate the +influx with the result and display the data on the dashboard. \ No newline at end of file diff --git a/modules/port-tester/main.tf b/modules/port-tester/main.tf new file mode 100644 index 0000000..f578564 --- /dev/null +++ b/modules/port-tester/main.tf @@ -0,0 +1,16 @@ +locals { + chart_name = "port-tester" + chart_version = var.chart_version + release_name = "port-tester" + namespace = var.namespace + repository = "https://harbor.aws.c.dk/chartrepo/shared-platforms" +} + +resource "helm_release" "port-tester" { + count = var.enable ? 1 : 0 + name = local.release_name + chart = local.chart_name + version = local.chart_version + repository = local.repository + namespace = local.namespace +} \ No newline at end of file diff --git a/modules/port-tester/variables.tf b/modules/port-tester/variables.tf new file mode 100644 index 0000000..8e09b88 --- /dev/null +++ b/modules/port-tester/variables.tf @@ -0,0 +1,17 @@ +variable "chart_version" { + default = "0.1.0" + description = "port-testing version to install" + type = string +} + +variable "namespace" { + default = "port-testing" + description = "Namespace to install port-tester in" + type = string +} + +variable "enable" { + default = false + description = "Enable or Disable port-testing" + type = bool +} \ No newline at end of file From 77b82f63995eca3841f23a9336b8ecd654a0389d Mon Sep 17 00:00:00 2001 From: eamonn Date: Tue, 14 Jul 2020 12:33:16 +0200 Subject: [PATCH 2/6] removed namespace to configure it through another module --- modules/port-tester/main.tf | 2 -- modules/port-tester/variables.tf | 2 -- 2 files changed, 4 deletions(-) diff --git a/modules/port-tester/main.tf b/modules/port-tester/main.tf index f578564..cea87b2 100644 --- a/modules/port-tester/main.tf +++ b/modules/port-tester/main.tf @@ -2,7 +2,6 @@ locals { chart_name = "port-tester" chart_version = var.chart_version release_name = "port-tester" - namespace = var.namespace repository = "https://harbor.aws.c.dk/chartrepo/shared-platforms" } @@ -12,5 +11,4 @@ resource "helm_release" "port-tester" { chart = local.chart_name version = local.chart_version repository = local.repository - namespace = local.namespace } \ No newline at end of file diff --git a/modules/port-tester/variables.tf b/modules/port-tester/variables.tf index 8e09b88..67e480d 100644 --- a/modules/port-tester/variables.tf +++ b/modules/port-tester/variables.tf @@ -1,11 +1,9 @@ variable "chart_version" { - default = "0.1.0" description = "port-testing version to install" type = string } variable "namespace" { - default = "port-testing" description = "Namespace to install port-tester in" type = string } From 95503c347d5d2c3ad1e2fc603feef7c4e7af6d09 Mon Sep 17 00:00:00 2001 From: eamonn Date: Wed, 15 Jul 2020 08:40:40 +0200 Subject: [PATCH 3/6] allowing terraform to create the namespace --- modules/port-tester/main.tf | 3 +++ modules/port-tester/variables.tf | 1 + 2 files changed, 4 insertions(+) diff --git a/modules/port-tester/main.tf b/modules/port-tester/main.tf index cea87b2..780d4be 100644 --- a/modules/port-tester/main.tf +++ b/modules/port-tester/main.tf @@ -2,6 +2,7 @@ locals { chart_name = "port-tester" chart_version = var.chart_version release_name = "port-tester" + namespace = var.namespace repository = "https://harbor.aws.c.dk/chartrepo/shared-platforms" } @@ -11,4 +12,6 @@ resource "helm_release" "port-tester" { chart = local.chart_name version = local.chart_version repository = local.repository + namespace = local.namespace + create_namespace = true } \ No newline at end of file diff --git a/modules/port-tester/variables.tf b/modules/port-tester/variables.tf index 67e480d..1beb78d 100644 --- a/modules/port-tester/variables.tf +++ b/modules/port-tester/variables.tf @@ -1,4 +1,5 @@ variable "chart_version" { + default = "0.1.0" description = "port-testing version to install" type = string } From e33551458be9ae59c2e4af19e8367bf3353a9bd4 Mon Sep 17 00:00:00 2001 From: eamonn Date: Wed, 15 Jul 2020 10:21:42 +0200 Subject: [PATCH 4/6] updated to allow terraform to control the namespace for the port-tester --- modules/port-tester/main.tf | 27 ++++++++++++++++++++++++--- modules/port-tester/variables.tf | 5 +++++ 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/modules/port-tester/main.tf b/modules/port-tester/main.tf index 780d4be..4bb9ef1 100644 --- a/modules/port-tester/main.tf +++ b/modules/port-tester/main.tf @@ -1,9 +1,26 @@ +resource "kubernetes_namespace" "this" { + count = var.create_namespace == true ? 1 : 0 + + metadata { + name = var.namespace + + annotations = { + managedby = "terraform" + } + } +} + locals { chart_name = "port-tester" chart_version = var.chart_version release_name = "port-tester" - namespace = var.namespace repository = "https://harbor.aws.c.dk/chartrepo/shared-platforms" + create_namespace = true + + values = { + namespace = var.namespace + name = "port-tester" + } } resource "helm_release" "port-tester" { @@ -12,6 +29,10 @@ resource "helm_release" "port-tester" { chart = local.chart_name version = local.chart_version repository = local.repository - namespace = local.namespace - create_namespace = true + namespace = var.namespace + values = [yamlencode(local.values)] + + depends_on = [ + kubernetes_namespace.this, + ] } \ No newline at end of file diff --git a/modules/port-tester/variables.tf b/modules/port-tester/variables.tf index 1beb78d..2cd2988 100644 --- a/modules/port-tester/variables.tf +++ b/modules/port-tester/variables.tf @@ -13,4 +13,9 @@ variable "enable" { default = false description = "Enable or Disable port-testing" type = bool +} + +variable "create_namespace" { + description = "Whether to create the namespace defined in the namespace variable. Will fail if the namespace already exists" + default = false } \ No newline at end of file From 4e502fdad0a3b8938b183d82bf4056ce40064cb8 Mon Sep 17 00:00:00 2001 From: eamonn Date: Wed, 15 Jul 2020 10:31:38 +0200 Subject: [PATCH 5/6] Updates to the README.md with an example usage --- modules/port-tester/README.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/port-tester/README.md b/modules/port-tester/README.md index ff79ded..2ea10cc 100644 --- a/modules/port-tester/README.md +++ b/modules/port-tester/README.md @@ -1,8 +1,13 @@ # Port testing Addon -Very simple go webserver that executes a HTTP GET against a +Very simple go webserver that executes an HTTP GET against a provided endpoint and tests for an expected returned status code This application doesn't do any testing itself, it will only execute -what you want it to. An expect use is to config a dashboard like grafana -to, on a schedule, hit an endpoint and check the response. Populate the -influx with the result and display the data on the dashboard. \ No newline at end of file +what you want it to. An expected use is to config a dashboard like grafana +to poll endpoints and check the response. + +## Example + +```shell script +curl "http://HOST/?endpoint=https://rancher.lqd.dk&expectedStatusCode=200" +``` \ No newline at end of file From 9532e6d7b8ff9e71568270ade897f0576273ac0a Mon Sep 17 00:00:00 2001 From: eamonn Date: Wed, 15 Jul 2020 10:37:11 +0200 Subject: [PATCH 6/6] refactor: updates to reflect changes needed by terraform fmt --- modules/port-tester/main.tf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/port-tester/main.tf b/modules/port-tester/main.tf index 4bb9ef1..15770ab 100644 --- a/modules/port-tester/main.tf +++ b/modules/port-tester/main.tf @@ -11,15 +11,15 @@ resource "kubernetes_namespace" "this" { } locals { - chart_name = "port-tester" - chart_version = var.chart_version - release_name = "port-tester" - repository = "https://harbor.aws.c.dk/chartrepo/shared-platforms" + chart_name = "port-tester" + chart_version = var.chart_version + release_name = "port-tester" + repository = "https://harbor.aws.c.dk/chartrepo/shared-platforms" create_namespace = true values = { namespace = var.namespace - name = "port-tester" + name = "port-tester" } }