diff --git a/roles/kubernetes-apps/metrics_server/defaults/main.yml b/roles/kubernetes-apps/metrics_server/defaults/main.yml index 548cf0ee826..993eed6c1ea 100644 --- a/roles/kubernetes-apps/metrics_server/defaults/main.yml +++ b/roles/kubernetes-apps/metrics_server/defaults/main.yml @@ -9,3 +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: {} 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 d44dc8f5e43..686cde0fc23 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 @@ -84,12 +84,17 @@ spec: volumes: - name: tmp emptyDir: {} -{% if not masters_are_not_tainted %} +{% if not masters_are_not_tainted or metrics_server_extra_tolerations is defined %} tolerations: +{% if not masters_are_not_tainted %} - key: node-role.kubernetes.io/master effect: NoSchedule - key: node-role.kubernetes.io/control-plane effect: NoSchedule +{% endif %} +{% if metrics_server_extra_tolerations is defined %} + {{ metrics_server_extra_tolerations | list | to_nice_yaml(indent=2) | indent(8) }} +{% endif %} {% endif %} affinity: podAntiAffinity: @@ -105,3 +110,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 %} + nodeSelector: + {{ metrics_server_nodeselector | to_nice_yaml | indent(width=8) }} +{% endif %}