From 86c0613d28d96caeb4b156ae18dfbbd3d1bec946 Mon Sep 17 00:00:00 2001 From: Nemo Date: Sun, 13 Jan 2019 00:39:08 +0530 Subject: [PATCH] [k8s] S01E02 Control Plane: bootkube-render --- kubernetes.tf | 16 ++++++++++++++++ modules/bootkube/data.tf | 1 + modules/bootkube/main.tf | 30 ++++++++++++++++++++++++++++++ modules/bootkube/variables.tf | 29 +++++++++++++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 modules/bootkube/data.tf create mode 100644 modules/bootkube/main.tf create mode 100644 modules/bootkube/variables.tf diff --git a/kubernetes.tf b/kubernetes.tf index 8ab7a7e..ad5972b 100644 --- a/kubernetes.tf +++ b/kubernetes.tf @@ -7,3 +7,19 @@ module "etcd" { docker = "docker.sydney" } } + +# module "kubelet" { +# source = "modules/kubelet" +# listen_ip = "${var.ips["dovpn"]}" +# } + +module "bootkube-render" { + source = "modules/bootkube" + mode = "render" + host_ip = "${var.ips["dovpn"]}" + k8s_host = "k8s.${var.root-domain}" + + providers = { + docker = "docker.sydney" + } +} diff --git a/modules/bootkube/data.tf b/modules/bootkube/data.tf new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/modules/bootkube/data.tf @@ -0,0 +1 @@ + diff --git a/modules/bootkube/main.tf b/modules/bootkube/main.tf new file mode 100644 index 0000000..d4ac1a7 --- /dev/null +++ b/modules/bootkube/main.tf @@ -0,0 +1,30 @@ +resource "docker_container" "bootkube" { + image = "${docker_image.image.latest}" + name = "bootkube-render" + + volumes { + container_path = "/home/.bootkube" + volume_name = "${var.asset_dir_volume_name}" + } + + command = [ + "bootkube", + "${var.mode}", + "--asset-dir=/home/.bootkube", + "--api-servers=https://kubernetes.default:${var.host_port},https://${var.k8s_host},https://${var.host_ip}:${var.host_port}", + "--pod-cidr=${var.pod_cidr}", + ] + + # "--service-cidr=${var.service_cidr}", + restart = "on-failure" + max_retry_count = 5 +} + +data "docker_registry_image" "image" { + name = "captn3m0/bootkube:v${var.version}" +} + +resource "docker_image" "image" { + name = "${data.docker_registry_image.image.name}" + pull_triggers = ["${data.docker_registry_image.image.sha256_digest}"] +} diff --git a/modules/bootkube/variables.tf b/modules/bootkube/variables.tf new file mode 100644 index 0000000..075bd5e --- /dev/null +++ b/modules/bootkube/variables.tf @@ -0,0 +1,29 @@ +// Based on https://github.com/v1k0d3n/dockerfiles/tree/master/bootkube + +variable "asset_dir_volume_name" { + default = "k8s-assets" +} + +variable "k8s_host" { + description = "kubenetes hostname" +} + +variable "host_port" { + default = "8443" +} + +variable "host_ip" {} + +variable "pod_cidr" { + default = "10.25.0.0/16" +} + +variable "service_cidr" { + default = "10.96.0.0/16" +} + +variable "mode" {} + +variable "version" { + default = "0.14.0" +}