{% set base_metrics_memory = "140Mi" -%} {% set base_metrics_cpu = "80m" -%} {% set metrics_memory_per_node = 4 -%} {% set metrics_cpu_per_node = 0.5 -%} {% set num_nodes = pillar.get('num_nodes', -1) -%} {% set nanny_memory = "90Mi" -%} {% set nanny_memory_per_node = 200 -%} {% if num_nodes >= 0 -%} {% set nanny_memory = (90 * 1024 + num_nodes * nanny_memory_per_node)|string + "Ki" -%} {% endif -%} apiVersion: v1 kind: ServiceAccount metadata: name: heapster namespace: kube-system labels: kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: heapster-v1.4.1 namespace: kube-system labels: k8s-app: heapster kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile version: v1.4.1 spec: replicas: 1 selector: matchLabels: k8s-app: heapster version: v1.4.1 template: metadata: labels: k8s-app: heapster version: v1.4.1 annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: containers: - image: gcr.io/google_containers/heapster-amd64:v1.4.1 name: heapster livenessProbe: httpGet: path: /healthz port: 8082 scheme: HTTP initialDelaySeconds: 180 timeoutSeconds: 5 command: - /heapster - --source=kubernetes.summary_api:'' - --sink=stackdriver:?cluster_name={{ cluster_name }}&min_interval_sec=100&batch_export_timeout_sec=110 volumeMounts: - name: ssl-certs mountPath: /etc/ssl/certs readOnly: true - name: usr-ca-certs mountPath: /usr/share/ca-certificates readOnly: true # BEGIN_PROMETHEUS_TO_SD - name: prom-to-sd image: gcr.io/google-containers/prometheus-to-sd:v0.2.1 command: - /monitor - --source=heapster:http://localhost:8082?whitelisted=stackdriver_requests_count,stackdriver_timeseries_count - --stackdriver-prefix={{ prometheus_to_sd_prefix }}/addons - --api-override={{ prometheus_to_sd_endpoint }} - --pod-id=$(POD_NAME) - --namespace-id=$(POD_NAMESPACE) volumeMounts: - name: ssl-certs mountPath: /etc/ssl/certs env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace # END_PROMETHEUS_TO_SD - image: gcr.io/google_containers/addon-resizer:2.0 name: heapster-nanny resources: limits: cpu: 50m memory: {{ nanny_memory }} requests: cpu: 50m memory: {{ nanny_memory }} env: - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: MY_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace command: - /pod_nanny - --cpu={{ base_metrics_cpu }} - --extra-cpu={{ metrics_cpu_per_node }}m - --memory={{ base_metrics_memory }} - --extra-memory={{metrics_memory_per_node}}Mi - --deployment=heapster-v1.4.1 - --container=heapster - --poll-period=300000 volumes: - name: ssl-certs hostPath: path: "/etc/ssl/certs" - name: usr-ca-certs hostPath: path: "/usr/share/ca-certificates" serviceAccountName: heapster tolerations: - key: "CriticalAddonsOnly" operator: "Exists"