diff --git a/cluster-autoscaler/cloudprovider/magnum/examples/cluster-autoscaler-deployment-master.yaml b/cluster-autoscaler/cloudprovider/magnum/examples/cluster-autoscaler-deployment-master.yaml new file mode 100644 index 0000000000..ce86e3be13 --- /dev/null +++ b/cluster-autoscaler/cloudprovider/magnum/examples/cluster-autoscaler-deployment-master.yaml @@ -0,0 +1,49 @@ +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/master: "" + securityContext: + runAsUser: 1001 + tolerations: + - key: CriticalAddonsOnly + value: "True" + effect: NoSchedule + - key: dedicated + value: "master" + effect: NoSchedule + serviceAccountName: cluster-autoscaler-account + containers: + - name: cluster-autoscaler + image: thartland/magnum-autoscaler:v1.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 diff --git a/cluster-autoscaler/cloudprovider/magnum/examples/cluster-autoscaler-deployment.yaml b/cluster-autoscaler/cloudprovider/magnum/examples/cluster-autoscaler-deployment.yaml new file mode 100644 index 0000000000..ff42df021d --- /dev/null +++ b/cluster-autoscaler/cloudprovider/magnum/examples/cluster-autoscaler-deployment.yaml @@ -0,0 +1,38 @@ +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: + serviceAccountName: cluster-autoscaler-account + containers: + - name: cluster-autoscaler + image: thartland/magnum-autoscaler:v1.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 diff --git a/cluster-autoscaler/cloudprovider/magnum/examples/cluster-autoscaler-secret.yaml b/cluster-autoscaler/cloudprovider/magnum/examples/cluster-autoscaler-secret.yaml new file mode 100644 index 0000000000..5143d9b568 --- /dev/null +++ b/cluster-autoscaler/cloudprovider/magnum/examples/cluster-autoscaler-secret.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Secret +metadata: + name: cluster-autoscaler-cloud-config + namespace: kube-system +type: Opaque +stringData: + cloud-config: |- + [Global] + auth-url=http://192.128.1.15:5000/v3 + user-id=9a377d66afcf4b83848e7e1ae3178f33 + password=FVJ2zbkewGnhZrzymI + trust-id=adbbbcd022bd4a3ea8b1703d4aa37ebc + region=RegionOne \ No newline at end of file diff --git a/cluster-autoscaler/cloudprovider/magnum/examples/cluster-autoscaler-svcaccount.yaml b/cluster-autoscaler/cloudprovider/magnum/examples/cluster-autoscaler-svcaccount.yaml new file mode 100644 index 0000000000..c33b08077e --- /dev/null +++ b/cluster-autoscaler/cloudprovider/magnum/examples/cluster-autoscaler-svcaccount.yaml @@ -0,0 +1,63 @@ +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRole +metadata: + name: cluster-autoscaler-role +rules: + - apiGroups: [""] + resources: ["events","endpoints"] + verbs: ["create", "patch"] + - apiGroups: [""] + resources: ["pods/eviction"] + verbs: ["create"] + - apiGroups: [""] + resources: ["pods/status"] + verbs: ["update"] + - apiGroups: [""] + resources: ["endpoints"] + resourceNames: ["cluster-autoscaler"] + verbs: ["get","update"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["watch","list","get","update"] + - apiGroups: [""] + resources: ["pods","services","replicationcontrollers","persistentvolumeclaims","persistentvolumes"] + verbs: ["watch","list","get"] + - apiGroups: ["batch"] + resources: ["jobs"] + verbs: ["watch","list","get"] + - apiGroups: ["policy"] + resources: ["poddisruptionbudgets"] + verbs: ["watch","list"] + - apiGroups: ["apps"] + resources: ["daemonsets","replicasets","statefulsets"] + verbs: ["watch","list","get"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["watch","list","get"] + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["create"] + - apiGroups: [""] + resources: ["configmaps"] + resourceNames: ["cluster-autoscaler-status"] + verbs: ["delete","get","update"] +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRoleBinding +metadata: + name: cluster-autoscaler-rolebinding + namespace: kube-system +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-autoscaler-role +subjects: + - kind: ServiceAccount + name: cluster-autoscaler-account + namespace: kube-system +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: cluster-autoscaler-account + namespace: kube-system \ No newline at end of file