summaryrefslogtreecommitdiff
path: root/roles
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2018-01-20 18:16:05 +0100
committerChristian Pointner <equinox@spreadspace.org>2018-01-20 18:16:05 +0100
commit30017d399a648ce5732332c5b0292fd89e887d85 (patch)
treeb1e413b40cdc9a10fc17f39646b6d6cc57fcf83a /roles
parentinstall kubelet systemd snippet for dns config (diff)
initial version of the kubernetes master role
Diffstat (limited to 'roles')
-rw-r--r--roles/kubernetes-base/tasks/main.yaml8
-rw-r--r--roles/kubernetes-master/tasks/main.yml43
2 files changed, 48 insertions, 3 deletions
diff --git a/roles/kubernetes-base/tasks/main.yaml b/roles/kubernetes-base/tasks/main.yaml
index 5fc3ee4a..171375dd 100644
--- a/roles/kubernetes-base/tasks/main.yaml
+++ b/roles/kubernetes-base/tasks/main.yaml
@@ -56,10 +56,12 @@
name: "{{ item }}"
selection: hold
-- name: install kubelet dns config snippet
+- name: install kubelet config snippets
+ with_items:
+ - 20-dns.conf
template:
- src: 20-dns.conf.j2
- dest: /etc/systemd/system/kubelet.service.d/20-dns.conf
+ src: "{{ item }}.j2"
+ dest: "/etc/systemd/system/kubelet.service.d/{{ item }}"
notify: reload systemd
- name: add dummy group with gid 998
diff --git a/roles/kubernetes-master/tasks/main.yml b/roles/kubernetes-master/tasks/main.yml
index ed97d539..c0841585 100644
--- a/roles/kubernetes-master/tasks/main.yml
+++ b/roles/kubernetes-master/tasks/main.yml
@@ -1 +1,44 @@
---
+- name: generate bootstrap token
+ command: kubeadm token generate
+ changed_when: False
+ check_mode: no
+ register: kubeadm_token_generate
+
+- name: extract token id and secret
+ set_fact:
+ kube_bootstrap_token: "{{ kubeadm_token_generate.stdout }}"
+
+- name: set up kubernetes master
+ command: "kubeadm init --pod-network-cidr {{ kubernetes.pod_ip_range }} --service-cidr {{ kubernetes.service_ip_range }} {% if kubernetes.api_extra_sans | length > 0 %}--apiserver-cert-extra-sans {{ kubernetes.api_extra_sans | join(',') }}{% endif %} --token '{{ kube_bootstrap_token }}' --token-ttl 42m"
+ args:
+ creates: /etc/kubernetes/pki/ca.crt
+ register: kubeadm_init
+
+- name: print result of kubeadm init
+ when: kubeadm_init.changed
+ debug:
+ var: kubeadm_init.stdout
+
+## TODO: check if the taint is set or not before taking any action
+
+# - name: remove taint from master node
+# when: kubernetes.dedicated_master == False
+# command: kubectl --kubeconfig /etc/kubernetes/admin.conf taint nodes --all node-role.kubernetes.io/master-
+
+# - name: add taint for master node
+# when: kubernetes.dedicated_master == True
+# command: "kubectl --kubeconfig /etc/kubernetes/admin.conf taint nodes {{ ansible_nodename }} node-role.kubernetes.io/master='':NoSchedule"
+
+- name: install openssl
+ apt:
+ name: openssl
+ state: present
+
+- name: get ca certificate digest
+ shell: "openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'"
+ register: kube_ca_openssl
+
+- name: set ca digest fact
+ set_fact:
+ kube_bootstrap_ca_cert_hash: "sha256:{{ kube_ca_openssl.stdout }}"