diff options
-rw-r--r-- | group_vars/k8s-stream/vars.yml | 3 | ||||
-rw-r--r-- | roles/kubernetes-master/tasks/main.yml | 19 | ||||
-rw-r--r-- | roles/kubernetes-node/tasks/main.yml | 15 |
3 files changed, 32 insertions, 5 deletions
diff --git a/group_vars/k8s-stream/vars.yml b/group_vars/k8s-stream/vars.yml index f13aff35..898bd91f 100644 --- a/group_vars/k8s-stream/vars.yml +++ b/group_vars/k8s-stream/vars.yml @@ -3,9 +3,10 @@ docker_pkg_version: 17.03.2~ce-0~debian-stretch kubernetes: pkg_version: 1.9.2-00 + # currentley only one master is supported + master: "{{ groups['k8s-stream-master'] | first }}" api_extra_sans: - dione.spreadspace.org - dedicated_master: False pod_ip_range: 172.18.0.0/16 diff --git a/roles/kubernetes-master/tasks/main.yml b/roles/kubernetes-master/tasks/main.yml index 64634781..e83bd749 100644 --- a/roles/kubernetes-master/tasks/main.yml +++ b/roles/kubernetes-master/tasks/main.yml @@ -1,20 +1,31 @@ --- -- name: generate bootstrap token +- name: generate bootstrap token (1/2) command: kubeadm token generate changed_when: False check_mode: no register: kubeadm_token_generate -- name: extract token id and secret +- name: generate bootstrap token (2/2) set_fact: kube_bootstrap_token: "{{ kubeadm_token_generate.stdout }}" +################ +### check if master ist already initialized + +# if not - 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 --skip-token-print" args: creates: /etc/kubernetes/pki/ca.crt register: kubeadm_init +# if it is initialized + +## TODO: add bootstrap token (with expiry) + +### +################ + - name: dump output of kubeadm init to log file when: kubeadm_init.changed copy: @@ -44,11 +55,11 @@ name: openssl state: present -- name: get ca certificate digest +- name: get ca certificate digest (1/2) 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 changed_when: False -- name: set ca digest fact +- name: get ca certificate digest (2/2) set_fact: kube_bootstrap_ca_cert_hash: "sha256:{{ kube_ca_openssl.stdout }}" diff --git a/roles/kubernetes-node/tasks/main.yml b/roles/kubernetes-node/tasks/main.yml index ed97d539..c6b24fc6 100644 --- a/roles/kubernetes-node/tasks/main.yml +++ b/roles/kubernetes-node/tasks/main.yml @@ -1 +1,16 @@ --- +- name: get master vars + set_fact: + kube_master_vars: "{{ hostvars[kubernetes.master] }}" + +- name: set up kubernetes master + command: "kubeadm join --token {{ kube_master_vars.kube_bootstrap_token }} {{ kube_master_vars.ansible_default_ipv4.address }}:6443 --discovery-token-ca-cert-hash {{ kube_master_vars.kube_bootstrap_ca_cert_hash }}" + args: + creates: /etc/kubernetes/kubelet.conf + register: kubeadm_join + +- name: dump output of kubeadm join to log file + when: kubeadm_join.changed + copy: + content: "{{ kubeadm_join.stdout }}\n" + dest: /etc/kubernetes/kubeadm-join.log |