---
kind: Deployment
apiVersion: apps/v1
metadata:
  name: cluster-autoscaler
  namespace: kube-system
  labels:
    app: cluster-autoscaler
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cluster-autoscaler
  template:
    metadata:
      namespace: kube-system
      labels:
        app: cluster-autoscaler
    spec:
      nodeSelector:
        node-role.kubernetes.io/control-plane: ""
      securityContext:
        runAsUser: 1001
      tolerations:
        - key: CriticalAddonsOnly
          value: "True"
          effect: NoSchedule
        - key: dedicated
          value: "control-plane"
          effect: NoSchedule
      serviceAccountName: cluster-autoscaler-account
      containers:
        - name: cluster-autoscaler
          image: openstackmagnum/cluster-autoscaler:v1.28.0
          imagePullPolicy: Always
          command:
            - ./cluster-autoscaler
            - --alsologtostderr
            - --cluster-name=scaler-01
            - --cloud-config=/config/cloud-config
            - --cloud-provider=magnum
            - --nodes=1:10:DefaultNodeGroup
          volumeMounts:
            - name: cloud-config
              mountPath: /config
              readOnly: true
      volumes:
        - name: cloud-config
          secret:
            secretName: cluster-autoscaler-cloud-config
