{% set metrics_memory = "200Mi" -%} {% set eventer_memory = "200Mi" -%} {% set num_nodes = pillar.get('num_nodes', -1) -%} {% if num_nodes >= 0 -%} {% set metrics_memory = (200 + num_nodes * 4)|string + "Mi" -%} {% set eventer_memory = (200 * 1024 + num_nodes * 500)|string + "Ki" -%} {% endif -%} apiVersion: extensions/v1beta1 kind: Deployment metadata: name: heapster namespace: kube-system labels: k8s-app: heapster kubernetes.io/cluster-service: "true" spec: replicas: 1 selector: matchLabels: k8s-app: heapster template: metadata: labels: k8s-app: heapster kubernetes.io/cluster-service: "true" spec: containers: - image: gcr.io/google_containers/heapster:v1.0.0 name: heapster resources: # keep request = limit to keep this container in guaranteed class limits: cpu: 100m memory: {{ metrics_memory }} requests: cpu: 100m memory: {{ metrics_memory }} command: - /heapster - --source=kubernetes.summary_api:'' - --sink=gcm - --metric_resolution=60s volumeMounts: - name: ssl-certs mountPath: /etc/ssl/certs readOnly: true - image: gcr.io/google_containers/heapster:v1.0.0 name: eventer resources: # keep request = limit to keep this container in guaranteed class limits: cpu: 100m memory: {{ eventer_memory }} requests: cpu: 100m memory: {{ eventer_memory }} command: - /eventer - --source=kubernetes:'' - --sink=gcl volumeMounts: - name: ssl-certs mountPath: /etc/ssl/certs readOnly: true - image: gcr.io/google_containers/addon-resizer:1.0 name: heapster-nanny resources: limits: cpu: 50m memory: 100Mi requests: cpu: 50m memory: 100Mi env: - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: MY_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace command: - /pod_nanny - --cpu=100m - --extra-cpu=0m - --memory=200Mi - --extra-memory=3Mi - --threshold=5 - --deployment=heapster - --container=heapster - --poll-period=300000 - image: gcr.io/google_containers/addon-resizer:1.0 name: eventer-nanny resources: limits: cpu: 50m memory: 100Mi requests: cpu: 50m memory: 100Mi env: - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: MY_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace command: - /pod_nanny - --cpu=100m - --extra-cpu=0m - --memory=200Mi - --extra-memory=3Mi - --threshold=5 - --deployment=heapster - --container=eventer - --poll-period=300000 volumes: - name: ssl-certs hostPath: path: "/etc/ssl/certs"