Skip to content

Commit

Permalink
master alignment
Browse files Browse the repository at this point in the history
  • Loading branch information
nreisbeck committed Oct 18, 2017
1 parent e5eb9d0 commit 94df14e
Show file tree
Hide file tree
Showing 22 changed files with 268 additions and 149 deletions.
14 changes: 14 additions & 0 deletions modules/digitalocean/etcd/etcd.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
resource "digitalocean_droplet" "etcd_node" {
count = "${var.droplet_count}"
name = "${var.cluster_name}-etcd-${count.index}"
image = "coreos-${var.container_linux_channel}"
region = "${var.droplet_region}"
size = "${var.droplet_size}"
ssh_keys = ["${var.ssh_keys}"]
tags = ["${var.extra_tags}"]
user_data = "${data.ignition_config.etcd.*.rendered[count.index]}"

lifecycle {
create_before_destroy = true
}
}
12 changes: 0 additions & 12 deletions modules/digitalocean/etcd/ignition.tf
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ data "ignition_config" "etcd" {
"${data.ignition_systemd_unit.locksmithd.*.id[count.index]}",
"${data.ignition_systemd_unit.etcd3.*.id[count.index]}",
"${data.ignition_systemd_unit.etcd_unzip_tls.id}",
"${module.swap.service_id}",
"${module.sshguard.service_id}",
]

files = [
Expand Down Expand Up @@ -121,13 +119,3 @@ EOF
},
]
}

module "swap" {
source = "../../swap"

swap_size = "${var.swap_size}"
}

module "sshguard" {
source = "../../sshguard"
}
33 changes: 14 additions & 19 deletions modules/digitalocean/etcd/variables.tf
Original file line number Diff line number Diff line change
@@ -1,19 +1,31 @@
variable "cluster_linux_channel" {
variable "base_domain" {
type = "string"
}

variable "cluster_name" {
type = "string"
}

variable "base_domain" {
variable "container_image" {
type = "string"
}

variable "container_linux_channel" {
type = "string"
}

variable "container_linux_version" {
type = "string"
}

variable "droplet_count" {
default = "3"
}

variable "droplet_region" {
type = "string"
}

variable "droplet_size" {
type = "string"
}
Expand All @@ -23,27 +35,10 @@ variable "extra_tags" {
default = []
}

variable "container_image" {
type = "string"
}

variable "ssh_keys" {
type = "list"
}

variable "droplet_region" {
type = "string"
}

# variable "droplet_image" {
# type = "string"
# }

variable "swap_size" {
type = "string"
description = "Amount of swap memory to enable"
}

variable "tls_enabled" {
default = false
}
Expand Down
40 changes: 40 additions & 0 deletions modules/digitalocean/master/ignition.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
data "ignition_config" "main" {
files = [
"${data.ignition_file.init_assets.id}",
"${var.ign_installer_kubelet_env_id}",
"${var.ign_max_user_watches_id}",
"${data.ignition_file.init_assets.id}",
]

systemd = ["${compact(list(
var.ign_docker_dropin_id,
var.ign_locksmithd_service_id,
var.ign_kubelet_service_id,
var.ign_k8s_node_bootstrap_service_id,
var.ign_init_assets_service_id,
var.ign_bootkube_service_id,
var.ign_tectonic_service_id,
var.ign_bootkube_path_unit_id,
var.ign_tectonic_path_unit_id
))}"]
}

data "template_file" "init_assets" {
template = "${file("${path.module}/resources/init-assets.sh")}"

vars {
cluster_name = "${var.cluster_name}"
kubelet_image_url = "${replace(var.container_images["hyperkube"],var.image_re,"$1")}"
kubelet_image_tag = "${replace(var.container_images["hyperkube"],var.image_re,"$2")}"
}
}

data "ignition_file" "init_assets" {
filesystem = "root"
path = "/opt/init-assets.sh"
mode = 0755

content {
content = "${data.template_file.init_assets.rendered}"
}
}
4 changes: 2 additions & 2 deletions modules/digitalocean/master/master.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
resource "digitalocean_droplet" "master_node" {
count = "${var.master_count}"
name = "${var.cluster_name}-master-${count.index}"
image = "coreos-${module.container_linux_channel}"
image = "coreos-${var.container_linux_channel}"
region = "${var.droplet_region}"
size = "${var.droplet_size}"
ssh_keys = ["${var.ssh_keys}"]
Expand Down Expand Up @@ -47,7 +47,7 @@ resource "digitalocean_loadbalancer" "console" {
}

resource "digitalocean_domain" "cluster" {
name = "cluster.${var.cluster_name}.${var.base_domain}"
name = "${var.cluster_name}.${var.base_domain}"
ip_address = "${digitalocean_droplet.master_node.*.ipv4_address[0]}"
}

Expand Down
9 changes: 9 additions & 0 deletions modules/digitalocean/master/resources/init-assets.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash
set -e

# Populate the kubelet.env file
mkdir -p /etc/kubernetes
echo "KUBELET_IMAGE_URL=${kubelet_image_url}" > /etc/kubernetes/kubelet.env
echo "KUBELET_IMAGE_TAG=${kubelet_image_tag}" >> /etc/kubernetes/kubelet.env

exit 0
19 changes: 19 additions & 0 deletions modules/digitalocean/master/resources/services/init-assets.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[Unit]
Description=Initialize Tectonic Assets
ConditionPathExists=!/opt/tectonic/init-assets.done
Before=bootkube.service k8s-node-bootstrap-service.service

[Service]
Type=oneshot
RemainAfterExit=true
WorkingDirectory=/opt/tectonic

User=root
Group=root

ExecStart=/usr/bin/bash /opt/tectonic/init-assets.sh
ExecStartPost=/bin/touch /opt/tectonic/init-assets.done

[Install]
WantedBy=multi-user.target
RequiredBy=bootkube.service k8s-node-bootstrap-service.service
13 changes: 13 additions & 0 deletions modules/digitalocean/master/resources/services/kubelet-env.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[Unit]
Description=Determine the Kubelet Image Version
ConditionPathExists=!/etc/kubernetes/kubelet.env

[Service]
ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes
ExecStartPre=/usr/bin/bash -c "docker run --rm -v /etc/kubernetes:/etc/kubernetes ${kube_version_image_url}:${kube_version_image_tag} --kubeconfig=/etc/kubernetes/kubeconfig > /etc/kubernetes/kube.version"
ExecStart=/usr/bin/bash -c "echo KUBELET_IMAGE_URL=${kubelet_image_url} > /etc/kubernetes/kubelet.env; echo KUBELET_IMAGE_TAG=$(tr '+' '_' < /etc/kubernetes/kube.version) >> /etc/kubernetes/kubelet.env; rm /etc/kubernetes/kube.version"
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
43 changes: 43 additions & 0 deletions modules/digitalocean/master/resources/services/kubelet.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
[Unit]
Description=Kubelet via Hyperkube ACI

[Service]
EnvironmentFile=/etc/kubernetes/kubelet.env
Environment="RKT_RUN_ARGS=--uuid-file-save=/var/cache/kubelet-pod.uuid \
--volume=resolv,kind=host,source=/etc/resolv.conf \
--mount volume=resolv,target=/etc/resolv.conf \
--volume var-lib-cni,kind=host,source=/var/lib/cni \
--mount volume=var-lib-cni,target=/var/lib/cni \
--volume var-log,kind=host,source=/var/log \
--mount volume=var-log,target=/var/log"

ExecStartPre=/bin/mkdir -p /etc/kubernetes/manifests \
/srv/kubernetes/manifests /etc/kubernetes/checkpoint-secrets \
/etc/kubernetes/cni/net.d /var/lib/cni
ExecStartPre=/usr/bin/bash -c "grep 'certificate-authority-data' /etc/kubernetes/kubeconfig | awk '{print $2}' | base64 -d > /etc/kubernetes/ca.crt"
ExecStartPre=-/usr/bin/rkt rm --uuid-file=/var/cache/kubelet-pod.uuid

ExecStart=/usr/lib/coreos/kubelet-wrapper \
--kubeconfig=/etc/kubernetes/kubeconfig \
--require-kubeconfig \
--cni-conf-dir=/etc/kubernetes/cni/net.d \
--network-plugin=cni \
--lock-file=/var/run/lock/kubelet.lock \
--exit-on-lock-contention \
--pod-manifest-path=/etc/kubernetes/manifests \
--allow-privileged \
--node-labels=${node_label} \
${node_taints_param} \
--minimum-container-ttl-duration=6m0s \
--cluster-dns=${cluster_dns_ip} \
--cluster-domain=cluster.local \
--client-ca-file=/etc/kubernetes/ca.crt \
--anonymous-auth=false \
--cloud-provider=
ExecStop=-/usr/bin/rkt stop --uuid-file=/var/cache/kubelet-pod.uuid

Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
1 change: 1 addition & 0 deletions modules/digitalocean/master/variables-ignition.tf
19 changes: 9 additions & 10 deletions modules/digitalocean/master/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@ variable "base_domain" {
type = "string"
}

variable "container_linux_channel" {
type = "string"
}

variable "cluster_name" {
type = "string"
}
Expand All @@ -15,14 +11,22 @@ variable "container_images" {
type = "map"
}

variable "droplet_size" {
variable "container_linux_channel" {
type = "string"
}

variable "container_linux_version" {
type = "string"
}

variable "droplet_region" {
type = "string"
}

variable "droplet_size" {
type = "string"
}

variable "extra_tags" {
type = "list"
default = []
Expand All @@ -34,18 +38,13 @@ variable "image_re" {
}

variable "master_count" {
#type = "string"
default = 1
}

variable "ssh_keys" {
type = "list"
}

# variable "user_data" {
# type = "string"
# }

variable "ign_init_assets_service_id" {
type = "string"
}
Expand Down
13 changes: 13 additions & 0 deletions modules/digitalocean/worker/ignition.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
data "ignition_config" "main" {
files = [
"${var.ign_installer_kubelet_env_id}",
"${var.ign_max_user_watches_id}",
]

systemd = [
"${var.ign_docker_dropin_id}",
"${var.ign_k8s_node_bootstrap_service_id}",
"${var.ign_kubelet_service_id}",
"${var.ign_locksmithd_service_id}",
]
}
1 change: 1 addition & 0 deletions modules/digitalocean/worker/variables-ignition.tf
25 changes: 12 additions & 13 deletions modules/digitalocean/worker/variables.tf
Original file line number Diff line number Diff line change
@@ -1,36 +1,35 @@
variable "droplet_count" {
variable "container_linux_channel" {
variable "base_domain" {
type = "string"
}

variable "cluster_name" {
type = "string"
}

variable "droplet_image" {
variable "container_linux_channel" {
type = "string"
}

variable "droplet_region" {
variable "container_linux_version" {
type = "string"
}

variable "droplet_count" {
type = "string"
}

variable "droplet_size" {
variable "droplet_region" {
type = "string"
}

variable "ssh_keys" {
type = "list"
variable "droplet_size" {
type = "string"
}

variable "extra_tags" {
type = "list"
}

# variable "user_data" {
# type = "string"
# }

variable "base_domain" {
type = "string"
variable "ssh_keys" {
type = "list"
}
2 changes: 1 addition & 1 deletion modules/digitalocean/worker/worker.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
resource "digitalocean_droplet" "worker_node" {
count = "${var.droplet_count}"
name = "${var.cluster_name}-worker-${count.index}"
image = "coreos-${module.container_linux_channel}"
image = "coreos-${var.container_linux_channel}"
region = "${var.droplet_region}"
size = "${var.droplet_size}"
ssh_keys = ["${var.ssh_keys}"]
Expand Down
14 changes: 0 additions & 14 deletions modules/ignition/assets.tf
Original file line number Diff line number Diff line change
Expand Up @@ -172,17 +172,3 @@ data "ignition_systemd_unit" "coreos_metadata" {
},
]
}

data "template_file" "swap" {
template = "${file("${path.module}/resources/services/swap.service")}"

vars {
swap_size = "${var.swap_size}"
}
}

data "ignition_systemd_unit" "swap" {
name = "swap.service"
enable = "${var.swap_size != "" ? true : false}"
content = "${data.template_file.swap.rendered}"
}
Loading

0 comments on commit 94df14e

Please sign in to comment.