--- # Copyright 2016 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. apiVersion: apps/v1 kind: Deployment metadata: name: dns-autoscaler{{ coredns_ordinal_suffix }} namespace: kube-system labels: k8s-app: dns-autoscaler{{ coredns_ordinal_suffix }} kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile spec: selector: matchLabels: k8s-app: dns-autoscaler{{ coredns_ordinal_suffix }} template: metadata: labels: k8s-app: dns-autoscaler{{ coredns_ordinal_suffix }} annotations: scheduler.alpha.kubernetes.io/critical-pod: "" seccomp.security.alpha.kubernetes.io/pod: 'docker/default' spec: {% if kube_version is version('v1.11.1', '>=') %} priorityClassName: system-cluster-critical {% endif %} securityContext: supplementalGroups: [ 65534 ] fsGroup: 65534 nodeSelector: beta.kubernetes.io/os: linux tolerations: - effect: NoSchedule operator: Equal key: node-role.kubernetes.io/master - key: "CriticalAddonsOnly" operator: "Exists" affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - topologyKey: "kubernetes.io/hostname" labelSelector: matchLabels: k8s-app: dns-autoscaler{{ coredns_ordinal_suffix }} nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 preference: matchExpressions: - key: node-role.kubernetes.io/master operator: In values: - "" containers: - name: autoscaler image: "{{ dnsautoscaler_image_repo }}:{{ dnsautoscaler_image_tag }}" resources: requests: cpu: "20m" memory: "10Mi" command: - /cluster-proportional-autoscaler - --namespace=kube-system - --default-params={"linear":{"preventSinglePointFailure":{{ dns_prevent_single_point_failure }},"coresPerReplica":{{ dns_cores_per_replica }},"nodesPerReplica":{{ dns_nodes_per_replica }},"min":{{ dns_min_replicas }}}} - --logtostderr=true - --v=2 - --configmap=dns-autoscaler{{ coredns_ordinal_suffix }} - --target=Deployment/coredns{{ coredns_ordinal_suffix }} serviceAccountName: dns-autoscaler