Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release-3.3 branch images unavailable, GCR repo deleted while master branch uses different repos #3054

Closed
devopsInterviews opened this issue Sep 17, 2024 · 25 comments
Labels
kind/bug Categorizes issue or PR as related to a bug.

Comments

@devopsInterviews
Copy link

/kind bug

What happened:

On the release-3.3 branch, the images use: image: gcr.io/cloud-provider-vsphere/csi/release/syncer:v3.3.1

On the master branch, the images have changed.

When trying to pull from the release branch, the repo shows as deleted and the image cannot be downloaded.

What you expected to happen:

The images should be available to pull from the release branch.

How to reproduce it (as minimally and precisely as possible):

Attempt to pull the release branch images.

Anything else we need to know?:

How is it possible for the release version to not work while the master has different repos?

Environment:

csi-vsphere version: v3.3.1
Kubernetes version: 1.30.4
vSphere version: 7.3
OS (e.g. from /etc/os-release): Ubuntu 24.04

@k8s-ci-robot k8s-ci-robot added the kind/bug Categorizes issue or PR as related to a bug. label Sep 17, 2024
@embik
Copy link
Member

embik commented Sep 17, 2024

Related/same issue: #3053

@devopsInterviews
Copy link
Author

Thanks @embik, I'll wait for an update

@devopsInterviews
Copy link
Author

@embik Is there any update?
Are you part of the vmware team? Or from a different project?

@embik
Copy link
Member

embik commented Sep 18, 2024

@devopsInterviews hey, not affiliated, sorry for the confusion. I just wanted to create a reference to the other issue for visibility. We're also "just" consumers of the CSI driver, we don't have more information than what's on Slack / these two GitHub issues.

@devopsInterviews
Copy link
Author

Thanks @embik
Do you know if someone from the official maintainers is aware of this problem?
By the way, I'll be glad to hear how did you manage to solve it from your side.

@embik
Copy link
Member

embik commented Sep 18, 2024

@devopsInterviews I don't know if anyone is aware, sorry. We solved this problem for our users by publishing self-built versions of the images: #3053 (comment)

@devopsInterviews
Copy link
Author

Thanks for the quick responses @embik !
One last question, how were you able to mirror the images if the repo has been deleted (or you had those images on your local endpoints?).
Do you plan to upload more tags to there?

I saw on the master branch that there is this location now:
us-central1-docker.pkg.dev/k8s-staging-images/csi-vsphere/ci/driver:latest

But it only consists the lastest if this somehow helps you (I don't know how there is a difference between the master branch and the release tags and who maintains it. Even more weird why no one says anything about this).

@embik
Copy link
Member

embik commented Sep 18, 2024

As mentioned on that comment, these images are self-built, i.e. we checked out release tags from code and built the images.

@bork91
Copy link

bork91 commented Sep 18, 2024

#3053 (comment)

@devopsInterviews
Copy link
Author

Thanks @bork91,
Unfortunately I need this for new clusters.
Do you happen to know the maintainers of this repo?

@devopsInterviews
Copy link
Author

@divyenpatel
It looks like you did some related commits, do you know to tell what happened to the legacy images?
And what can we do to solve it?

@aditya-tanwar
Copy link

unfortunately , even us-central1-docker.pkg.dev/k8s-staging-images/csi-vsphere/ci/driver:latest is showing not found while deploying

@devopsInterviews
Copy link
Author

@aditya-tanwar It seems you are right..
So there is no official location for the images now.
Does anyone knows something?? We can not deploy new clusters!!

@aditya-tanwar
Copy link

aditya-tanwar commented Sep 19, 2024

@aditya-tanwar It seems you are right..

So there is no official location for the images now.

Does anyone knows something?? We can not deploy new clusters!!

@devopsInterviews
What i did is basically updated the images showing errors with the mirrors located in quay.io

Refer to this -> #3053 (comment)

Here you fill find mirror links for the images that are not accessible for me syncer and driver containers were causing problem and i updated the images

As of now what you can do is from the repo pick up the vanilla manifest and update the syncer and driver images with quay.io ones as mentioned in the above link that way you will have a running deployment , till the time we wait for verified images from the owner/team

@Darth-Weider
Copy link

unfortunately , even us-central1-docker.pkg.dev/k8s-staging-images/csi-vsphere/ci/driver:latest is showing not found while deploying

I think you need a GCP account to access the image.

@divyenpatel
Copy link
Member

release-3.3 Images are available at

registry.k8s.io/csi-vsphere/driver:v3.3.1
registry.k8s.io/csi-vsphere/syncer:v3.3.1

registry.k8s.io/csi-vsphere/driver:v3.3.0
registry.k8s.io/csi-vsphere/syncer:v3.3.0

@slowtacocar
Copy link

@divyenpatel Thank you so much. How hard would it be to get a couple more minor versions on here? 3.3 and 3.2 are broken on my cluster due to #3000 (been open for a month or so...). Happy to contribute to the effort if that would help.

@devopsInterviews
Copy link
Author

@divyenpatel, What happened to the older repo?
Will the next releases use this repo? Because currently there is no manifest that is using those images (manfiests/vanila)
It will be nice to understand the changes.

@Sispheor
Copy link

Here is an updated manifest for the v3.3.0 to use until the realese is here:

apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata:
  name: csi.vsphere.vmware.com
spec:
  attachRequired: true
  podInfoOnMount: false
---
kind: ServiceAccount
apiVersion: v1
metadata:
  name: vsphere-csi-controller
  namespace: vmware-system-csi
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: vsphere-csi-controller-role
rules:
  - apiGroups: [""]
    resources: ["nodes", "pods"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["configmaps"]
    verbs: ["get", "list", "watch", "create"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs: ["get", "list", "watch", "update"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims/status"]
    verbs: ["patch"]
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch", "create", "update", "delete", "patch"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["get", "list", "watch", "create", "update", "patch"]
  - apiGroups: ["coordination.k8s.io"]
    resources: ["leases"]
    verbs: ["get", "watch", "list", "delete", "update", "create"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses", "csinodes"]
    verbs: ["get", "list", "watch"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["volumeattachments"]
    verbs: ["get", "list", "watch", "patch"]
  - apiGroups: ["cns.vmware.com"]
    resources: ["triggercsifullsyncs"]
    verbs: ["create", "get", "update", "watch", "list"]
  - apiGroups: ["cns.vmware.com"]
    resources: ["cnsvspherevolumemigrations"]
    verbs: ["create", "get", "list", "watch", "update", "delete"]
  - apiGroups: ["cns.vmware.com"]
    resources: ["cnsvolumeinfoes"]
    verbs: ["create", "get", "list", "watch", "delete"]
  - apiGroups: ["apiextensions.k8s.io"]
    resources: ["customresourcedefinitions"]
    verbs: ["get", "create", "update"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["volumeattachments/status"]
    verbs: ["patch"]
  - apiGroups: ["cns.vmware.com"]
    resources: ["cnsvolumeoperationrequests"]
    verbs: ["create", "get", "list", "update", "delete"]
  - apiGroups: [ "snapshot.storage.k8s.io" ]
    resources: [ "volumesnapshots" ]
    verbs: [ "get", "list" ]
  - apiGroups: [ "snapshot.storage.k8s.io" ]
    resources: [ "volumesnapshotclasses" ]
    verbs: [ "watch", "get", "list" ]
  - apiGroups: [ "snapshot.storage.k8s.io" ]
    resources: [ "volumesnapshotcontents" ]
    verbs: [ "create", "get", "list", "watch", "update", "delete", "patch"]
  - apiGroups: [ "snapshot.storage.k8s.io" ]
    resources: [ "volumesnapshotcontents/status" ]
    verbs: [ "update", "patch" ]
  - apiGroups: [ "cns.vmware.com" ]
    resources: [ "csinodetopologies" ]
    verbs: ["get", "update", "watch", "list"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: vsphere-csi-controller-binding
subjects:
  - kind: ServiceAccount
    name: vsphere-csi-controller
    namespace: vmware-system-csi
roleRef:
  kind: ClusterRole
  name: vsphere-csi-controller-role
  apiGroup: rbac.authorization.k8s.io
---
kind: ServiceAccount
apiVersion: v1
metadata:
  name: vsphere-csi-node
  namespace: vmware-system-csi
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: vsphere-csi-node-cluster-role
rules:
  - apiGroups: ["cns.vmware.com"]
    resources: ["csinodetopologies"]
    verbs: ["create", "watch", "get", "patch"]
  - apiGroups: [""]
    resources: ["nodes"]
    verbs: ["get"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: vsphere-csi-node-cluster-role-binding
subjects:
  - kind: ServiceAccount
    name: vsphere-csi-node
    namespace: vmware-system-csi
roleRef:
  kind: ClusterRole
  name: vsphere-csi-node-cluster-role
  apiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: vsphere-csi-node-role
  namespace: vmware-system-csi
rules:
  - apiGroups: [""]
    resources: ["configmaps"]
    verbs: ["get", "list", "watch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: vsphere-csi-node-binding
  namespace: vmware-system-csi
subjects:
  - kind: ServiceAccount
    name: vsphere-csi-node
    namespace: vmware-system-csi
roleRef:
  kind: Role
  name: vsphere-csi-node-role
  apiGroup: rbac.authorization.k8s.io
---
apiVersion: v1
data:
  "csi-migration": "true"
  "csi-auth-check": "true"
  "online-volume-extend": "true"
  "trigger-csi-fullsync": "false"
  "async-query-volume": "true"
  "block-volume-snapshot": "true"
  "csi-windows-support": "true"
  "list-volumes": "true"
  "pv-to-backingdiskobjectid-mapping": "false"
  "cnsmgr-suspend-create-volume": "true"
  "topology-preferential-datastores": "true"
  "max-pvscsi-targets-per-vm": "true"
  "multi-vcenter-csi-topology": "true"
  "csi-internal-generated-cluster-id": "true"
  "listview-tasks": "true"
kind: ConfigMap
metadata:
  name: internal-feature-states.csi.vsphere.vmware.com
  namespace: vmware-system-csi
---
apiVersion: v1
kind: Service
metadata:
  name: vsphere-csi-controller
  namespace: vmware-system-csi
  labels:
    app: vsphere-csi-controller
spec:
  ports:
    - name: ctlr
      port: 2112
      targetPort: 2112
      protocol: TCP
    - name: syncer
      port: 2113
      targetPort: 2113
      protocol: TCP
  selector:
    app: vsphere-csi-controller
---
kind: Deployment
apiVersion: apps/v1
metadata:
  name: vsphere-csi-controller
  namespace: vmware-system-csi
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 0
  selector:
    matchLabels:
      app: vsphere-csi-controller
  template:
    metadata:
      labels:
        app: vsphere-csi-controller
        role: vsphere-csi
    spec:
      priorityClassName: system-cluster-critical # Guarantees scheduling for critical system pods
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: "app"
                    operator: In
                    values:
                      - vsphere-csi-controller
              topologyKey: "kubernetes.io/hostname"
      serviceAccountName: vsphere-csi-controller
      nodeSelector:
        node-role.kubernetes.io/control-plane: ""
      tolerations:
        - key: node-role.kubernetes.io/master
          operator: Exists
          effect: NoSchedule
        - key: node-role.kubernetes.io/control-plane
          operator: Exists
          effect: NoSchedule
        # uncomment below toleration if you need an aggressive pod eviction in case when
        # node becomes not-ready or unreachable. Default is 300 seconds if not specified.
        #- key: node.kubernetes.io/not-ready
        #  operator: Exists
        #  effect: NoExecute
        #  tolerationSeconds: 30
        #- key: node.kubernetes.io/unreachable
        #  operator: Exists
        #  effect: NoExecute
        #  tolerationSeconds: 30
      dnsPolicy: "Default"
      containers:
        - name: csi-attacher
          image: registry.k8s.io/sig-storage/csi-attacher:v4.3.0
          args:
            - "--v=4"
            - "--timeout=300s"
            - "--csi-address=$(ADDRESS)"
            - "--leader-election"
            - "--leader-election-lease-duration=120s"
            - "--leader-election-renew-deadline=60s"
            - "--leader-election-retry-period=30s"
            - "--kube-api-qps=100"
            - "--kube-api-burst=100"
          env:
            - name: ADDRESS
              value: /csi/csi.sock
          volumeMounts:
            - mountPath: /csi
              name: socket-dir
        - name: csi-resizer
          image: registry.k8s.io/sig-storage/csi-resizer:v1.8.0
          args:
            - "--v=4"
            - "--timeout=300s"
            - "--handle-volume-inuse-error=false"
            - "--csi-address=$(ADDRESS)"
            - "--kube-api-qps=100"
            - "--kube-api-burst=100"
            - "--leader-election"
            - "--leader-election-lease-duration=120s"
            - "--leader-election-renew-deadline=60s"
            - "--leader-election-retry-period=30s"
          env:
            - name: ADDRESS
              value: /csi/csi.sock
          volumeMounts:
            - mountPath: /csi
              name: socket-dir
        - name: vsphere-csi-controller
          image: registry.k8s.io/csi-vsphere/driver:v3.3.0
          args:
            - "--fss-name=internal-feature-states.csi.vsphere.vmware.com"
            - "--fss-namespace=$(CSI_NAMESPACE)"
          imagePullPolicy: "Always"
          env:
            - name: CSI_ENDPOINT
              value: unix:///csi/csi.sock
            - name: X_CSI_MODE
              value: "controller"
            - name: X_CSI_SPEC_DISABLE_LEN_CHECK
              value: "true"
            - name: X_CSI_SERIAL_VOL_ACCESS_TIMEOUT
              value: 3m
            - name: VSPHERE_CSI_CONFIG
              value: "/etc/cloud/csi-vsphere.conf"
            - name: LOGGER_LEVEL
              value: "PRODUCTION" # Options: DEVELOPMENT, PRODUCTION
            - name: INCLUSTER_CLIENT_QPS
              value: "100"
            - name: INCLUSTER_CLIENT_BURST
              value: "100"
            - name: CSI_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
          securityContext:
            runAsNonRoot: true
            runAsUser: 65532
            runAsGroup: 65532
          volumeMounts:
            - mountPath: /etc/cloud
              name: vsphere-config-volume
              readOnly: true
            - mountPath: /csi
              name: socket-dir
          ports:
            - name: healthz
              containerPort: 9808
              protocol: TCP
            - name: prometheus
              containerPort: 2112
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /healthz
              port: healthz
            initialDelaySeconds: 30
            timeoutSeconds: 10
            periodSeconds: 180
            failureThreshold: 3
        - name: liveness-probe
          image: registry.k8s.io/sig-storage/livenessprobe:v2.10.0
          args:
            - "--v=4"
            - "--csi-address=/csi/csi.sock"
          volumeMounts:
            - name: socket-dir
              mountPath: /csi
        - name: vsphere-syncer
          image: registry.k8s.io/csi-vsphere/syncer:v3.3.0
          args:
            - "--leader-election"
            - "--leader-election-lease-duration=30s"
            - "--leader-election-renew-deadline=20s"
            - "--leader-election-retry-period=10s"
            - "--fss-name=internal-feature-states.csi.vsphere.vmware.com"
            - "--fss-namespace=$(CSI_NAMESPACE)"
          imagePullPolicy: "Always"
          ports:
            - containerPort: 2113
              name: prometheus
              protocol: TCP
          env:
            - name: FULL_SYNC_INTERVAL_MINUTES
              value: "30"
            - name: VSPHERE_CSI_CONFIG
              value: "/etc/cloud/csi-vsphere.conf"
            - name: LOGGER_LEVEL
              value: "PRODUCTION" # Options: DEVELOPMENT, PRODUCTION
            - name: INCLUSTER_CLIENT_QPS
              value: "100"
            - name: INCLUSTER_CLIENT_BURST
              value: "100"
            - name: GODEBUG
              value: x509sha1=1
            - name: CSI_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
          securityContext:
            runAsNonRoot: true
            runAsUser: 65532
            runAsGroup: 65532
          volumeMounts:
            - mountPath: /etc/cloud
              name: vsphere-config-volume
              readOnly: true
        - name: csi-provisioner
          image: registry.k8s.io/sig-storage/csi-provisioner:v3.5.0
          args:
            - "--v=4"
            - "--timeout=300s"
            - "--csi-address=$(ADDRESS)"
            - "--kube-api-qps=100"
            - "--kube-api-burst=100"
            - "--leader-election"
            - "--leader-election-lease-duration=120s"
            - "--leader-election-renew-deadline=60s"
            - "--leader-election-retry-period=30s"
            - "--default-fstype=ext4"
            # needed only for topology aware setup
            #- "--feature-gates=Topology=true"
            #- "--strict-topology"
          env:
            - name: ADDRESS
              value: /csi/csi.sock
          volumeMounts:
            - mountPath: /csi
              name: socket-dir
        - name: csi-snapshotter
          image: registry.k8s.io/sig-storage/csi-snapshotter:v6.2.2
          args:
            - "--v=4"
            - "--kube-api-qps=100"
            - "--kube-api-burst=100"
            - "--timeout=300s"
            - "--csi-address=$(ADDRESS)"
            - "--leader-election"
            - "--leader-election-lease-duration=120s"
            - "--leader-election-renew-deadline=60s"
            - "--leader-election-retry-period=30s"
          env:
            - name: ADDRESS
              value: /csi/csi.sock
          volumeMounts:
            - mountPath: /csi
              name: socket-dir
      volumes:
        - name: vsphere-config-volume
          secret:
            secretName: vsphere-config-secret
        - name: socket-dir
          emptyDir: {}
---
kind: DaemonSet
apiVersion: apps/v1
metadata:
  name: vsphere-csi-node
  namespace: vmware-system-csi
spec:
  selector:
    matchLabels:
      app: vsphere-csi-node
  updateStrategy:
    type: "RollingUpdate"
    rollingUpdate:
      maxUnavailable: 1
  template:
    metadata:
      labels:
        app: vsphere-csi-node
        role: vsphere-csi
    spec:
      priorityClassName: system-node-critical
      nodeSelector:
        kubernetes.io/os: linux
      serviceAccountName: vsphere-csi-node
      hostNetwork: true
      dnsPolicy: "ClusterFirstWithHostNet"
      containers:
        - name: node-driver-registrar
          image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.8.0
          args:
            - "--v=5"
            - "--csi-address=$(ADDRESS)"
            - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)"
          env:
            - name: ADDRESS
              value: /csi/csi.sock
            - name: DRIVER_REG_SOCK_PATH
              value: /var/lib/kubelet/plugins/csi.vsphere.vmware.com/csi.sock
          volumeMounts:
            - name: plugin-dir
              mountPath: /csi
            - name: registration-dir
              mountPath: /registration
          livenessProbe:
            exec:
              command:
              - /csi-node-driver-registrar
              - --kubelet-registration-path=/var/lib/kubelet/plugins/csi.vsphere.vmware.com/csi.sock
              - --mode=kubelet-registration-probe
            initialDelaySeconds: 3
        - name: vsphere-csi-node
          image: registry.k8s.io/csi-vsphere/driver:v3.3.0
          args:
            - "--fss-name=internal-feature-states.csi.vsphere.vmware.com"
            - "--fss-namespace=$(CSI_NAMESPACE)"
          imagePullPolicy: "Always"
          env:
            - name: NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            - name: CSI_ENDPOINT
              value: unix:///csi/csi.sock
            - name: MAX_VOLUMES_PER_NODE
              value: "59" # Maximum number of volumes that controller can publish to the node. If value is not set or zero Kubernetes decide how many volumes can be published by the controller to the node.
            - name: X_CSI_MODE
              value: "node"
            - name: X_CSI_SPEC_REQ_VALIDATION
              value: "false"
            - name: X_CSI_SPEC_DISABLE_LEN_CHECK
              value: "true"
            - name: LOGGER_LEVEL
              value: "PRODUCTION" # Options: DEVELOPMENT, PRODUCTION
            - name: GODEBUG
              value: x509sha1=1
            - name: CSI_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: NODEGETINFO_WATCH_TIMEOUT_MINUTES
              value: "1"
          securityContext:
            privileged: true
            capabilities:
              add: ["SYS_ADMIN"]
            allowPrivilegeEscalation: true
          volumeMounts:
            - name: plugin-dir
              mountPath: /csi
            - name: pods-mount-dir
              mountPath: /var/lib/kubelet
              # needed so that any mounts setup inside this container are
              # propagated back to the host machine.
              mountPropagation: "Bidirectional"
            - name: device-dir
              mountPath: /dev
            - name: blocks-dir
              mountPath: /sys/block
            - name: sys-devices-dir
              mountPath: /sys/devices
          ports:
            - name: healthz
              containerPort: 9808
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /healthz
              port: healthz
            initialDelaySeconds: 10
            timeoutSeconds: 5
            periodSeconds: 5
            failureThreshold: 3
        - name: liveness-probe
          image: registry.k8s.io/sig-storage/livenessprobe:v2.10.0
          args:
            - "--v=4"
            - "--csi-address=/csi/csi.sock"
          volumeMounts:
            - name: plugin-dir
              mountPath: /csi
      volumes:
        - name: registration-dir
          hostPath:
            path: /var/lib/kubelet/plugins_registry
            type: Directory
        - name: plugin-dir
          hostPath:
            path: /var/lib/kubelet/plugins/csi.vsphere.vmware.com
            type: DirectoryOrCreate
        - name: pods-mount-dir
          hostPath:
            path: /var/lib/kubelet
            type: Directory
        - name: device-dir
          hostPath:
            path: /dev
        - name: blocks-dir
          hostPath:
            path: /sys/block
            type: Directory
        - name: sys-devices-dir
          hostPath:
            path: /sys/devices
            type: Directory
      tolerations:
        - effect: NoExecute
          operator: Exists
        - effect: NoSchedule
          operator: Exists
---
kind: DaemonSet
apiVersion: apps/v1
metadata:
  name: vsphere-csi-node-windows
  namespace: vmware-system-csi
spec:
  selector:
    matchLabels:
      app: vsphere-csi-node-windows
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
  template:
    metadata:
      labels:
        app: vsphere-csi-node-windows
        role: vsphere-csi-windows
    spec:
      priorityClassName: system-node-critical
      nodeSelector:
        kubernetes.io/os: windows
      serviceAccountName: vsphere-csi-node
      containers:
        - name: node-driver-registrar
          image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.8.0
          args:
            - "--v=5"
            - "--csi-address=$(ADDRESS)"
            - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)"
          env:
            - name: ADDRESS
              value: 'unix://C:\\csi\\csi.sock'
            - name: DRIVER_REG_SOCK_PATH
              value: 'C:\\var\\lib\\kubelet\\plugins\\csi.vsphere.vmware.com\\csi.sock'
          volumeMounts:
            - name: plugin-dir
              mountPath: /csi
            - name: registration-dir
              mountPath: /registration
          livenessProbe:
            exec:
              command:
              - /csi-node-driver-registrar.exe
              - --kubelet-registration-path=C:\\var\\lib\\kubelet\\plugins\\csi.vsphere.vmware.com\\csi.sock
              - --mode=kubelet-registration-probe
            initialDelaySeconds: 3
        - name: vsphere-csi-node
          image: registry.k8s.io/csi-vsphere/driver:v3.3.0
          args:
            - "--fss-name=internal-feature-states.csi.vsphere.vmware.com"
            - "--fss-namespace=$(CSI_NAMESPACE)"
          imagePullPolicy: "Always"
          env:
            - name: NODE_NAME
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: spec.nodeName
            - name: CSI_ENDPOINT
              value: 'unix://C:\\csi\\csi.sock'
            - name: MAX_VOLUMES_PER_NODE
              value: "59" # Maximum number of volumes that controller can publish to the node. If value is not set or zero Kubernetes decide how many volumes can be published by the controller to the node.
            - name: X_CSI_MODE
              value: node
            - name: X_CSI_SPEC_REQ_VALIDATION
              value: 'false'
            - name: X_CSI_SPEC_DISABLE_LEN_CHECK
              value: "true"
            - name: LOGGER_LEVEL
              value: "PRODUCTION" # Options: DEVELOPMENT, PRODUCTION
            - name: X_CSI_LOG_LEVEL
              value: DEBUG
            - name: CSI_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: NODEGETINFO_WATCH_TIMEOUT_MINUTES
              value: "1"
          volumeMounts:
            - name: plugin-dir
              mountPath: 'C:\csi'
            - name: pods-mount-dir
              mountPath: 'C:\var\lib\kubelet'
            - name: csi-proxy-volume-v1
              mountPath: \\.\pipe\csi-proxy-volume-v1
            - name: csi-proxy-filesystem-v1
              mountPath: \\.\pipe\csi-proxy-filesystem-v1
            - name: csi-proxy-disk-v1
              mountPath: \\.\pipe\csi-proxy-disk-v1
            - name: csi-proxy-system-v1alpha1
              mountPath: \\.\pipe\csi-proxy-system-v1alpha1
          ports:
            - name: healthz
              containerPort: 9808
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /healthz
              port: healthz
            initialDelaySeconds: 10
            timeoutSeconds: 5
            periodSeconds: 5
            failureThreshold: 3
        - name: liveness-probe
          image: registry.k8s.io/sig-storage/livenessprobe:v2.10.0
          args:
            - "--v=4"
            - "--csi-address=/csi/csi.sock"
          volumeMounts:
            - name: plugin-dir
              mountPath: /csi
      volumes:
        - name: registration-dir
          hostPath:
            path: 'C:\var\lib\kubelet\plugins_registry\'
            type: Directory
        - name: plugin-dir
          hostPath:
            path: 'C:\var\lib\kubelet\plugins\csi.vsphere.vmware.com\'
            type: DirectoryOrCreate
        - name: pods-mount-dir
          hostPath:
            path: \var\lib\kubelet
            type: Directory
        - name: csi-proxy-disk-v1
          hostPath:
            path: \\.\pipe\csi-proxy-disk-v1
            type: ''
        - name: csi-proxy-volume-v1
          hostPath:
            path: \\.\pipe\csi-proxy-volume-v1
            type: ''
        - name: csi-proxy-filesystem-v1
          hostPath:
            path: \\.\pipe\csi-proxy-filesystem-v1
            type: ''
        - name: csi-proxy-system-v1alpha1
          hostPath:
            path: \\.\pipe\csi-proxy-system-v1alpha1
            type: ''
      tolerations:
        - effect: NoExecute
          operator: Exists
        - effect: NoSchedule
          operator: Exists

@agtogna
Copy link

agtogna commented Sep 23, 2024

release-3.3 Images are available at

registry.k8s.io/csi-vsphere/driver:v3.3.1 registry.k8s.io/csi-vsphere/syncer:v3.3.1

registry.k8s.io/csi-vsphere/driver:v3.3.0 registry.k8s.io/csi-vsphere/syncer:v3.3.0

Sorry, but will versions older than 3.2.0 (e.g. 3.0.1 or 3.1.0) be uploaded on k8s.io?

@divyenpatel
Copy link
Member

@divyenpatel, What happened to the older repo? Will the next releases use this repo? Because currently there is no manifest that is using those images (manfiests/vanila) It will be nice to understand the changes.

Older repository got deleted.

Images for next releases will be happening at registry.k8s.io/csi-vsphere/driver:release-tag and registry.k8s.io/csi-vsphere/syncer:release-tag

For prior releases, we will put up documentation about how to replace images in the deployment.

@divyenpatel
Copy link
Member

@divyenpatel Thank you so much. How hard would it be to get a couple more minor versions on here? 3.3 and 3.2 are broken on my cluster due to #3000 (been open for a month or so...). Happy to contribute to the effort if that would help.

@slowtacocar I have provided comment here. #3000 (comment)

We can evaluate if there is no impact to planned releases then we can include this change.

@divyenpatel
Copy link
Member

Sorry, but will versions older than 3.2.0 (e.g. 3.0.1 or 3.1.0) be uploaded on k8s.io?

@agtogna

We have v3.1.2 available here.

registry.k8s.io/csi-vsphere/driver:v3.1.2
registry.k8s.io/csi-vsphere/syncer:v3.1.2

We are still working on rebuilding images. As soon as they are avaialble we will update README.md

@Sispheor
Copy link

Could you create new minor release for older version impacted by the change? To update all manifest files.

@devopsInterviews
Copy link
Author

@divyenpatel Thanks for the answers!
I got another request, I believe you are somehow related to Vmware and I saw you were talking @xing-yang (who I also believe related to them).
I got a bug in other vsphere plugin related to kubernetes:
vmware-tanzu/velero#7938

Is there any chance you can take a look at that or inform someone that is in charge of that?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug.
Projects
None yet
Development

No branches or pull requests

10 participants