diff --git a/go.mod b/go.mod index dd1130de2..85d8ee38a 100644 --- a/go.mod +++ b/go.mod @@ -11,11 +11,11 @@ require ( github.com/kubernetes-csi/csi-lib-utils v0.20.0 github.com/kubernetes-csi/csi-test/v5 v5.3.1 google.golang.org/grpc v1.69.4 - k8s.io/api v0.32.1 - k8s.io/apimachinery v0.32.1 - k8s.io/client-go v0.32.1 - k8s.io/component-base v0.32.1 - k8s.io/csi-translation-lib v0.32.1 + k8s.io/api v0.32.2 + k8s.io/apimachinery v0.32.2 + k8s.io/client-go v0.32.2 + k8s.io/component-base v0.32.2 + k8s.io/csi-translation-lib v0.32.2 k8s.io/klog/v2 v2.130.1 ) diff --git a/go.sum b/go.sum index 22b8eca29..b62d3a522 100644 --- a/go.sum +++ b/go.sum @@ -195,16 +195,16 @@ gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.32.1 h1:f562zw9cy+GvXzXf0CKlVQ7yHJVYzLfL6JAS4kOAaOc= -k8s.io/api v0.32.1/go.mod h1:/Yi/BqkuueW1BgpoePYBRdDYfjPF5sgTr5+YqDZra5k= -k8s.io/apimachinery v0.32.1 h1:683ENpaCBjma4CYqsmZyhEzrGz6cjn1MY/X2jB2hkZs= -k8s.io/apimachinery v0.32.1/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= -k8s.io/client-go v0.32.1 h1:otM0AxdhdBIaQh7l1Q0jQpmo7WOFIk5FFa4bg6YMdUU= -k8s.io/client-go v0.32.1/go.mod h1:aTTKZY7MdxUaJ/KiUs8D+GssR9zJZi77ZqtzcGXIiDg= -k8s.io/component-base v0.32.1 h1:/5IfJ0dHIKBWysGV0yKTFfacZ5yNV1sulPh3ilJjRZk= -k8s.io/component-base v0.32.1/go.mod h1:j1iMMHi/sqAHeG5z+O9BFNCF698a1u0186zkjMZQ28w= -k8s.io/csi-translation-lib v0.32.1 h1:qqlB+eKiIdUM+GGZfJN/4FMNeuIPIELLxfWfv/LWUYk= -k8s.io/csi-translation-lib v0.32.1/go.mod h1:dc7zXqpUW4FykfAe6TqU32tYewsGhrjI63ZwJWQng3k= +k8s.io/api v0.32.2 h1:bZrMLEkgizC24G9eViHGOPbW+aRo9duEISRIJKfdJuw= +k8s.io/api v0.32.2/go.mod h1:hKlhk4x1sJyYnHENsrdCWw31FEmCijNGPJO5WzHiJ6Y= +k8s.io/apimachinery v0.32.2 h1:yoQBR9ZGkA6Rgmhbp/yuT9/g+4lxtsGYwW6dR6BDPLQ= +k8s.io/apimachinery v0.32.2/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= +k8s.io/client-go v0.32.2 h1:4dYCD4Nz+9RApM2b/3BtVvBHw54QjMFUl1OLcJG5yOA= +k8s.io/client-go v0.32.2/go.mod h1:fpZ4oJXclZ3r2nDOv+Ux3XcJutfrwjKTCHz2H3sww94= +k8s.io/component-base v0.32.2 h1:1aUL5Vdmu7qNo4ZsE+569PV5zFatM9hl+lb3dEea2zU= +k8s.io/component-base v0.32.2/go.mod h1:PXJ61Vx9Lg+P5mS8TLd7bCIr+eMJRQTyXe8KvkrvJq0= +k8s.io/csi-translation-lib v0.32.2 h1:aLzAyaoJUc5rgtLi8Xd4No1tet6UpvUsGIgRoGnPSSE= +k8s.io/csi-translation-lib v0.32.2/go.mod h1:PlOKan6Vc0G6a+giQbm36plJ+E1LH+GPRLAVMQMSMcY= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 h1:hcha5B1kVACrLujCKLbr8XWMxCxzQx42DY8QKYJrDLg= diff --git a/vendor/k8s.io/csi-translation-lib/plugins/portworx.go b/vendor/k8s.io/csi-translation-lib/plugins/portworx.go index 474384cfb..918002c7b 100644 --- a/vendor/k8s.io/csi-translation-lib/plugins/portworx.go +++ b/vendor/k8s.io/csi-translation-lib/plugins/portworx.go @@ -18,6 +18,7 @@ package plugins import ( "fmt" + "strings" v1 "k8s.io/api/core/v1" storagev1 "k8s.io/api/storage/v1" @@ -28,6 +29,29 @@ import ( const ( PortworxVolumePluginName = "kubernetes.io/portworx-volume" PortworxDriverName = "pxd.portworx.com" + + OpenStorageAuthSecretNameKey = "openstorage.io/auth-secret-name" + OpenStorageAuthSecretNamespaceKey = "openstorage.io/auth-secret-namespace" + + csiParameterPrefix = "csi.storage.k8s.io/" + + prefixedProvisionerSecretNameKey = csiParameterPrefix + "provisioner-secret-name" + prefixedProvisionerSecretNamespaceKey = csiParameterPrefix + "provisioner-secret-namespace" + + prefixedControllerPublishSecretNameKey = csiParameterPrefix + "controller-publish-secret-name" + prefixedControllerPublishSecretNamespaceKey = csiParameterPrefix + "controller-publish-secret-namespace" + + prefixedNodeStageSecretNameKey = csiParameterPrefix + "node-stage-secret-name" + prefixedNodeStageSecretNamespaceKey = csiParameterPrefix + "node-stage-secret-namespace" + + prefixedNodePublishSecretNameKey = csiParameterPrefix + "node-publish-secret-name" + prefixedNodePublishSecretNamespaceKey = csiParameterPrefix + "node-publish-secret-namespace" + + prefixedControllerExpandSecretNameKey = csiParameterPrefix + "controller-expand-secret-name" + prefixedControllerExpandSecretNamespaceKey = csiParameterPrefix + "controller-expand-secret-namespace" + + prefixedNodeExpandSecretNameKey = csiParameterPrefix + "node-expand-secret-name" + prefixedNodeExpandSecretNamespaceKey = csiParameterPrefix + "node-expand-secret-namespace" ) var _ InTreePlugin = &portworxCSITranslator{} @@ -44,7 +68,34 @@ func (p portworxCSITranslator) TranslateInTreeStorageClassToCSI(logger klog.Logg if sc == nil { return nil, fmt.Errorf("sc is nil") } + + var params = map[string]string{} + for k, v := range sc.Parameters { + switch strings.ToLower(k) { + case OpenStorageAuthSecretNameKey: + params[prefixedProvisionerSecretNameKey] = v + params[prefixedControllerPublishSecretNameKey] = v + params[prefixedNodePublishSecretNameKey] = v + params[prefixedNodeStageSecretNameKey] = v + params[prefixedControllerExpandSecretNameKey] = v + params[prefixedNodeExpandSecretNameKey] = v + case OpenStorageAuthSecretNamespaceKey: + params[prefixedProvisionerSecretNamespaceKey] = v + params[prefixedControllerPublishSecretNamespaceKey] = v + params[prefixedNodePublishSecretNamespaceKey] = v + params[prefixedNodeStageSecretNamespaceKey] = v + params[prefixedControllerExpandSecretNamespaceKey] = v + params[prefixedNodeExpandSecretNamespaceKey] = v + default: + // All other parameters can be copied as is + params[k] = v + } + } + if len(params) > 0 { + sc.Parameters = params + } sc.Provisioner = PortworxDriverName + return sc, nil } @@ -87,11 +138,26 @@ func (p portworxCSITranslator) TranslateInTreePVToCSI(logger klog.Logger, pv *v1 if pv == nil || pv.Spec.PortworxVolume == nil { return nil, fmt.Errorf("pv is nil or PortworxVolume not defined on pv") } + var secretRef *v1.SecretReference + + if metav1.HasAnnotation(pv.ObjectMeta, OpenStorageAuthSecretNameKey) && + metav1.HasAnnotation(pv.ObjectMeta, OpenStorageAuthSecretNamespaceKey) { + secretRef = &v1.SecretReference{ + Name: pv.Annotations[OpenStorageAuthSecretNameKey], + Namespace: pv.Annotations[OpenStorageAuthSecretNamespaceKey], + } + } + csiSource := &v1.CSIPersistentVolumeSource{ - Driver: PortworxDriverName, - VolumeHandle: pv.Spec.PortworxVolume.VolumeID, - FSType: pv.Spec.PortworxVolume.FSType, - VolumeAttributes: make(map[string]string), // copy access mode + Driver: PortworxDriverName, + VolumeHandle: pv.Spec.PortworxVolume.VolumeID, + FSType: pv.Spec.PortworxVolume.FSType, + VolumeAttributes: make(map[string]string), // copy access mode + ControllerPublishSecretRef: secretRef, + NodeStageSecretRef: secretRef, + NodePublishSecretRef: secretRef, + ControllerExpandSecretRef: secretRef, + NodeExpandSecretRef: secretRef, } pv.Spec.PortworxVolume = nil pv.Spec.CSI = csiSource diff --git a/vendor/modules.txt b/vendor/modules.txt index 9266e82a5..3902238ee 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -342,7 +342,7 @@ gopkg.in/inf.v0 # gopkg.in/yaml.v3 v3.0.1 ## explicit gopkg.in/yaml.v3 -# k8s.io/api v0.32.1 +# k8s.io/api v0.32.2 ## explicit; go 1.23.0 k8s.io/api/admissionregistration/v1 k8s.io/api/admissionregistration/v1alpha1 @@ -401,7 +401,7 @@ k8s.io/api/storage/v1 k8s.io/api/storage/v1alpha1 k8s.io/api/storage/v1beta1 k8s.io/api/storagemigration/v1alpha1 -# k8s.io/apimachinery v0.32.1 +# k8s.io/apimachinery v0.32.2 ## explicit; go 1.23.0 k8s.io/apimachinery/pkg/api/equality k8s.io/apimachinery/pkg/api/errors @@ -456,7 +456,7 @@ k8s.io/apimachinery/pkg/version k8s.io/apimachinery/pkg/watch k8s.io/apimachinery/third_party/forked/golang/json k8s.io/apimachinery/third_party/forked/golang/reflect -# k8s.io/client-go v0.32.1 +# k8s.io/client-go v0.32.2 ## explicit; go 1.23.0 k8s.io/client-go/applyconfigurations k8s.io/client-go/applyconfigurations/admissionregistration/v1 @@ -783,7 +783,7 @@ k8s.io/client-go/util/homedir k8s.io/client-go/util/keyutil k8s.io/client-go/util/watchlist k8s.io/client-go/util/workqueue -# k8s.io/component-base v0.32.1 +# k8s.io/component-base v0.32.2 ## explicit; go 1.23.0 k8s.io/component-base/cli/flag k8s.io/component-base/featuregate @@ -798,7 +798,7 @@ k8s.io/component-base/metrics/legacyregistry k8s.io/component-base/metrics/prometheus/feature k8s.io/component-base/metrics/prometheusextension k8s.io/component-base/version -# k8s.io/csi-translation-lib v0.32.1 +# k8s.io/csi-translation-lib v0.32.2 ## explicit; go 1.23.0 k8s.io/csi-translation-lib k8s.io/csi-translation-lib/plugins