summaryrefslogtreecommitdiff
path: root/roles/kubernetes/master
diff options
context:
space:
mode:
Diffstat (limited to 'roles/kubernetes/master')
-rw-r--r--roles/kubernetes/master/tasks/main.yml13
-rw-r--r--roles/kubernetes/master/templates/kubeadm-cluster.config.j233
2 files changed, 45 insertions, 1 deletions
diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml
index c9092bf3..acd264e2 100644
--- a/roles/kubernetes/master/tasks/main.yml
+++ b/roles/kubernetes/master/tasks/main.yml
@@ -16,8 +16,19 @@
check_mode: no
register: kubeadm_token_generate
+ - name: create kubernetes config directory
+ file:
+ path: /etc/kubernetes
+ state: directory
+
+ ## TODO test whether the generated cluster configs really works - since it has never been used...
+ - name: install cluster config for kubeadm
+ template:
+ src: kubeadm-cluster.config.j2
+ dest: /etc/kubernetes/kubeadm-cluster.config
+
- name: set up kubernetes master
- command: "kubeadm init --pod-network-cidr {{ kubernetes.pod_ip_range }} --service-cidr {{ kubernetes.service_ip_range }} --apiserver-advertise-address {{ kubernetes.api_advertise_ip | default('0.0.0.0') }} {% if kubernetes.api_extra_sans | length > 0 %}--apiserver-cert-extra-sans {{ kubernetes.api_extra_sans | join(',') }}{% endif %} --token '{{ kubeadm_token_generate.stdout }}' --token-ttl 42m --skip-token-print"
+ command: "kubeadm init --config '/etc/kubernetes/kubeadm-cluster.config' --token '{{ kubeadm_token_generate.stdout }}' --token-ttl 42m --skip-token-print"
args:
creates: /etc/kubernetes/pki/ca.crt
register: kubeadm_init
diff --git a/roles/kubernetes/master/templates/kubeadm-cluster.config.j2 b/roles/kubernetes/master/templates/kubeadm-cluster.config.j2
new file mode 100644
index 00000000..eac0cacd
--- /dev/null
+++ b/roles/kubernetes/master/templates/kubeadm-cluster.config.j2
@@ -0,0 +1,33 @@
+apiVersion: kubeadm.k8s.io/v1beta1
+kind: ClusterConfiguration
+kubernetesVersion: v{{ kubernetes.version }}
+clusterName: {{ kubernetes.cluster_name }}
+certificatesDir: /etc/kubernetes/pki
+{% if kubernetes.api_advertise_ip %}
+controlPlaneEndpoint: "{{ kubernetes.api_advertise_ip }}:6443"
+{% endif %}
+imageRepository: k8s.gcr.io
+networking:
+ dnsDomain: cluster.local
+ podSubnet: {{ kubernetes.pod_ip_range }}
+ serviceSubnet: {{ kubernetes.service_ip_range }}
+etcd:
+ local:
+ dataDir: /var/lib/etcd
+apiServer:
+{% if kubernetes.api_extra_sans | length > 0 %}
+ certSANs:
+{% for san in kubernetes.api_extra_sans %}
+ - {{ san }}
+{% endfor %}
+{% endif %}
+ extraArgs:
+{% if kubernetes.api_advertise_ip %}
+ advertise-address: {{ kubernetes.api_advertise_ip }}
+{% endif %}
+ authorization-mode: Node,RBAC
+ timeoutForControlPlane: 4m0s
+controllerManager: {}
+scheduler: {}
+dns:
+ type: CoreDNS