From 61bd320363a5181e483ae4d91302a5db2efcdea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Petazzoni?= Date: Sun, 3 Oct 2021 21:26:57 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Improve=20SCW=20startup=20scripts?= =?UTF-8?q?=20and=20doc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ prepare-scw/README.md | 5 +++-- prepare-scw/kapsule_cluster/providers.tf | 2 +- prepare-scw/kapsule_cluster/variables.tf | 2 +- prepare-scw/main.tf | 14 +++++++++++--- prepare-scw/providers.tf | 2 +- prepare-scw/purge-clusters.sh | 3 +++ prepare-scw/variables.tf | 5 +++++ 8 files changed, 27 insertions(+), 8 deletions(-) create mode 100755 prepare-scw/purge-clusters.sh diff --git a/.gitignore b/.gitignore index 1516d20c..0d74f955 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ prepare-scw/.terraform* prepare-scw/terraform.* prepare-scw/stage2/*.tf prepare-scw/stage2/kubeconfig.* +prepare-scw/stage2/.terraform* +prepare-scw/stage2/terraform.* prepare-scw/stage2/wildcard_dns.* slides/*.yml.html diff --git a/prepare-scw/README.md b/prepare-scw/README.md index 70deb4dd..87d249f8 100644 --- a/prepare-scw/README.md +++ b/prepare-scw/README.md @@ -7,9 +7,10 @@ To use it: ```bash scw init terraform init +export TF_VAR_how_many_clusters=5 +export TF_VAR_nodes_per_cluster=2 terraform apply cd stage2 +terraform init terraform apply ``` - -Edit `variables.tf` to change the number of clusters. diff --git a/prepare-scw/kapsule_cluster/providers.tf b/prepare-scw/kapsule_cluster/providers.tf index bf7840b9..169a3db1 100644 --- a/prepare-scw/kapsule_cluster/providers.tf +++ b/prepare-scw/kapsule_cluster/providers.tf @@ -2,7 +2,7 @@ terraform { required_providers { scaleway = { source = "scaleway/scaleway" - version = "2.0.0" + version = "2.1.0" } kubernetes = { source = "hashicorp/kubernetes" diff --git a/prepare-scw/kapsule_cluster/variables.tf b/prepare-scw/kapsule_cluster/variables.tf index bacea972..d32e8cf6 100644 --- a/prepare-scw/kapsule_cluster/variables.tf +++ b/prepare-scw/kapsule_cluster/variables.tf @@ -30,7 +30,7 @@ variable "pool_size" { variable "pool_min_size" { type = number - default = 1 + default = 2 } variable "pool_max_size" { diff --git a/prepare-scw/main.tf b/prepare-scw/main.tf index f497c23d..2663d0f5 100644 --- a/prepare-scw/main.tf +++ b/prepare-scw/main.tf @@ -1,13 +1,21 @@ module "kapsule_cluster" { - count = var.how_many_clusters - source = "./kapsule_cluster" - cluster_name = format("tf-%03d", count.index + 101) + count = var.how_many_clusters + source = "./kapsule_cluster" + cluster_name = format("tf-%s-%03d", random_string.tag.result, count.index + 101) + pool_size = var.nodes_per_cluster + pool_min_size = var.nodes_per_cluster } output "kubectl_config" { value = format("scw k8s kubeconfig install %s", split("/", module.kapsule_cluster.0.cluster_id)[1]) } +resource "random_string" "tag" { + length = 5 + special = false + upper = false +} + resource "local_file" "stage2" { filename = "${path.module}/stage2/main.tf" content = templatefile( diff --git a/prepare-scw/providers.tf b/prepare-scw/providers.tf index 45783207..ab41811c 100644 --- a/prepare-scw/providers.tf +++ b/prepare-scw/providers.tf @@ -2,7 +2,7 @@ terraform { required_providers { scaleway = { source = "scaleway/scaleway" - version = "2.0.0" + version = "2.1.0" } } required_version = ">= 0.14" diff --git a/prepare-scw/purge-clusters.sh b/prepare-scw/purge-clusters.sh new file mode 100755 index 00000000..7a4748af --- /dev/null +++ b/prepare-scw/purge-clusters.sh @@ -0,0 +1,3 @@ +#!/bin/sh +scw k8s cluster list -o json | + jq -r '.[] | select(.status=="'${STATE-creating}'") | .id' | xargs -n1 scw k8s cluster delete diff --git a/prepare-scw/variables.tf b/prepare-scw/variables.tf index 07412ae4..6ab784f2 100644 --- a/prepare-scw/variables.tf +++ b/prepare-scw/variables.tf @@ -2,3 +2,8 @@ variable "how_many_clusters" { type = number default = 2 } + +variable "nodes_per_cluster" { + type = number + default = 1 +}