diff --git a/roles/kubernetes-apps/metrics_server/defaults/main.yml b/roles/kubernetes-apps/metrics_server/defaults/main.yml index 934e67b7593013ddc0093de8b51f94b1c3b4f8a5..ed43734bb7223d9eee806f1e8082522ceb230aeb 100644 --- a/roles/kubernetes-apps/metrics_server/defaults/main.yml +++ b/roles/kubernetes-apps/metrics_server/defaults/main.yml @@ -9,6 +9,6 @@ metrics_server_requests_cpu: 100m metrics_server_requests_memory: 200Mi metrics_server_host_network: false metrics_server_replicas: 1 -# metrics_server_extra_tolerations: [] -# metrics_server_extra_affinity: {} -# metrics_server_nodeselector: {} +metrics_server_extra_tolerations: [] +metrics_server_extra_affinity: {} +metrics_server_nodeselector: {} diff --git a/roles/kubernetes-apps/metrics_server/tasks/main.yml b/roles/kubernetes-apps/metrics_server/tasks/main.yml index 9c4e7cb7ca1e80601ab94a19fd35c499e1cef95c..1a32fdab95943be947f59c17b23d3751aa897c43 100644 --- a/roles/kubernetes-apps/metrics_server/tasks/main.yml +++ b/roles/kubernetes-apps/metrics_server/tasks/main.yml @@ -1,9 +1,4 @@ --- -# If all control plane nodes have the node role, there are no tainted control plane nodes and toleration should not be specified. -- name: Check all control plane nodes are node or not - set_fact: - control_plane_nodes_are_not_tainted: "{{ groups['kube_node'] | intersect(groups['kube_control_plane']) == groups['kube_control_plane'] }}" - - name: Metrics Server | Delete addon dir file: path: "{{ kube_config_dir }}/addons/metrics_server" diff --git a/roles/kubernetes-apps/metrics_server/templates/metrics-server-deployment.yaml.j2 b/roles/kubernetes-apps/metrics_server/templates/metrics-server-deployment.yaml.j2 index 746af17ad172edf6405224bebd75c732b0040f66..528e23a1398d31691195b20646252fdd34a516e8 100644 --- a/roles/kubernetes-apps/metrics_server/templates/metrics-server-deployment.yaml.j2 +++ b/roles/kubernetes-apps/metrics_server/templates/metrics-server-deployment.yaml.j2 @@ -85,16 +85,12 @@ spec: volumes: - name: tmp emptyDir: {} -{% if not control_plane_nodes_are_not_tainted or metrics_server_extra_tolerations is defined %} tolerations: -{% if not control_plane_nodes_are_not_tainted %} - key: node-role.kubernetes.io/control-plane effect: NoSchedule -{% endif %} -{% if metrics_server_extra_tolerations is defined %} +{% if metrics_server_extra_tolerations %} {{ metrics_server_extra_tolerations | list | to_nice_yaml(indent=2) | indent(8) }} -{% endif %} -{% endif %} +{%- endif %} affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: @@ -109,10 +105,10 @@ spec: topologyKey: kubernetes.io/hostname namespaces: - kube-system -{% if metrics_server_extra_affinity is defined %} - {{ metrics_server_extra_affinity | to_nice_yaml | indent(width=8) }} -{% endif %} -{% if metrics_server_nodeselector is defined %} +{% if metrics_server_extra_affinity %} + {{ metrics_server_extra_affinity | to_nice_yaml(indent=2) | indent(8) }} +{%- endif %} +{% if metrics_server_nodeselector %} nodeSelector: - {{ metrics_server_nodeselector | to_nice_yaml | indent(width=8) }} -{% endif %} + {{ metrics_server_nodeselector | to_nice_yaml(indent=2) | indent(8) }} +{%- endif %} diff --git a/roles/kubernetes/control-plane/templates/kubeadm-config.v1beta3.yaml.j2 b/roles/kubernetes/control-plane/templates/kubeadm-config.v1beta3.yaml.j2 index 4e5530315b54947213fbfbafcbf61fdfaa79bbee..1a919082928092a16b761827cf633a080c1c2ba6 100644 --- a/roles/kubernetes/control-plane/templates/kubeadm-config.v1beta3.yaml.j2 +++ b/roles/kubernetes/control-plane/templates/kubeadm-config.v1beta3.yaml.j2 @@ -16,7 +16,7 @@ nodeRegistration: {% if kube_override_hostname | default('') %} name: "{{ kube_override_hostname }}" {% endif %} -{% if inventory_hostname in groups['kube_control_plane'] and inventory_hostname not in groups['kube_node'] %} +{% if 'kube_control_plane' in group_names and 'kube_node' not in group_names %} taints: - effect: NoSchedule key: node-role.kubernetes.io/control-plane diff --git a/roles/kubernetes/control-plane/templates/kubeadm-controlplane.v1beta3.yaml.j2 b/roles/kubernetes/control-plane/templates/kubeadm-controlplane.v1beta3.yaml.j2 index bc9f3bdf929900b75c50d7152205395bea08b850..59759188dd79b20cc3c6c49a8975991f6def57f6 100644 --- a/roles/kubernetes/control-plane/templates/kubeadm-controlplane.v1beta3.yaml.j2 +++ b/roles/kubernetes/control-plane/templates/kubeadm-controlplane.v1beta3.yaml.j2 @@ -24,7 +24,7 @@ controlPlane: nodeRegistration: name: {{ kube_override_hostname | default(inventory_hostname) }} criSocket: {{ cri_socket }} -{% if inventory_hostname in groups['kube_control_plane'] and inventory_hostname not in groups['kube_node'] %} +{% if 'kube_control_plane' in group_names and 'kube_node' not in group_names %} taints: - effect: NoSchedule key: node-role.kubernetes.io/control-plane diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml index 1df9d64186099806cb8774f6c26d3c37558f75e0..a0ab208549700563e9be00aca0f723a68dbd7f6e 100644 --- a/roles/kubernetes/node/defaults/main.yml +++ b/roles/kubernetes/node/defaults/main.yml @@ -28,7 +28,7 @@ kubelet_systemd_wants_dependencies: [] # List of secure IPs for kubelet kube_node_addresses: >- - {%- for host in (groups['kube_control_plane'] + groups['kube_node'] + groups['etcd']) | unique -%} + {%- for host in (groups['k8s_cluster'] | union(groups['etcd'])) -%} {{ hostvars[host]['ip'] | default(fallback_ips[host]) }}{{ ' ' if not loop.last else '' }} {%- endfor -%} kubelet_secure_addresses: "localhost link-local {{ kube_pods_subnet }} {{ kube_node_addresses }}"