From b27764985727e9492e20720c481f33d896a0bf05 Mon Sep 17 00:00:00 2001 From: Vegard Hagen Date: Thu, 26 May 2022 21:28:19 +0200 Subject: [PATCH] feat(init): Initial commit --- .gitignore | 2 ++ COMPONENTS.md | 8 +++++++ README.md | 1 + RESOURCES.md | 1 + main.tf | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 75 insertions(+) create mode 100644 COMPONENTS.md create mode 100644 README.md create mode 100644 RESOURCES.md create mode 100644 main.tf diff --git a/.gitignore b/.gitignore index 7a3e2fd..16c68e1 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,5 @@ override.tf.json # Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan # example: *tfplan* + +.idea diff --git a/COMPONENTS.md b/COMPONENTS.md new file mode 100644 index 0000000..7d61bbe --- /dev/null +++ b/COMPONENTS.md @@ -0,0 +1,8 @@ +kubespray +Argo autopilot + +Traefik +cert-manager? +ArgoCD +Prometheus +Grafana \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..cb91172 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +A Terraform script to provision a Kubernetes Cluster with stuff \ No newline at end of file diff --git a/RESOURCES.md b/RESOURCES.md new file mode 100644 index 0000000..1ea0ae6 --- /dev/null +++ b/RESOURCES.md @@ -0,0 +1 @@ +https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/guides/getting-started \ No newline at end of file diff --git a/main.tf b/main.tf new file mode 100644 index 0000000..18ed09b --- /dev/null +++ b/main.tf @@ -0,0 +1,63 @@ +terraform { + required_providers { + kubernetes = { + source = "hashicorp/kubernetes" + version = ">= 2.0.0" + } + } +} +provider "kubernetes" { + config_path = "~/.kube/config" +} +resource "kubernetes_namespace" "test" { + metadata { + name = "nginx" + } +} +resource "kubernetes_deployment" "test" { + metadata { + name = "nginx" + namespace = kubernetes_namespace.test.metadata.0.name + } + spec { + replicas = 2 + selector { + match_labels = { + app = "MyTestApp" + } + } + template { + metadata { + labels = { + app = "MyTestApp" + } + } + spec { + container { + image = "nginx" + name = "nginx-container" + port { + container_port = 80 + } + } + } + } + } +} +resource "kubernetes_service" "test" { + metadata { + name = "nginx" + namespace = kubernetes_namespace.test.metadata.0.name + } + spec { + selector = { + app = kubernetes_deployment.test.spec.0.template.0.metadata.0.labels.app + } + type = "NodePort" + port { + node_port = 30201 + port = 80 + target_port = 80 + } + } +} \ No newline at end of file