{% if pillar.get('enable_cluster_autoscaler', '').lower() == 'true' %} {% set cloud_config = "" -%} {% set cloud_config_mount = "" -%} {% set cloud_config_volume = "" -%} {% if grains.cloud == 'gce' and grains.cloud_config is defined -%} {% set cloud_config = "--cloud-config=" + grains.cloud_config -%} {% set cloud_config_mount = "{\"name\": \"cloudconfigmount\",\"mountPath\": \"" + grains.cloud_config + "\", \"readOnly\": true}," -%} {% set cloud_config_volume = "{\"name\": \"cloudconfigmount\",\"hostPath\": {\"path\": \"" + grains.cloud_config + "\", \"type\": \"FileOrCreate\"}}," -%} {% endif -%} {% set params = pillar['autoscaler_mig_config'] + " " + cloud_config + " " + pillar.get('autoscaler_expander_config', '') -%} { "kind": "Pod", "apiVersion": "v1", "metadata": { "name": "cluster-autoscaler", "namespace": "kube-system", "labels": { "tier": "cluster-management", "component": "cluster-autoscaler" } }, "spec": { "hostNetwork": true, "containers": [ { "name": "cluster-autoscaler", "image": "gcr.io/google_containers/cluster-autoscaler:v1.1.0", "livenessProbe": { "httpGet": { "path": "/health-check", "port": 8085 }, "initialDelaySeconds": 600, "periodSeconds": 60 }, "command": [ "./run.sh", "--kubernetes=http://127.0.0.1:8080?inClusterConfig=f", "--v=4", "--logtostderr=true", "--write-status-configmap=true", "--balance-similar-node-groups=true", "{{params}}" ], "env": [ { "name": "LOG_OUTPUT", "value": "/var/log/cluster-autoscaler.log" } ], # TODO: Make resource requirements depend on the size of the cluster "resources": { "requests": { "cpu": "10m", "memory": "300Mi" } }, "volumeMounts": [ {{cloud_config_mount}} { "name": "ssl-certs", "readOnly": true, "mountPath": "/etc/ssl/certs" }, { "name": "usrsharecacerts", "readOnly": true, "mountPath": "/usr/share/ca-certificates" }, { "name": "logfile", "mountPath": "/var/log/cluster-autoscaler.log", "readOnly": false } ], "terminationMessagePath": "/dev/termination-log", "imagePullPolicy": "IfNotPresent" } ], "volumes": [ {{cloud_config_volume}} { "name": "ssl-certs", "hostPath": { "path": "/etc/ssl/certs" } }, { "name": "usrsharecacerts", "hostPath": { "path": "/usr/share/ca-certificates" } }, { "name": "logfile", "hostPath": { "path": "/var/log/cluster-autoscaler.log", "type": "FileOrCreate" } } ], "restartPolicy": "Always" } } {% endif %}