diff --git a/deploy/kubernetes/base/controller.yaml b/deploy/kubernetes/base/controller.yaml index 57f198b3b..8994f1931 100644 --- a/deploy/kubernetes/base/controller.yaml +++ b/deploy/kubernetes/base/controller.yaml @@ -1,9 +1,8 @@ -kind: StatefulSet +kind: Deployment apiVersion: apps/v1 metadata: name: csi-gce-pd-controller spec: - serviceName: "csi-gce-pd" replicas: 1 selector: matchLabels: @@ -28,8 +27,16 @@ spec: - "--csi-address=/csi/csi.sock" - "--feature-gates=Topology=true" - "--metrics-address=:22011" + - "--enable-leader-election" + - "--leader-election-type=leases" + - "--leader-election-namespace=$(PDCSI_NAMESPACE)" # - "--run-controller-service=false" # disable the controller service of the CSI driver # - "--run-node-service=false" # disable the node service of the CSI driver + env: + - name: PDCSI_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace volumeMounts: - name: socket-dir mountPath: /csi @@ -39,6 +46,13 @@ spec: - "--v=5" - "--csi-address=/csi/csi.sock" - "--metrics-address=:22012" + - "--leader-election" + - "--leader-election-namespace=$(PDCSI_NAMESPACE)" + env: + - name: PDCSI_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace volumeMounts: - name: socket-dir mountPath: /csi @@ -48,6 +62,13 @@ spec: - "--v=5" - "--csi-address=/csi/csi.sock" - "--metrics-address=:22013" + - "--leader-election" + - "--leader-election-namespace=$(PDCSI_NAMESPACE)" + env: + - name: PDCSI_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace volumeMounts: - name: socket-dir mountPath: /csi @@ -57,6 +78,13 @@ spec: - "--v=5" - "--csi-address=/csi/csi.sock" - "--metrics-address=:22014" + - "--leader-election" + - "--leader-election-namespace=$(PDCSI_NAMESPACE)" + env: + - name: PDCSI_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace volumeMounts: - name: socket-dir mountPath: /csi @@ -82,5 +110,3 @@ spec: - name: cloud-sa-volume secret: secretName: cloud-sa - # This is needed due to https://github.com/kubernetes-sigs/kustomize/issues/504 - volumeClaimTemplates: [] diff --git a/deploy/kubernetes/base/setup-cluster.yaml b/deploy/kubernetes/base/setup-cluster.yaml index 0a70f781e..e92aea43b 100644 --- a/deploy/kubernetes/base/setup-cluster.yaml +++ b/deploy/kubernetes/base/setup-cluster.yaml @@ -231,3 +231,34 @@ roleRef: kind: ClusterRole name: csi-gce-pd-snapshotter-role apiGroup: rbac.authorization.k8s.io + +--- + +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-gce-pd-leaderelection-role + namespace: gce-pd-csi-driver + labels: + k8s-app: gcp-compute-persistent-disk-csi-driver +rules: +- apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create"] + +--- + +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-gce-pd-controller-leaderelection-binding + namespace: gce-pd-csi-driver + labels: + k8s-app: gcp-compute-persistent-disk-csi-driver +subjects: +- kind: ServiceAccount + name: csi-gce-pd-controller-sa +roleRef: + kind: Role + name: csi-gce-pd-leaderelection-role + apiGroup: rbac.authorization.k8s.io diff --git a/deploy/kubernetes/overlays/prow-gke-release-staging-rc/enable-leader-election.yaml b/deploy/kubernetes/overlays/prow-gke-release-staging-rc/enable-leader-election.yaml deleted file mode 100644 index 35c47f056..000000000 --- a/deploy/kubernetes/overlays/prow-gke-release-staging-rc/enable-leader-election.yaml +++ /dev/null @@ -1,74 +0,0 @@ -# for external-provisioner -- op: add - path: /spec/template/spec/containers/0/args/- - value: "--enable-leader-election" - -- op: add - path: /spec/template/spec/containers/0/args/- - value: "--leader-election-type=leases" - -- op: add - path: /spec/template/spec/containers/0/args/- - value: "--leader-election-namespace=$(PDCSI_NAMESPACE)" - -- op: add - path: /spec/template/spec/containers/0/env - value: - - name: PDCSI_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - -# # for external-attacher -- op: add - path: /spec/template/spec/containers/1/args/- - value: "--leader-election" - -- op: add - path: /spec/template/spec/containers/1/args/- - value: "--leader-election-namespace=$(PDCSI_NAMESPACE)" - -- op: add - path: /spec/template/spec/containers/1/env - value: - - name: PDCSI_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - -# # for external-resizer -- op: add - path: /spec/template/spec/containers/2/args/- - value: "--leader-election" - -- op: add - path: /spec/template/spec/containers/2/args/- - value: "--leader-election-namespace=$(PDCSI_NAMESPACE)" - -- op: add - path: /spec/template/spec/containers/2/env - value: - - name: PDCSI_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - -# for external-snapshotter -- op: add - path: /spec/template/spec/containers/3/args/- - value: "--leader-election" - -- op: add - path: /spec/template/spec/containers/3/args/- - value: "--leader-election-namespace=$(PDCSI_NAMESPACE)" - -- op: add - path: /spec/template/spec/containers/3/env - value: - - name: PDCSI_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace diff --git a/deploy/kubernetes/overlays/prow-gke-release-staging-rc/kustomization.yaml b/deploy/kubernetes/overlays/prow-gke-release-staging-rc/kustomization.yaml index 2bc50801c..2841b734e 100644 --- a/deploy/kubernetes/overlays/prow-gke-release-staging-rc/kustomization.yaml +++ b/deploy/kubernetes/overlays/prow-gke-release-staging-rc/kustomization.yaml @@ -21,20 +21,3 @@ images: - name: gke.gcr.io/csi-snapshotter newName: gcr.io/gke-release-staging/csi-snapshotter newTag: "v2.1.1-gke.0" - -resources: -- leader-election-rbac.yaml - -patchesJson6902: -- target: - group: apps - version: v1 - kind: StatefulSet - name: csi-gce-pd-controller - path: enable-leader-election.yaml -- target: - group: apps - version: v1 - kind: StatefulSet - name: csi-gce-pd-controller - path: statefulset-to-deployment.yaml diff --git a/deploy/kubernetes/overlays/prow-gke-release-staging-rc/leader-election-rbac.yaml b/deploy/kubernetes/overlays/prow-gke-release-staging-rc/leader-election-rbac.yaml deleted file mode 100644 index 31e474913..000000000 --- a/deploy/kubernetes/overlays/prow-gke-release-staging-rc/leader-election-rbac.yaml +++ /dev/null @@ -1,26 +0,0 @@ -kind: Role -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-gce-pd-leaderelection-role - namespace: gce-pd-csi-driver - labels: - k8s-app: gcp-compute-persistent-disk-csi-driver -rules: -- apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- -kind: RoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-gce-pd-controller-leaderelection-binding - namespace: gce-pd-csi-driver - labels: - k8s-app: gcp-compute-persistent-disk-csi-driver -subjects: -- kind: ServiceAccount - name: csi-gce-pd-controller-sa -roleRef: - kind: Role - name: csi-gce-pd-leaderelection-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/kubernetes/overlays/prow-gke-release-staging-rc/statefulset-to-deployment.yaml b/deploy/kubernetes/overlays/prow-gke-release-staging-rc/statefulset-to-deployment.yaml deleted file mode 100644 index 2800387f8..000000000 --- a/deploy/kubernetes/overlays/prow-gke-release-staging-rc/statefulset-to-deployment.yaml +++ /dev/null @@ -1,7 +0,0 @@ -- op: remove - path: "/spec/serviceName" -- op: remove - path: "/spec/volumeClaimTemplates" -- op: replace - path: /kind - value: Deployment