diff --git a/deploy/kubernetes/base/setup-cluster.yaml b/deploy/kubernetes/base/controller/cluster_setup.yaml similarity index 88% rename from deploy/kubernetes/base/setup-cluster.yaml rename to deploy/kubernetes/base/controller/cluster_setup.yaml index e92aea43b..8f8953665 100644 --- a/deploy/kubernetes/base/setup-cluster.yaml +++ b/deploy/kubernetes/base/controller/cluster_setup.yaml @@ -147,33 +147,6 @@ roleRef: apiGroup: rbac.authorization.k8s.io --- -apiVersion: policy/v1beta1 -kind: PodSecurityPolicy -metadata: - name: csi-gce-pd-node-psp -spec: - seLinux: - rule: RunAsAny - supplementalGroups: - rule: RunAsAny - runAsUser: - rule: RunAsAny - fsGroup: - rule: RunAsAny - privileged: true - volumes: - - '*' - hostNetwork: true - allowedHostPaths: - - pathPrefix: "/var/lib/kubelet/plugins_registry/" - - pathPrefix: "/var/lib/kubelet" - - pathPrefix: "/var/lib/kubelet/plugins/pd.csi.storage.gke.io/" - - pathPrefix: "/dev" - - pathPrefix: "/etc/udev" - - pathPrefix: "/lib/udev" - - pathPrefix: "/run/udev" - - pathPrefix: "/sys" ---- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 @@ -187,6 +160,18 @@ rules: - csi-gce-pd-node-psp --- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-gce-pd-node-deploy-win +rules: + - apiGroups: ['policy'] + resources: ['podsecuritypolicies'] + verbs: ['use'] + resourceNames: + - csi-gce-pd-node-psp-win +--- + apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: @@ -196,9 +181,35 @@ roleRef: kind: ClusterRole name: csi-gce-pd-node-deploy subjects: +- kind: ServiceAccount + name: csi-gce-pd-node-sa +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: csi-gce-pd-node-win +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: csi-gce-pd-node-deploy-win +subjects: - kind: ServiceAccount name: csi-gce-pd-node-sa +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: csi-gce-pd-controller +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: csi-gce-pd-node-deploy +subjects: +- kind: ServiceAccount + name: csi-gce-pd-controller-sa + --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole @@ -231,7 +242,6 @@ roleRef: kind: ClusterRole name: csi-gce-pd-snapshotter-role apiGroup: rbac.authorization.k8s.io - --- kind: Role @@ -262,3 +272,4 @@ roleRef: kind: Role name: csi-gce-pd-leaderelection-role apiGroup: rbac.authorization.k8s.io + diff --git a/deploy/kubernetes/base/controller.yaml b/deploy/kubernetes/base/controller/controller.yaml similarity index 98% rename from deploy/kubernetes/base/controller.yaml rename to deploy/kubernetes/base/controller/controller.yaml index 8994f1931..49f5382c4 100644 --- a/deploy/kubernetes/base/controller.yaml +++ b/deploy/kubernetes/base/controller/controller.yaml @@ -17,6 +17,8 @@ spec: # this requirement when issue is resolved and before any exposure of # metrics ports hostNetwork: true + nodeSelector: + kubernetes.io/os: linux serviceAccountName: csi-gce-pd-controller-sa priorityClassName: csi-gce-pd-controller containers: diff --git a/deploy/kubernetes/base/controller/kustomization.yaml b/deploy/kubernetes/base/controller/kustomization.yaml new file mode 100644 index 000000000..9361cfced --- /dev/null +++ b/deploy/kubernetes/base/controller/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: + gce-pd-csi-driver +resources: +- cluster_setup.yaml +- controller.yaml diff --git a/deploy/kubernetes/base/kustomization.yaml b/deploy/kubernetes/base/kustomization.yaml index 6d665c1c2..be15bd469 100644 --- a/deploy/kubernetes/base/kustomization.yaml +++ b/deploy/kubernetes/base/kustomization.yaml @@ -1,8 +1,8 @@ -commonLabels: - k8s-app: gcp-compute-persistent-disk-csi-driver +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization namespace: gce-pd-csi-driver resources: -- node.yaml -- controller.yaml -- setup-cluster.yaml +- controller +- node_linux +- node_windows diff --git a/deploy/kubernetes/base/node_linux/kustomization.yaml b/deploy/kubernetes/base/node_linux/kustomization.yaml new file mode 100644 index 000000000..661921d55 --- /dev/null +++ b/deploy/kubernetes/base/node_linux/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: + gce-pd-csi-driver +resources: +- node.yaml +- psp.yaml diff --git a/deploy/kubernetes/base/node.yaml b/deploy/kubernetes/base/node_linux/node.yaml similarity index 94% rename from deploy/kubernetes/base/node.yaml rename to deploy/kubernetes/base/node_linux/node.yaml index 07397cebe..2630d2aeb 100644 --- a/deploy/kubernetes/base/node.yaml +++ b/deploy/kubernetes/base/node_linux/node.yaml @@ -19,6 +19,8 @@ spec: hostNetwork: true priorityClassName: csi-gce-pd-node serviceAccountName: csi-gce-pd-node-sa + nodeSelector: + kubernetes.io/os: linux containers: - name: csi-driver-registrar image: gke.gcr.io/csi-node-driver-registrar @@ -26,10 +28,6 @@ spec: - "--v=5" - "--csi-address=/csi/csi.sock" - "--kubelet-registration-path=/var/lib/kubelet/plugins/pd.csi.storage.gke.io/csi.sock" - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/pd.csi.storage.gke.io /registration/pd.csi.storage.gke.io-reg.sock"] env: - name: KUBE_NODE_NAME valueFrom: @@ -41,14 +39,14 @@ spec: - name: registration-dir mountPath: /registration - name: gce-pd-driver - securityContext: - privileged: true # Don't change base image without changing pdImagePlaceholder in # test/k8s-integration/main.go image: gke.gcr.io/gcp-compute-persistent-disk-csi-driver args: - "--v=5" - "--endpoint=unix:/csi/csi.sock" + securityContext: + privileged: true volumeMounts: - name: kubelet-dir mountPath: /var/lib/kubelet @@ -67,8 +65,6 @@ spec: mountPath: /run/udev - name: sys mountPath: /sys - nodeSelector: - kubernetes.io/os: linux volumes: - name: registration-dir hostPath: diff --git a/deploy/kubernetes/base/node_linux/psp.yaml b/deploy/kubernetes/base/node_linux/psp.yaml new file mode 100644 index 000000000..079b28226 --- /dev/null +++ b/deploy/kubernetes/base/node_linux/psp.yaml @@ -0,0 +1,27 @@ +apiVersion: policy/v1beta1 +kind: PodSecurityPolicy +metadata: + name: csi-gce-pd-node-psp +spec: + seLinux: + rule: RunAsAny + supplementalGroups: + rule: RunAsAny + runAsUser: + rule: RunAsAny + fsGroup: + rule: RunAsAny + privileged: true + volumes: + - '*' + hostNetwork: true + allowedHostPaths: + - pathPrefix: "/var/lib/kubelet/plugins_registry/" + - pathPrefix: "/var/lib/kubelet" + - pathPrefix: "/var/lib/kubelet/plugins/pd.csi.storage.gke.io/" + - pathPrefix: "/dev" + - pathPrefix: "/etc/udev" + - pathPrefix: "/lib/udev" + - pathPrefix: "/run/udev" + - pathPrefix: "/sys" + diff --git a/deploy/kubernetes/base/node_windows/kustomization.yaml b/deploy/kubernetes/base/node_windows/kustomization.yaml new file mode 100644 index 000000000..661921d55 --- /dev/null +++ b/deploy/kubernetes/base/node_windows/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: + gce-pd-csi-driver +resources: +- node.yaml +- psp.yaml diff --git a/deploy/kubernetes/base/node_windows/node.yaml b/deploy/kubernetes/base/node_windows/node.yaml new file mode 100644 index 000000000..439161326 --- /dev/null +++ b/deploy/kubernetes/base/node_windows/node.yaml @@ -0,0 +1,85 @@ +#TODO(#40): Force DaemonSet to not run on master. +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: csi-gce-pd-node-win +spec: + selector: + matchLabels: + app: gcp-compute-persistent-disk-csi-driver-win + template: + metadata: + labels: + app: gcp-compute-persistent-disk-csi-driver-win + spec: + # Host network must be used for interaction with Workload Identity in GKE + # since it replaces GCE Metadata Server with GKE Metadata Server. Remove + # this requirement when issue is resolved and before any exposure of + # metrics ports. But hostNetwork is not working for Windows, might be an issue + # when deploying on GKE Windows node. + # hostNetwork: true + priorityClassName: csi-gce-pd-node + serviceAccountName: csi-gce-pd-node-sa + nodeSelector: + kubernetes.io/os: windows + containers: + - name: csi-driver-registrar + image: gke.gcr.io/k8s-staging-csi/csi-node-driver-registrar-win + args: + - --v=5 + - --csi-address=unix://C:\\csi\\csi.sock + - --kubelet-registration-path=C:\\var\\lib\\kubelet\\plugins\\pd.csi.storage.gke.io\\csi.sock + env: + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + volumeMounts: + - name: plugin-dir + mountPath: /csi + - name: registration-dir + mountPath: /registration + - name: gce-pd-driver + # Don't change base image without changing pdImagePlaceholder in + # test/k8s-integration/main.go + image: gke.gcr.io/gcp-compute-persistent-disk-csi-driver-win + args: + - "--v=5" + - "--endpoint=unix:/csi/csi.sock" + volumeMounts: + - name: kubelet-dir + mountPath: C:\var\lib\kubelet + mountPropagation: "None" + - name: plugin-dir + mountPath: C:\csi + - name: csi-proxy-disk-pipe + mountPath: \\.\pipe\csi-proxy-disk-v1alpha1 + - name: csi-proxy-volume-pipe + mountPath: \\.\pipe\csi-proxy-volume-v1alpha1 + - name: csi-proxy-filesystem-pipe + mountPath: \\.\pipe\csi-proxy-filesystem-v1alpha1 + volumes: + - name: csi-proxy-disk-pipe + hostPath: + path: \\.\pipe\csi-proxy-disk-v1alpha1 + type: "" + - name: csi-proxy-volume-pipe + hostPath: + path: \\.\pipe\csi-proxy-volume-v1alpha1 + type: "" + - name: csi-proxy-filesystem-pipe + hostPath: + path: \\.\pipe\csi-proxy-filesystem-v1alpha1 + type: "" + - name: registration-dir + hostPath: + path: \var\lib\kubelet\plugins_registry + type: Directory + - name: kubelet-dir + hostPath: + path: \var\lib\kubelet + type: Directory + - name: plugin-dir + hostPath: + path: \var\lib\kubelet\plugins\pd.csi.storage.gke.io + type: DirectoryOrCreate diff --git a/deploy/kubernetes/base/node_windows/psp.yaml b/deploy/kubernetes/base/node_windows/psp.yaml new file mode 100644 index 000000000..39e34dd77 --- /dev/null +++ b/deploy/kubernetes/base/node_windows/psp.yaml @@ -0,0 +1,24 @@ +apiVersion: policy/v1beta1 +kind: PodSecurityPolicy +metadata: + name: csi-gce-pd-node-psp-win +spec: + supplementalGroups: + rule: RunAsAny + runAsUser: + rule: RunAsAny + fsGroup: + rule: RunAsAny + seLinux: + rule: RunAsAny + volumes: + - '*' + hostNetwork: true + allowedHostPaths: + - pathPrefix: \var\lib\kubelet + - pathPrefix: \var\lib\kubelet\plugins_registry + - pathPrefix: \var\lib\kubelet\plugins\pd.csi.storage.gke.io + - pathPrefix: \\.\pipe\csi-proxy-disk-v1alpha1 + - pathPrefix: \\.\pipe\csi-proxy-volume-v1alpha1 + - pathPrefix: \\.\pipe\csi-proxy-filesystem-v1alpha1 + diff --git a/deploy/kubernetes/deploy-driver.sh b/deploy/kubernetes/deploy-driver.sh index d9e0143d5..a671a4f91 100755 --- a/deploy/kubernetes/deploy-driver.sh +++ b/deploy/kubernetes/deploy-driver.sh @@ -97,4 +97,3 @@ ${KUBECTL} version readonly tmp_spec=/tmp/gcp-compute-persistent-disk-csi-driver-specs-generated.yaml ${KUSTOMIZE_PATH} build ${PKGDIR}/deploy/kubernetes/overlays/${DEPLOY_VERSION} | tee $tmp_spec ${KUBECTL} apply -v="${VERBOSITY}" -f $tmp_spec - diff --git a/deploy/kubernetes/images/alpha/image.yaml b/deploy/kubernetes/images/alpha/image.yaml new file mode 100644 index 000000000..a339045e5 --- /dev/null +++ b/deploy/kubernetes/images/alpha/image.yaml @@ -0,0 +1,18 @@ +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-gcepd-driver-alpha-win +imageTag: + name: gke.gcr.io/gcp-compute-persistent-disk-csi-driver-win + newName: gcr.io/jing-k8s-dev/gce-pd-windows-2019 + newTag: "0.2.0" +--- + +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-node-registrar-win +imageTag: + name: gke.gcr.io/k8s-staging-csi/csi-node-driver-registrar-win + newName: gcr.io/k8s-staging-csi/csi-node-driver-registrar + newTag: "amd64-windows-v20200428-v1.3.0-26-g510710d5" diff --git a/deploy/kubernetes/images/alpha/kustomization.yaml b/deploy/kubernetes/images/alpha/kustomization.yaml new file mode 100644 index 000000000..0d25d1b12 --- /dev/null +++ b/deploy/kubernetes/images/alpha/kustomization.yaml @@ -0,0 +1,5 @@ +namespace: + gce-pd-csi-driver +resources: +- ../stable/ +- image.yaml diff --git a/deploy/kubernetes/images/dev/image.yaml b/deploy/kubernetes/images/dev/image.yaml new file mode 100644 index 000000000..b5efff682 --- /dev/null +++ b/deploy/kubernetes/images/dev/image.yaml @@ -0,0 +1,8 @@ +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-gcepd-driver-dev +imageTag: + name: gke.gcr.io/gcp-compute-persistent-disk-csi-driver + newName: gcr.io/dyzz-csi-staging/csi/gce-pd-driver + newTag: "latest" diff --git a/deploy/kubernetes/images/dev/kustomization.yaml b/deploy/kubernetes/images/dev/kustomization.yaml new file mode 100644 index 000000000..96fe4b685 --- /dev/null +++ b/deploy/kubernetes/images/dev/kustomization.yaml @@ -0,0 +1,5 @@ +namespace: + gce-pd-csi-driver +resources: +- ../alpha/ +- image.yaml diff --git a/deploy/kubernetes/images/prow-gke-release-staging-head/image.yaml b/deploy/kubernetes/images/prow-gke-release-staging-head/image.yaml new file mode 100644 index 000000000..bf317a198 --- /dev/null +++ b/deploy/kubernetes/images/prow-gke-release-staging-head/image.yaml @@ -0,0 +1,57 @@ +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-gcepd-driver-prow-head +imageTag: + name: gke.gcr.io/gcp-compute-persistent-disk-csi-driver + newName: gcr.io/gke-release-staging/gcp-compute-persistent-disk-csi-driver + newTag: "latest" +--- +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-provisioner-prow-head +imageTag: + name: gke.gcr.io/csi-provisioner + newName: quay.io/k8scsi/csi-provisioner + newTag: "canary" + +--- +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-attacher-prow-head +imageTag: + name: gke.gcr.io/csi-attacher + newName: quay.io/k8scsi/csi-attacher + newTag: "canary" +--- + +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-nodo-registrar-prow-head +imageTag: + name: gke.gcr.io/csi-node-driver-registrar + newName: quay.io/k8scsi/csi-node-driver-registrar + newTag: "canary" +--- + +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-resizer-prow-head +imageTag: + name: gke.gcr.io/csi-resizer + newName: quay.io/k8scsi/csi-resizer + newTag: "canary" +--- + +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-snapshotter-prow-head +imageTag: + name: gke.gcr.io/csi-snapshotter + newName: quay.io/k8scsi/csi-snapshotter + newTag: "canary" diff --git a/deploy/kubernetes/images/prow-gke-release-staging-head/kustomization.yaml b/deploy/kubernetes/images/prow-gke-release-staging-head/kustomization.yaml new file mode 100644 index 000000000..f16988f1b --- /dev/null +++ b/deploy/kubernetes/images/prow-gke-release-staging-head/kustomization.yaml @@ -0,0 +1,4 @@ +namespace: + gce-pd-csi-driver +resources: +- image.yaml diff --git a/deploy/kubernetes/images/prow-gke-release-staging-rc/image.yaml b/deploy/kubernetes/images/prow-gke-release-staging-rc/image.yaml new file mode 100644 index 000000000..dea0477ac --- /dev/null +++ b/deploy/kubernetes/images/prow-gke-release-staging-rc/image.yaml @@ -0,0 +1,60 @@ +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-provisioner-prow-rc +imageTag: + name: gke.gcr.io/csi-provisioner + newName: gcr.io/gke-release-staging/csi-provisioner + newTag: "v1.6.0-gke.0" +--- + +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-attacher-prow-rc +imageTag: + name: gke.gcr.io/csi-attacher + newName: gcr.io/gke-release-staging/csi-attacher + newTag: "v2.2.0-gke.0" +--- + +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-resize-prow-rc +imageTag: + name: gke.gcr.io/csi-resizer + newName: gcr.io/gke-release-staging/csi-resizer + newTag: "v0.5.0-gke.0" +--- + +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-gce-driver-prow-rc +imageTag: + name: gke.gcr.io/gcp-compute-persistent-disk-csi-driver + newName: gcr.io/gke-release-staging/gcp-compute-persistent-disk-csi-driver + newTag: "v0.7.0-gke.0" +--- + +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-node-registrar-prow-rc +imageTag: + name: gke.gcr.io/csi-node-driver-registrar + newName: gcr.io/gke-release-staging/csi-node-driver-registrar + newTag: "v1.3.0-gke.0" +--- + +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-snapshotter-prow-head +imageTag: + name: gke.gcr.io/csi-snapshotter + newName: gcr.io/gke-release-staging/csi-snapshotter + newTag: "v2.1.1-gke.0" +--- + diff --git a/deploy/kubernetes/images/prow-gke-release-staging-rc/kustomization.yaml b/deploy/kubernetes/images/prow-gke-release-staging-rc/kustomization.yaml new file mode 100644 index 000000000..f16988f1b --- /dev/null +++ b/deploy/kubernetes/images/prow-gke-release-staging-rc/kustomization.yaml @@ -0,0 +1,4 @@ +namespace: + gce-pd-csi-driver +resources: +- image.yaml diff --git a/deploy/kubernetes/images/stable/image.yaml b/deploy/kubernetes/images/stable/image.yaml new file mode 100644 index 000000000..6de4f9dd2 --- /dev/null +++ b/deploy/kubernetes/images/stable/image.yaml @@ -0,0 +1,55 @@ +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-provisioner +imageTag: + name: gke.gcr.io/csi-provisioner + newTag: "v1.6.0-gke.0" + +--- +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-attacher +imageTag: + name: gke.gcr.io/csi-attacher + newTag: "v2.2.0-gke.0" +--- + +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-resizer +imageTag: + name: gke.gcr.io/csi-resizer + newTag: "v0.5.0-gke.0" +--- + +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-snapshotter +imageTag: + name: gke.gcr.io/csi-snapshotter + newTag: "v2.1.1-gke.0" +--- + +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-csi-node-registrar +imageTag: + name: gke.gcr.io/csi-node-driver-registrar + newTag: "v1.3.0-gke.0" +--- + +apiVersion: builtin +kind: ImageTagTransformer +metadata: + name: imagetag-gcepd-driver +imageTag: + name: gke.gcr.io/gcp-compute-persistent-disk-csi-driver + # Don't change stable image without changing pdImagePlaceholder in + # test/k8s-integration/main.go + newTag: "v0.7.0-gke.0" +--- diff --git a/deploy/kubernetes/images/stable/kustomization.yaml b/deploy/kubernetes/images/stable/kustomization.yaml new file mode 100644 index 000000000..f16988f1b --- /dev/null +++ b/deploy/kubernetes/images/stable/kustomization.yaml @@ -0,0 +1,4 @@ +namespace: + gce-pd-csi-driver +resources: +- image.yaml diff --git a/deploy/kubernetes/install-kustomize.sh b/deploy/kubernetes/install-kustomize.sh index 34348b4f3..46ac78e38 100755 --- a/deploy/kubernetes/install-kustomize.sh +++ b/deploy/kubernetes/install-kustomize.sh @@ -9,30 +9,13 @@ set -o errexit readonly INSTALL_DIR="${GOPATH}/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/bin" readonly KUSTOMIZE_PATH="${INSTALL_DIR}/kustomize" -readonly KUSTOMIZE_VERSION="2.0.3" -readonly VERSION_REGEX="KustomizeVersion:([0-9]\.[0-9]\.[0-9])" -if [ -f "${KUSTOMIZE_PATH}" ]; then - if [[ $(${KUSTOMIZE_PATH} version) =~ ${VERSION_REGEX} ]]; then - if [ "${KUSTOMIZE_VERSION}" != "${BASH_REMATCH[1]}" ]; then - echo "Existing Kustomize version in ${KUSTOMIZE_PATH} v${BASH_REMATCH[1]}, need v${KUSTOMIZE_VERSION}. Removing existing binary." - rm "${KUSTOMIZE_PATH}" - fi - fi +if [ ! -f "${INSTALL_DIR}" ]; then + mkdir -p ${INSTALL_DIR} fi - -if [ ! -f "${KUSTOMIZE_PATH}" ]; then - if [ ! -f "${INSTALL_DIR}" ]; then - mkdir -p ${INSTALL_DIR} - fi - - echo "Installing Kustomize v${KUSTOMIZE_VERSION} in ${KUSTOMIZE_PATH}" - opsys=linux # or darwin, or windows - curl -s https://api.github.com/repos/kubernetes-sigs/kustomize/releases/tags/v${KUSTOMIZE_VERSION} |\ - grep browser_download |\ - grep $opsys |\ - cut -d '"' -f 4 |\ - xargs curl -O -L - mv kustomize_*_${opsys}_amd64 ${KUSTOMIZE_PATH} - chmod u+x ${KUSTOMIZE_PATH} +if [ -f "kustomize" ]; then + rm kustomize fi +echo "installing latest version of kustomize" +curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash +mv kustomize ${INSTALL_DIR} diff --git a/deploy/kubernetes/overlays/alpha/kustomization.yaml b/deploy/kubernetes/overlays/alpha/kustomization.yaml index 06cb34b25..3e4e4a3a7 100644 --- a/deploy/kubernetes/overlays/alpha/kustomization.yaml +++ b/deploy/kubernetes/overlays/alpha/kustomization.yaml @@ -1,5 +1,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -bases: -- ../stable - +namespace: + gce-pd-csi-driver +resources: +- ../../base/ +transformers: +- ../../images/alpha diff --git a/deploy/kubernetes/overlays/dev/controller_always_pull.yaml b/deploy/kubernetes/overlays/dev/controller_always_pull.yaml index 78a964a37..77a0b8f0d 100644 --- a/deploy/kubernetes/overlays/dev/controller_always_pull.yaml +++ b/deploy/kubernetes/overlays/dev/controller_always_pull.yaml @@ -1,4 +1,4 @@ -kind: StatefulSet +kind: Deployment apiVersion: apps/v1 metadata: name: csi-gce-pd-controller diff --git a/deploy/kubernetes/overlays/dev/kustomization.yaml b/deploy/kubernetes/overlays/dev/kustomization.yaml index 64eb081d5..8d2470a14 100644 --- a/deploy/kubernetes/overlays/dev/kustomization.yaml +++ b/deploy/kubernetes/overlays/dev/kustomization.yaml @@ -1,13 +1,12 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -bases: +resources: - ../alpha patches: - controller_always_pull.yaml - node_always_pull.yaml -images: -# Replace this with your private image names and tags -- name: gke.gcr.io/gcp-compute-persistent-disk-csi-driver - newName: gcr.io/dyzz-csi-staging/csi/gce-pd-driver - newTag: "latest" - \ No newline at end of file +namespace: + gce-pd-csi-driver +transformers: +- ../../images/dev + diff --git a/deploy/kubernetes/overlays/prow-gke-release-staging-head/kustomization.yaml b/deploy/kubernetes/overlays/prow-gke-release-staging-head/kustomization.yaml index a882ae3d8..3608a30f8 100644 --- a/deploy/kubernetes/overlays/prow-gke-release-staging-head/kustomization.yaml +++ b/deploy/kubernetes/overlays/prow-gke-release-staging-head/kustomization.yaml @@ -1,23 +1,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -bases: -- ../../base -images: -- name: gke.gcr.io/gcp-compute-persistent-disk-csi-driver - newName: gcr.io/gke-release-staging/gcp-compute-persistent-disk-csi-driver - newTag: "latest" -- name: gke.gcr.io/csi-provisioner - newName: quay.io/k8scsi/csi-provisioner - newTag: "canary" -- name: gke.gcr.io/csi-attacher - newName: quay.io/k8scsi/csi-attacher - newTag: "canary" -- name: gke.gcr.io/csi-node-driver-registrar - newName: quay.io/k8scsi/csi-node-driver-registrar - newTag: "canary" -- name: gke.gcr.io/csi-resizer - newName: quay.io/k8scsi/csi-resizer - newTag: "canary" -- name: gke.gcr.io/csi-snapshotter - newName: quay.io/k8scsi/csi-snapshotter - newTag: "canary" +resources: +- ../stable +transformers: +- ../../images/prow-gke-release-staging-head 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 2841b734e..644186669 100644 --- a/deploy/kubernetes/overlays/prow-gke-release-staging-rc/kustomization.yaml +++ b/deploy/kubernetes/overlays/prow-gke-release-staging-rc/kustomization.yaml @@ -1,23 +1,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -bases: -- ../../base -images: -- name: gke.gcr.io/gcp-compute-persistent-disk-csi-driver - newName: gcr.io/gke-release-staging/gcp-compute-persistent-disk-csi-driver - newTag: "v0.7.0-gke.0" -- name: gke.gcr.io/csi-provisioner - newName: gcr.io/gke-release-staging/csi-provisioner - newTag: "v1.6.0-gke.0" -- name: gke.gcr.io/csi-attacher - newName: gcr.io/gke-release-staging/csi-attacher - newTag: "v2.2.0-gke.0" -- name: gke.gcr.io/csi-node-driver-registrar - newName: gcr.io/gke-release-staging/csi-node-driver-registrar - newTag: "v1.3.0-gke.0" -- name: gke.gcr.io/csi-resizer - newName: gcr.io/gke-release-staging/csi-resizer - newTag: "v0.5.0-gke.0" -- name: gke.gcr.io/csi-snapshotter - newName: gcr.io/gke-release-staging/csi-snapshotter - newTag: "v2.1.1-gke.0" +resources: +- ../stable +transformers: +- ../../images/prow-gke-release-staging-rc diff --git a/deploy/kubernetes/overlays/stable/kustomization.yaml b/deploy/kubernetes/overlays/stable/kustomization.yaml index b02b39c95..7adc4e4be 100644 --- a/deploy/kubernetes/overlays/stable/kustomization.yaml +++ b/deploy/kubernetes/overlays/stable/kustomization.yaml @@ -1,25 +1,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -bases: -- ../../base -images: -- name: gke.gcr.io/gcp-compute-persistent-disk-csi-driver - # Don't change stable image without changing pdImagePlaceholder in - # test/k8s-integration/main.go - newName: gke.gcr.io/gcp-compute-persistent-disk-csi-driver - newTag: "v0.7.0-gke.0" -- name: gke.gcr.io/csi-provisioner - newName: gke.gcr.io/csi-provisioner - newTag: "v1.6.0-gke.0" -- name: gke.gcr.io/csi-attacher - newName: gke.gcr.io/csi-attacher - newTag: "v2.2.0-gke.0" -- name: gke.gcr.io/csi-node-driver-registrar - newName: gke.gcr.io/csi-node-driver-registrar - newTag: "v1.3.0-gke.0" -- name: gke.gcr.io/csi-resizer - newName: gke.gcr.io/csi-resizer - newTag: "v0.5.0-gke.0" -- name: gke.gcr.io/csi-snapshotter - newName: gke.gcr.io/csi-snapshotter - newTag: "v2.1.1-gke.0" +namespace: + gce-pd-csi-driver +resources: +- ../../base/controller +- ../../base/node_linux +transformers: +- ../../images/stable