diff --git a/roles/kubernetes-apps/metrics_server/defaults/main.yml b/roles/kubernetes-apps/metrics_server/defaults/main.yml index 934e67b75..ed43734bb 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 9c4e7cb7c..1a32fdab9 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 746af17ad..528e23a13 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 4e5530315..1a9190829 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 bc9f3bdf9..59759188d 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 1df9d6418..a0ab20854 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 }}"