From 489e3779d3d903898740bd852bb5881a6602e8a5 Mon Sep 17 00:00:00 2001 From: Marcus Noble Date: Sat, 25 Apr 2020 20:03:46 +0100 Subject: [PATCH] Added terraform --- .gitignore | 1 + terraform/blockStorage.tf | 9 +++++++++ terraform/bucket.tf | 8 ++++++++ terraform/kubernetes.tf | 36 ++++++++++++++++++++++++++++++++++++ terraform/provider.tf | 4 ++++ terraform/state.tf | 10 ++++++++++ 6 files changed, 68 insertions(+) create mode 100644 .gitignore create mode 100644 terraform/blockStorage.tf create mode 100644 terraform/bucket.tf create mode 100644 terraform/kubernetes.tf create mode 100644 terraform/provider.tf create mode 100644 terraform/state.tf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3fa8c86 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.terraform diff --git a/terraform/blockStorage.tf b/terraform/blockStorage.tf new file mode 100644 index 0000000..a645dfe --- /dev/null +++ b/terraform/blockStorage.tf @@ -0,0 +1,9 @@ +# resource "scaleway_instance_volume" "kubernetes" { +# type = "l_ssd" +# name = "kubernetes" +# size_in_gb = 100 +# } + +# output "block-storage-id" { +# value = scaleway_instance_volume.kubernetes.id +# } diff --git a/terraform/bucket.tf b/terraform/bucket.tf new file mode 100644 index 0000000..06b502f --- /dev/null +++ b/terraform/bucket.tf @@ -0,0 +1,8 @@ +resource "scaleway_object_bucket" "kubernetes" { + name = "cluster.fun" + acl = "private" +} + +output "bucket_id" { + value = scaleway_object_bucket.kubernetes.id +} diff --git a/terraform/kubernetes.tf b/terraform/kubernetes.tf new file mode 100644 index 0000000..323f9db --- /dev/null +++ b/terraform/kubernetes.tf @@ -0,0 +1,36 @@ +resource "scaleway_k8s_cluster_beta" "k8s-cluster" { + name = "cluster-fun" + description = "" + version = "1.18.2" + cni = "weave" + enable_dashboard = false + ingress = "traefik" + + default_pool { + node_type = "DEV1-M" + size = 1 + autoscaling = true + autohealing = true + min_size = 1 + max_size = 2 + } + + feature_gates = [ + "EphemeralContainers", + "HPAScaleToZero", + "TTLAfterFinished" + ] +} + + +output "api_server" { + value = scaleway_k8s_cluster_beta.k8s-cluster.apiserver_url +} + +output "wildcard_dns" { + value = scaleway_k8s_cluster_beta.k8s-cluster.wildcard_dns +} + +output "kubeconfig" { + value = scaleway_k8s_cluster_beta.k8s-cluster.kubeconfig +} diff --git a/terraform/provider.tf b/terraform/provider.tf new file mode 100644 index 0000000..2500476 --- /dev/null +++ b/terraform/provider.tf @@ -0,0 +1,4 @@ +provider "scaleway" { + zone = "fr-par-1" + region = "fr-par" +} diff --git a/terraform/state.tf b/terraform/state.tf new file mode 100644 index 0000000..ac79323 --- /dev/null +++ b/terraform/state.tf @@ -0,0 +1,10 @@ +terraform { + backend "s3" { + bucket = "cluster.fun-tfstate" + key = "state.tfstate" + region = "fr-par" + endpoint = "https://s3.fr-par.scw.cloud" + skip_credentials_validation = true + skip_region_validation = true + } +}