diff --git a/assets/hpe-csi-driver/hpe-csi-driver-1.4.200.tgz b/assets/hpe-csi-driver/hpe-csi-driver-1.4.200.tgz new file mode 100644 index 000000000..22acf87bb Binary files /dev/null and b/assets/hpe-csi-driver/hpe-csi-driver-1.4.200.tgz differ diff --git a/assets/index.yaml b/assets/index.yaml index 01bd4ee04..606e7cda5 100644 --- a/assets/index.yaml +++ b/assets/index.yaml @@ -306,6 +306,29 @@ entries: - assets/haproxy/haproxy-1.4.300.tgz version: 1.4.300 hpe-csi-driver: + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/release-name: hpe-csi-driver + apiVersion: v1 + appVersion: 1.4.0 + created: "2021-02-25T22:46:37.811643961Z" + description: A Helm chart for installing the HPE CSI Driver for Kubernetes + digest: 487dca3d6bdf6961bf29425945b40974667a67723d2a8d9edbca87285e628793 + home: https://hpe.com/storage/containers + icon: https://raw.githubusercontent.com/hpe-storage/co-deployments/master/docs/assets/hpedev.png + keywords: + - HPE + - Storage + - StorageClass + maintainers: + - email: hpe-containers-dev@hpe.com + name: raunakkumar + name: hpe-csi-driver + sources: + - https://scod.hpedev.io/csi_driver + urls: + - assets/hpe-csi-driver/hpe-csi-driver-1.4.200.tgz + version: 1.4.200 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/release-name: hpe-csi-driver @@ -527,4 +550,4 @@ entries: urls: - assets/sysdig/sysdig-1.9.200.tgz version: 1.9.200 -generated: "2021-02-25T20:17:31.425563557Z" +generated: "2021-02-25T22:46:37.810270792Z" diff --git a/charts/hpe-csi-driver/Chart.yaml b/charts/hpe-csi-driver/Chart.yaml index 420109774..90aa7e71a 100644 --- a/charts/hpe-csi-driver/Chart.yaml +++ b/charts/hpe-csi-driver/Chart.yaml @@ -1,22 +1,19 @@ apiVersion: v1 -appVersion: "1.3.0" +appVersion: 1.4.0 description: A Helm chart for installing the HPE CSI Driver for Kubernetes -icon: https://raw.githubusercontent.com/hpe-storage/co-deployments/master/docs/assets/hpedev.png -maintainers: -- name: shivamerla - email: hpe-containers-dev@hpe.com -sources: -- https://scod.hpedev.io/csi_driver -name: hpe-csi-driver home: https://hpe.com/storage/containers -version: 1.3.000 +icon: https://raw.githubusercontent.com/hpe-storage/co-deployments/master/docs/assets/hpedev.png keywords: - HPE - Storage - StorageClass -- CentOS -- Ubuntu -- RHEL +maintainers: +- email: hpe-containers-dev@hpe.com + name: raunakkumar +name: hpe-csi-driver +sources: +- https://scod.hpedev.io/csi_driver +version: 1.4.200 annotations: catalog.cattle.io/certified: partner catalog.cattle.io/release-name: hpe-csi-driver diff --git a/charts/hpe-csi-driver/README.md b/charts/hpe-csi-driver/README.md index 4cdf3f49d..3ffbdd953 100644 --- a/charts/hpe-csi-driver/README.md +++ b/charts/hpe-csi-driver/README.md @@ -25,6 +25,7 @@ The following table lists the configurable parameters of the HPE-CSI chart and t | disableNodeConformance | Disable automatic installation of iSCSI/Multipath Packages. | false | | iscsi.chapUser | Username for iSCSI CHAP authentication. | "" | | iscsi.chapPassword | Password for iSCSI CHAP authentication. | "" | +| registry | Registry to pull HPE CSI Driver container images from. | quay.io | It's recommended to create a [values.yaml](https://github.com/hpe-storage/co-deployments/blob/master/helm/values/csi-driver) file from the corresponding release of the chart and edit it to fit the environment the chart is being deployed to. Download and edit [a sample file](https://github.com/hpe-storage/co-deployments/blob/master/helm/values/csi-driver). @@ -32,54 +33,43 @@ These are the bare minimum required parameters for a successful deployment to an ``` iscsi: - chapUser: - chapPassword: + chapUser: "" + chapPassword: "" ``` Tweak any additional parameters to suit the environment or as prescribed by HPE. ### Installing the chart -To install the chart with the name `hpe-csi`: +To install the chart with the name `my-hpe-csi-driver`: Add HPE helm repo: ``` -helm repo add hpe https://hpe-storage.github.io/co-deployments +helm repo add hpe-storage https://hpe-storage.github.io/co-deployments/ helm repo update ``` Install the latest chart: ``` -helm install hpe-csi hpe/hpe-csi-driver --namespace kube-system -f myvalues.yaml +kubectl create ns hpe-storage +helm install my-hpe-csi-driver hpe-storage/hpe-csi-driver -n hpe-storage -f myvalues.yaml ``` -**Note**: values.yaml is optional if no parameters are overridden from defaults. +**Note**: `values.yaml` is optional if no parameters are overridden from defaults. -### Upgrading the Chart +### Upgrading the chart -To upgrade the chart, specify the version you want to upgrade to as below. Please do NOT re-use a full blown `values.yaml` from prior versions to upgrade to later versions. Always use `values.yaml` from corresponding release from [values.yaml](https://github.com/hpe-storage/co-deployments/blob/master/helm/values/csi-driver) +Due to the [helm limitation](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/#some-caveats-and-explanations) to not support upgrade of CRDs between different chart versions, `hpe-csi-driver` helm chart upgrade is not supported. +Our recommendation is to uninstall the existing chart and install the chart with the desired version. CRDs will be preserved between uninstall and install. -List the avaiable version of the plugin: +### Uninstalling the chart + +To uninstall the `my-hpe-csi-driver` chart: ``` -helm repo update -helm search repo hpe-csi-driver -l -``` - -Select the target version to upgrade as below: - -``` -helm upgrade hpe-csi hpe/hpe-csi-driver --namespace kube-system --version=x.x.x.x -f myvalues.yaml -``` - -### Uninstalling the Chart - -To uninstall the `hpe-csi` chart: - -``` -helm uninstall hpe-csi --namespace kube-system +helm uninstall my-hpe-csi-driver -n hpe-storage ``` **Note**: Due to a limitation in Helm, CRDs are not deleted as part of the chart uninstall. @@ -89,8 +79,9 @@ helm uninstall hpe-csi --namespace kube-system In some cases it's more practical to provide the local configuration via the `helm` CLI directly. Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. These will take precedence over entries in [values.yaml](https://github.com/hpe-storage/co-deployments/blob/master/helm/values/csi-driver). For example: ``` -helm install hpe-csi hpe/hpe-csi-driver --namespace kube-system --set iscsi.chapUsername=admin \ ---set iscsi.chapPassword=xxxxxxxx +helm install my-hpe-csi-driver hpe-storage/hpe-csi-driver -n hpe-storage \ + --set iscsi.chapUsername=admin \ + --set iscsi.chapPassword=xxxxxxxx ``` ## Using persistent storage with Kubernetes diff --git a/charts/hpe-csi-driver/crds/hpe-nodeinfo-crd.yaml b/charts/hpe-csi-driver/crds/hpe-nodeinfo-crd.yaml index e63caf45c..86c60cf34 100644 --- a/charts/hpe-csi-driver/crds/hpe-nodeinfo-crd.yaml +++ b/charts/hpe-csi-driver/crds/hpe-nodeinfo-crd.yaml @@ -2,52 +2,68 @@ ############################################# ############ HPE Node Info CRD ############ ############################################# -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition -metadata: +metadata: creationTimestamp: null name: hpenodeinfos.storage.hpe.com -spec: +spec: group: storage.hpe.com - names: + names: kind: HPENodeInfo plural: hpenodeinfos scope: Cluster - validation: - openAPIV3Schema: - properties: - hpeNodes: - description: List of HPE nodes configured for storage access. - items: - properties: - uuid: - description: The UUID of the node. - type: string - iqns: - description: List of IQNs configured on the node. - items: + versions: + - name: v1 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: true + schema: + openAPIV3Schema: + properties: + apiVersion: + description: "APIVersion defines the versioned schema of this representation of an object." + type: string + kind: + description: "Kind is a string value representing the REST resource this object represents" + type: string + spec: + description: "spec defines the desired characteristics of a HPE nodeinfo requested by a user." + properties: + chapPassword: + description: "The CHAP Password" type: string - type: array - chapUser: - description: The CHAP User Name + chapUser: + description: "The CHAP User Name" type: string - chapPassword: - description: The CHAP Password - type: string - networks: - description: List of networks configured on the node. - items: + iqns: + description: "List of IQNs configured on the node." + items: + type: string + type: array + networks: + description: "List of networks configured on the node." + items: + type: string + type: array + uuid: + description: "The UUID of the node." type: string - type: array - wwpns: - description: List of WWPNs configured on the node. - items: - type: string - type: array - type: array - version: v1 -status: - acceptedNames: + wwpns: + description: "List of WWPNs configured on the node." + items: + type: string + type: array + required: + - uuid + - networks + type: object + required: + - spec + type: object +status: + acceptedNames: kind: "" plural: "" conditions: [] diff --git a/charts/hpe-csi-driver/crds/hpe-replicated-device-info-crd.yaml b/charts/hpe-csi-driver/crds/hpe-replicated-device-info-crd.yaml index 846d76edd..253d87d05 100644 --- a/charts/hpe-csi-driver/crds/hpe-replicated-device-info-crd.yaml +++ b/charts/hpe-csi-driver/crds/hpe-replicated-device-info-crd.yaml @@ -24,7 +24,7 @@ spec: type: array items: properties: - targetName: + targetName: description: Target Name of the array type: string targetCpg: @@ -34,11 +34,11 @@ spec: description: Target Snap CPG of the array type: string targetSecret: - description: Secret of the replicated array - type: string + description: Secret of the replicated array + type: string targetMode: description: Replication Mode - type: string + type: string targetSecretNamespace: description: Namespace of secret type: string diff --git a/charts/hpe-csi-driver/crds/hpe-snapshotgroupinfo-crd.yaml b/charts/hpe-csi-driver/crds/hpe-snapshotgroupinfo-crd.yaml new file mode 100644 index 000000000..76789eda9 --- /dev/null +++ b/charts/hpe-csi-driver/crds/hpe-snapshotgroupinfo-crd.yaml @@ -0,0 +1,57 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: hpesnapshotgroupinfos.storage.hpe.com +spec: + group: storage.hpe.com + names: + kind: HPESnapshotGroupInfo + plural: hpesnapshotgroupinfos + shortNames: + - hpesgi + scope: Cluster + version: v1 + validation: + openAPIV3Schema: + properties: + hpeSnapshotGroupInfos: + description: List of HPE snapshot groups created for 3PAR/Primera arrays. + type: array + items: + properties: + uuid: + description: The UUID of the node. + type: string + + record: + description: Metadata for the volume group + type: map[string]string + + snapshotVolumes: + description: Snapshot volumes that are part of this snapshot group + type: array + items: + properties: + srcVolumeId: + description: ID of the volume that is the source of this snapshot volume + type: string + + srcVolumeName: + description: Name of the volume that is the source of this snapshot volume + type: string + + snapshotId: + description: Snapshot volume Id + type: string + + snapshotName: + description: Snapshot volume name + type: string + +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/charts/hpe-csi-driver/crds/hpe-volumegroupinfo-crd.yaml b/charts/hpe-csi-driver/crds/hpe-volumegroupinfo-crd.yaml new file mode 100644 index 000000000..c9e58e415 --- /dev/null +++ b/charts/hpe-csi-driver/crds/hpe-volumegroupinfo-crd.yaml @@ -0,0 +1,64 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: hpevolumegroupinfos.storage.hpe.com +spec: + group: storage.hpe.com + names: + kind: HPEVolumeGroupInfo + plural: hpevolumegroupinfos + shortNames: + - hpevgi + scope: Cluster + version: v1 + validation: + openAPIV3Schema: + properties: + hpeVolumeGroupInfos: + description: List of HPE volume groups configured for 3PAR/Primera arrays. + type: array + items: + properties: + uuid: + description: The UUID of the node. + type: string + + record: + description: Metadata for the volume group + type: map[string]string + + snapshotGroups: + description: Snapshot groups that are linked to this volume group + type: array + items: + properties: + id: + description: ID of the snapshot group + type: string + + name: + description: Name of the snapshot group + type: string + + volumes: + description: Volumes that are members in this volume group + type: array + items: + properties: + volumeId: + description: ID of the member volume + type: string + + volumeName: + description: Name of the member volume + type: string + + + +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/charts/hpe-csi-driver/crds/storage.hpe.com_snapshotgroupclasses.yaml b/charts/hpe-csi-driver/crds/storage.hpe.com_snapshotgroupclasses.yaml new file mode 100644 index 000000000..b58878471 --- /dev/null +++ b/charts/hpe-csi-driver/crds/storage.hpe.com_snapshotgroupclasses.yaml @@ -0,0 +1,60 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: snapshotgroupclasses.storage.hpe.com +spec: + conversion: + strategy: None + group: storage.hpe.com + names: + kind: SnapshotGroupClass + listKind: SnapshotGroupClassList + plural: snapshotgroupclasses + singular: snapshotgroupclass + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: SnapshotGroupClass specifies parameters that a underlying + storage system uses when creating a volumegroup snapshot. A specific SnapshotGroupClass + is used by specifying its name in a VolumeGroupSnapshot object. SnapshotGroupClasses + are non-namespaced + properties: + apiVersion: + description: APIVersion defines the versioned schema of this representation + of an object. + type: string + deletionPolicy: + description: deletionPolicy determines whether a SnapshotGroupContent + created through the SnapshotGroupClass should be deleted when its + bound SnapshotGroup is deleted. Supported values are "Retain" and + "Delete". "Retain" means that the SnapshotGroupContent and its physical + snapshotGroup on underlying storage system are kept. "Delete" means that + the SnapshotGroupContent and its physical snapshotGroup on underlying + storage system are deleted. Required. + enum: + - Delete + - Retain + type: string + snapshotter: + description: snapshotter is the name of the storage driver that handles this + SnapshotGroupClass. Required. + type: string + kind: + description: Kind is a string value representing the REST resource + this object represents. + type: string + parameters: + additionalProperties: + type: string + description: parameters is a key-value map with storage driver specific + parameters for creating snapshotGroups. These values are opaque to Kubernetes. + type: object + required: + - deletionPolicy + - snapshotter + type: object + served: true + storage: true \ No newline at end of file diff --git a/charts/hpe-csi-driver/crds/storage.hpe.com_snapshotgroupcontents.yaml b/charts/hpe-csi-driver/crds/storage.hpe.com_snapshotgroupcontents.yaml new file mode 100644 index 000000000..a7132c59e --- /dev/null +++ b/charts/hpe-csi-driver/crds/storage.hpe.com_snapshotgroupcontents.yaml @@ -0,0 +1,104 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: snapshotgroupcontents.storage.hpe.com +spec: + conversion: + strategy: None + group: storage.hpe.com + names: + kind: SnapshotGroupContent + listKind: SnapshotGroupContentList + plural: snapshotgroupcontents + singular: snapshotgroupcontent + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: SnapshotGroupContent represents the actual "on-disk" snapshotGroup + object in the underlying storage system + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource + this object represents. Servers may infer this from the endpoint the + client submits requests to. Cannot be updated. In CamelCase. More + info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + spec: + description: spec defines properties of a SnapshotGroupContent created + by the underlying storage system. Required. + properties: + deletionPolicy: + description: deletionPolicy determines whether this SnapshotGroupContent + and its physical snapshotgroup on the underlying storage system should + be deleted when its bound SnapshotGroup is deleted. Supported + values are "Retain" and "Delete". "Retain" means that the SnapshotGroupContent + and its physical snapshotGroup on underlying storage system are kept. + "Delete" means that the SnapshotGroupContent and its physical + snapshotGroup on underlying storage system are deleted. + Required. + enum: + - Delete + - Retain + type: string + source: + description: source specifies from where a snapshotGroup will be created.Required. + properties: + snapshotGroupHandle: + description: snapshotGroupHandle specifies the snapshotGroup Id + of a pre-existing snapshotGroup on the underlying storage system. + This field is immutable. + type: string + type: object + snapshotGroupClassName: + description: name of the SnapshotGroupClass to which this snapshotGroup belongs. + type: string + snapshotGroupRef: + description: snapshotGroupRef specifies the SnapshotGroup object + to which this SnapshotGroupContent object is bound. SnapshotGroup.Spec.SnapshotGroupContentName + field must reference to this SnapshotGroupContent's name for + the bidirectional binding to be valid. + Required. + properties: + apiVersion: + description: API version of the referent. + type: string + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + resourceVersion: + description: 'Specific resourceVersion to which this reference + is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency' + type: string + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + type: object + volumeSnapshotContentNames: + description: list of volumeSnapshotContentNames associated with this snapshotGroups + type: array + items: + type: string + required: + - deletionPolicy + - source + - snapshotGroupClassName + type: object + required: + - spec + type: object + served: true + storage: true \ No newline at end of file diff --git a/charts/hpe-csi-driver/crds/storage.hpe.com_snapshotgroups.yaml b/charts/hpe-csi-driver/crds/storage.hpe.com_snapshotgroups.yaml new file mode 100644 index 000000000..3372a7db7 --- /dev/null +++ b/charts/hpe-csi-driver/crds/storage.hpe.com_snapshotgroups.yaml @@ -0,0 +1,83 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: snapshotgroups.storage.hpe.com +spec: + conversion: + strategy: None + group: storage.hpe.com + names: + kind: SnapshotGroup + listKind: SnapshotGroupList + plural: snapshotgroups + singular: snapshotgroup + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: SnapshotGroup is a user's request for creating a snapshotgroup + properties: + apiVersion: + description: APIVersion defines the versioned schema of this representation + of an object. + type: string + kind: + description: 'Kind is a string value representing the REST resource + this object represents' + type: string + spec: + description: spec defines the desired characteristics of a snapshotGroup + requested by a user. + Required. + properties: + source: + description: source specifies where a snapshotGroup will be created. + This field is immutable after creation. Required. + properties: + kind: + description: kind of the source (VolumeGroup) is the only supported one. + type: string + apiGroup: + description: apiGroup of the source. Current supported is storage.hpe.com + type: string + name: + description: name specifies the volumeGroupName of the VolumeGroup object in the same namespace as the SnapshotGroup object where the snapshotGroup should be dynamically taken from. This field is immutable. + type: string + type: object + volumeSnapshotClassName: + description: name of the volumeSnapshotClass to create pre-provisioned snapshots + type: string + snapshotGroupClassName: + description: snapshotGroupClassName is the name of the SnapshotGroupClass requested by the SnapshotGroup. + type: string + snapshotGroupContentName: + description: snapshotGroupContentName is the name of the snapshotGroupContent the snapshotGroup is bound. + type: string + required: + - source + - volumeSnapshotClassName + - snapshotGroupClassName + type: object + status: + description: status represents the current information of a snapshotGroup. + properties: + creationTime: + description: creationTime is the timestamp when the point-in-time + snapshotGroup is taken by the underlying storage system. + format: date-time + type: string + phase: + description: the state of the snapshotgroup + enum: + - Pending + - Ready + - Failed + type: string + type: object + required: + - spec + type: object + served: true + storage: true \ No newline at end of file diff --git a/charts/hpe-csi-driver/crds/storage.hpe.com_volumegroupclasses.yaml b/charts/hpe-csi-driver/crds/storage.hpe.com_volumegroupclasses.yaml new file mode 100644 index 000000000..e201ec94e --- /dev/null +++ b/charts/hpe-csi-driver/crds/storage.hpe.com_volumegroupclasses.yaml @@ -0,0 +1,60 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: volumegroupclasses.storage.hpe.com +spec: + conversion: + strategy: None + group: storage.hpe.com + names: + kind: VolumeGroupClass + listKind: VolumeGroupClassList + plural: volumegroupclasses + singular: volumegroupclass + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: VolumeGroupClass specifies parameters that a underlying + storage system uses when creating a volumegroup. A specific VolumeGroupClass + is used by specifying its name in a VolumeGroup object. VolumeGroupClasses + are non-namespaced + properties: + apiVersion: + description: APIVersion defines the versioned schema of this representation + of an object. + type: string + deletionPolicy: + description: deletionPolicy determines whether a VolumeGroupContent + created through the VolumeGroupClass should be deleted when its + bound VolumeGroup is deleted. Supported values are "Retain" and + "Delete". "Retain" means that the VolumeGroupContent and its physical + volumeGroup on underlying storage system are kept. "Delete" means that + the VolumeGroupContent and its physical volumeGroup on underlying + storage system are deleted. Required. + enum: + - Delete + - Retain + type: string + provisioner: + description: provisioner is the name of the storage driver that handles this + VolumeGroupClass. Required. + type: string + kind: + description: Kind is a string value representing the REST resource + this object represents. + type: string + parameters: + additionalProperties: + type: string + description: parameters is a key-value map with storage driver specific + parameters for creating volumeGroups. These values are opaque to Kubernetes. + type: object + required: + - deletionPolicy + - provisioner + type: object + served: true + storage: true \ No newline at end of file diff --git a/charts/hpe-csi-driver/crds/storage.hpe.com_volumegroupcontents.yaml b/charts/hpe-csi-driver/crds/storage.hpe.com_volumegroupcontents.yaml new file mode 100644 index 000000000..d944909eb --- /dev/null +++ b/charts/hpe-csi-driver/crds/storage.hpe.com_volumegroupcontents.yaml @@ -0,0 +1,96 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: volumegroupcontents.storage.hpe.com +spec: + conversion: + strategy: None + group: storage.hpe.com + names: + kind: VolumeGroupContent + listKind: VolumeGroupContentList + plural: volumegroupcontents + singular: volumegroupcontent + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: VolumeGroupContent represents the actual "on-disk" volumeGroup + object in the underlying storage system + properties: + apiVersion: + description: APIVersion defines the versioned schema of this representation + of an object. + type: string + kind: + description: Kind is a string value representing the REST resource + this object represents. + type: string + spec: + description: spec defines properties of a VolumeGroupContent created + by the underlying storage system. Required. + properties: + deletionPolicy: + description: deletionPolicy determines whether this VolumeGroupContent + and its physical volumegroup on the underlying storage system should + be deleted when its bound VolumeGroup is deleted. Supported + values are "Retain" and "Delete". "Retain" means that the VolumeGroupContent + and its physical volumeGroup on underlying storage system are kept. + "Delete" means that the VolumeGroupContent and its physical + volumeGroup on underlying storage system are deleted. + Required. + enum: + - Delete + - Retain + type: string + source: + description: source specifies from where a volumeGroup will be created.Required. + properties: + volumeGroupHandle: + description: volumeGroupHandle specifies the volumeGroup Id + of a pre-existing volumeGroup on the underlying storage system. + This field is immutable. + type: string + type: object + volumeGroupClassName: + description: name of the VolumeGroupClass to which this volumeGroup belongs. + type: string + volumeGroupRef: + description: volumeGroupRef specifies the VolumeGroup object + to which this VolumeGroupContent object is bound. VolumeGroup.Spec.VolumeGroupContentName + field must reference to this VolumeGroupContent's name for + the bidirectional binding to be valid. + Required. + properties: + apiVersion: + description: API version of the referent. + type: string + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + resourceVersion: + description: 'Specific resourceVersion to which this reference + is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency' + type: string + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + type: object + required: + - deletionPolicy + - source + - volumeGroupClassName + type: object + required: + - spec + type: object + served: true + storage: true \ No newline at end of file diff --git a/charts/hpe-csi-driver/crds/storage.hpe.com_volumegroups.yaml b/charts/hpe-csi-driver/crds/storage.hpe.com_volumegroups.yaml new file mode 100644 index 000000000..862b4398a --- /dev/null +++ b/charts/hpe-csi-driver/crds/storage.hpe.com_volumegroups.yaml @@ -0,0 +1,69 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: volumegroups.storage.hpe.com +spec: + conversion: + strategy: None + group: storage.hpe.com + names: + kind: VolumeGroup + listKind: VolumeGroupList + plural: volumegroups + singular: volumegroup + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: VolumeGroup is a user's request for creating a volumegroup + properties: + apiVersion: + description: APIVersion defines the versioned schema of this representation + of an object. + type: string + kind: + description: 'Kind is a string value representing the REST resource + this object represents' + type: string + spec: + description: spec defines the desired characteristics of a volumeGroup + requested by a user. + Required. + properties: + volumeGroupClassName: + description: name of the volumeGroupClassName to create volumeGroups + type: string + persistentVolumeClaimNames: + description: persistentVolumeClaimNames are the name of the PVC associated with this volumeGroup. + type: array + items: + type: string + volumeGroupContentName: + description: volumeGroupContentName is the name of the volumeGroupContent to which the volumeGroup is bound. + type: string + required: + - volumeGroupClassName + type: object + status: + description: status represents the current information of a volumeGroup. + properties: + creationTime: + description: creationTime is the timestamp when the point-in-time + volumeGroup is taken by the underlying storage system. + format: date-time + type: string + phase: + description: the state of the volumegroup + enum: + - Pending + - Ready + - Failed + type: string + type: object + required: + - spec + type: object + served: true + storage: true \ No newline at end of file diff --git a/charts/hpe-csi-driver/questions.yml b/charts/hpe-csi-driver/questions.yml index ac34ad76f..dee65bb8e 100644 --- a/charts/hpe-csi-driver/questions.yml +++ b/charts/hpe-csi-driver/questions.yml @@ -1,3 +1,5 @@ +labels: + io.rancher.certified: partner questions: - variable: imagePullPolicy label: "ImagePullPolicy" @@ -18,12 +20,18 @@ questions: - variable: iscsi.chapUser label: "iSCSI CHAP Username" type: string - required: true + required: false description: "Specify username for iSCSI CHAP authentication" group: "HPE iSCSI settings" - variable: iscsi.chapPassword label: "iSCSI CHAP Password" type: password - required: true + required: false description: "Specify password for iSCSI CHAP authentication" group: "HPE iSCSI settings" +- variable: registry + label: "Registry" + type: string + default: "quay.io" + description: "Specify registry prefix (hostname[:port]) for CSI driver images" + group: "HPE CSI Driver settings" diff --git a/charts/hpe-csi-driver/templates/csi-driver-crd.yaml b/charts/hpe-csi-driver/templates/csi-driver-crd.yaml index 39fbe4292..61275fffa 100644 --- a/charts/hpe-csi-driver/templates/csi-driver-crd.yaml +++ b/charts/hpe-csi-driver/templates/csi-driver-crd.yaml @@ -1,14 +1,22 @@ -{{- if semverCompare ">=1.14.0" .Capabilities.KubeVersion.GitVersion }} + + + --- ################# CSI Driver ########### +{{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "18") }} +apiVersion: storage.k8s.io/v1 +{{- else if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "14") }} apiVersion: storage.k8s.io/v1beta1 +{{- end }} + +{{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "14") }} kind: CSIDriver metadata: name: csi.hpe.com spec: podInfoOnMount: true - {{- if semverCompare ">=1.16.0" .Capabilities.KubeVersion.GitVersion }} + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "16") }} volumeLifecycleModes: - Persistent - Ephemeral diff --git a/charts/hpe-csi-driver/templates/hpe-csi-controller.yaml b/charts/hpe-csi-driver/templates/hpe-csi-controller.yaml index 61705ec11..c1a3e3e39 100644 --- a/charts/hpe-csi-driver/templates/hpe-csi-controller.yaml +++ b/charts/hpe-csi-driver/templates/hpe-csi-controller.yaml @@ -21,7 +21,7 @@ spec: role: hpe-csi spec: serviceAccount: hpe-csi-controller-sa - {{- if semverCompare ">=1.17.0" .Capabilities.KubeVersion.GitVersion }} + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} priorityClassName: system-cluster-critical {{- end }} hostNetwork: true @@ -32,15 +32,15 @@ spec: value: "1" containers: - name: csi-provisioner - {{- if semverCompare "<=1.16.0" .Capabilities.KubeVersion.GitVersion }} - image: quay.io/k8scsi/csi-provisioner:v1.4.0 + {{- if .Values.registry }} + image: {{ .Values.registry }}/k8scsi/csi-provisioner:v1.5.0 {{- else }} image: quay.io/k8scsi/csi-provisioner:v1.5.0 {{- end }} args: - "--csi-address=$(ADDRESS)" - "--v=5" - {{- if semverCompare ">= 1.13.0" .Capabilities.KubeVersion.GitVersion }} + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "13") }} - "--timeout=30s" - "--worker-threads=16" {{- end }} @@ -52,8 +52,8 @@ spec: - name: socket-dir mountPath: /var/lib/csi/sockets/pluginproxy - name: csi-attacher - {{- if semverCompare "~1.13.0" .Capabilities.KubeVersion.GitVersion }} - image: quay.io/k8scsi/csi-attacher:v1.1.0 + {{- if .Values.registry }} + image: {{ .Values.registry }}/k8scsi/csi-attacher:v2.1.1 {{- else }} image: quay.io/k8scsi/csi-attacher:v2.1.1 {{- end }} @@ -67,23 +67,31 @@ spec: volumeMounts: - name: socket-dir mountPath: /var/lib/csi/sockets/pluginproxy - {{- if semverCompare ">=1.17.0" .Capabilities.KubeVersion.GitVersion }} + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} - name: csi-snapshotter - image: quay.io/k8scsi/csi-snapshotter:v2.0.1 + {{- if .Values.registry }} + image: {{ .Values.registry }}/k8scsi/csi-snapshotter:v3.0.2 + {{- else }} + image: quay.io/k8scsi/csi-snapshotter:v3.0.2 + {{- end }} args: - "--v=5" - "--csi-address=$(ADDRESS)" env: - name: ADDRESS value: /var/lib/csi/sockets/pluginproxy/csi.sock - imagePullPolicy: "Always" + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} volumeMounts: - name: socket-dir mountPath: /var/lib/csi/sockets/pluginproxy/ {{- end }} - {{- if semverCompare ">=1.15.0" .Capabilities.KubeVersion.GitVersion }} + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "15") }} - name: csi-resizer + {{- if .Values.registry }} + image: {{ .Values.registry }}/k8scsi/csi-resizer:v0.4.0 + {{- else }} image: quay.io/k8scsi/csi-resizer:v0.4.0 + {{- end }} args: - "--csi-address=$(ADDRESS)" - "--v=5" @@ -96,7 +104,11 @@ spec: mountPath: /var/lib/csi/sockets/pluginproxy {{- end }} - name: hpe-csi-driver - image: hpestorage/csi-driver:v1.3.0 + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/csi-driver:v1.4.0 + {{- else }} + image: quay.io/hpestorage/csi-driver:v1.4.0 + {{- end }} args : - "--endpoint=$(CSI_ENDPOINT)" - "--flavor=kubernetes" @@ -120,7 +132,43 @@ spec: - name: root-dir mountPath: /host - name: csi-volume-mutator - image: quay.io/hpestorage/volume-mutator:v1.0.0 + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/volume-mutator:v1.2.0 + {{- else }} + image: quay.io/hpestorage/volume-mutator:v1.2.0 + {{- end }} + args: + - "--v=5" + - "--csi-address=$(ADDRESS)" + env: + - name: ADDRESS + value: /var/lib/csi/sockets/pluginproxy/csi-extensions.sock + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + volumeMounts: + - name: socket-dir + mountPath: /var/lib/csi/sockets/pluginproxy/ + - name: csi-volume-group-snapshotter + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/volume-group-snapshotter:v1.0.0 + {{- else }} + image: quay.io/hpestorage/volume-group-snapshotter:v1.0.0 + {{- end }} + args: + - "--v=5" + - "--csi-address=$(ADDRESS)" + env: + - name: ADDRESS + value: /var/lib/csi/sockets/pluginproxy/csi-extensions.sock + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + volumeMounts: + - name: socket-dir + mountPath: /var/lib/csi/sockets/pluginproxy/ + - name: csi-volume-group-provisioner + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/volume-group-provisioner:v1.0.0 + {{- else }} + image: quay.io/hpestorage/volume-group-provisioner:v1.0.0 + {{- end }} args: - "--v=5" - "--csi-address=$(ADDRESS)" @@ -132,7 +180,11 @@ spec: - name: socket-dir mountPath: /var/lib/csi/sockets/pluginproxy/ - name: csi-extensions - image: quay.io/hpestorage/csi-extensions:v1.0.0 + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/csi-extensions:v1.2.0 + {{- else }} + image: quay.io/hpestorage/csi-extensions:v1.2.0 + {{- end }} args: - "--v=5" - "--endpoint=$(CSI_ENDPOINT)" diff --git a/charts/hpe-csi-driver/templates/hpe-csi-node.yaml b/charts/hpe-csi-driver/templates/hpe-csi-node.yaml index 8a3953638..d6657199b 100644 --- a/charts/hpe-csi-driver/templates/hpe-csi-node.yaml +++ b/charts/hpe-csi-driver/templates/hpe-csi-node.yaml @@ -20,7 +20,7 @@ spec: role: hpe-csi spec: serviceAccount: hpe-csi-node-sa - {{- if semverCompare ">=1.17.0" .Capabilities.KubeVersion.GitVersion }} + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} priorityClassName: system-node-critical {{- end }} hostNetwork: true @@ -31,21 +31,21 @@ spec: value: "1" containers: - name: csi-node-driver-registrar - image: quay.io/k8scsi/csi-node-driver-registrar:v1.1.0 + {{- if .Values.registry }} + image: {{ .Values.registry }}/k8scsi/csi-node-driver-registrar:v2.0.1 + {{- else }} + image: quay.io/k8scsi/csi-node-driver-registrar:v2.0.1 + {{- end}} args: - "--csi-address=$(ADDRESS)" - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" - "--v=5" - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/csi.hpe.com /registration/csi.hpe.com-reg.sock"] env: - name: ADDRESS value: /csi/csi.sock - name: DRIVER_REG_SOCK_PATH value: /var/lib/kubelet/plugins/csi.hpe.com/csi.sock - {{- if semverCompare "~1.12.0" .Capabilities.KubeVersion.GitVersion }} + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( eq ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "12") }} - name: KUBE_NODE_NAME valueFrom: fieldRef: @@ -55,11 +55,15 @@ spec: imagePullPolicy: "Always" volumeMounts: - name: plugin-dir - mountPath: /csi/ + mountPath: /csi - name: registration-dir mountPath: /registration - name: hpe-csi-driver - image: hpestorage/csi-driver:v1.3.0 + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/csi-driver:v1.4.0 + {{- else }} + image: quay.io/hpestorage/csi-driver:v1.4.0 + {{- end}} args : - "--endpoint=$(CSI_ENDPOINT)" - "--node-service" @@ -121,9 +125,11 @@ spec: - name: registration-dir hostPath: path: /var/lib/kubelet/plugins_registry + type: Directory - name: plugin-dir hostPath: path: /var/lib/kubelet/plugins/csi.hpe.com + type: DirectoryOrCreate - name: pods-mount-dir hostPath: path: /var/lib/kubelet diff --git a/charts/hpe-csi-driver/templates/hpe-csi-rbac.yaml b/charts/hpe-csi-driver/templates/hpe-csi-rbac.yaml index bbde8540e..1da7d7c2e 100644 --- a/charts/hpe-csi-driver/templates/hpe-csi-rbac.yaml +++ b/charts/hpe-csi-driver/templates/hpe-csi-rbac.yaml @@ -46,7 +46,7 @@ rules: - apiGroups: [""] resources: ["events"] verbs: ["list", "watch", "create", "update", "patch"] -{{- if semverCompare ">=1.17.0" .Capabilities.KubeVersion.GitVersion }} +{{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} - apiGroups: ["snapshot.storage.k8s.io"] resources: ["volumesnapshots"] verbs: ["get", "list"] @@ -98,10 +98,10 @@ rules: - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list"] - {{- if semverCompare "~1.12.0" .Capabilities.KubeVersion.GitVersion }} + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( eq ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "12") }} resources: ["csinodeinfos"] verbs: ["get", "list", "watch"] - {{- else if semverCompare "~1.13.0" .Capabilities.KubeVersion.GitVersion }} + {{- else if and (eq .Capabilities.KubeVersion.Major "1") ( eq ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "13") }} - apiGroups: ["csi.storage.k8s.io"] resources: ["csinodeinfos"] verbs: ["get", "list", "watch"] @@ -127,7 +127,7 @@ roleRef: apiGroup: rbac.authorization.k8s.io -{{- if semverCompare ">=1.17.0" .Capabilities.KubeVersion.GitVersion }} +{{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} --- kind: ClusterRole @@ -186,8 +186,7 @@ roleRef: {{- end }} - -{{- if semverCompare ">=1.15.0" .Capabilities.KubeVersion.GitVersion }} +{{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "15") }} --- # Resizer must be able to work with PVCs, PVs, SCs. kind: ClusterRole @@ -260,6 +259,154 @@ roleRef: apiGroup: rbac.authorization.k8s.io +--- +# cluster role to support volumegroup +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-volumegroup-role +rules: + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroups"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroupcontents"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroupclasses"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroups/status"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroupcontents/status"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: [""] + resources: ["namespaces"] + verbs: ["get", "list", "create"] + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["create", "get", "list", "watch", "update", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims/status"] + verbs: ["update", "patch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] + - apiGroups: ["apiextensions.k8s.io"] + resources: ["customresourcedefinitions"] + verbs: ["create", "list", "watch", "delete", "get", "update"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create"] + +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-volumegroup-binding +subjects: + - kind: ServiceAccount + name: hpe-csi-controller-sa + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: hpe-csi-volumegroup-role + apiGroup: rbac.authorization.k8s.io + +--- +# cluster role to support snapshotgroup +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-snapshotgroup-role +rules: + - apiGroups: ["storage.hpe.com"] + resources: ["snapshotgroups"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["snapshotgroupcontents"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["snapshotgroupclasses"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["snapshotgroups/status"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["snapshotgroupcontents/status"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: [""] + resources: ["namespaces"] + verbs: ["get", "list", "create"] + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["create", "get", "list", "watch", "update", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims/status"] + verbs: ["update", "patch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] + - apiGroups: ["apiextensions.k8s.io"] + resources: ["customresourcedefinitions"] + verbs: ["create", "list", "watch", "delete", "get", "update"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroups"] + verbs: ["get", "list", "watch"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroupcontents"] + verbs: ["get", "list", "watch"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroupclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotcontents"] + verbs: ["create", "get", "list", "watch", "update", "delete"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotcontents/status"] + verbs: ["create", "get", "list", "watch", "update", "delete"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshots"] + verbs: ["create", "get", "list", "watch", "update", "delete"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshots/status"] + verbs: ["update"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotclasses"] + verbs: ["get", "list"] + +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-snapshotgroup-binding +subjects: + - kind: ServiceAccount + name: hpe-csi-controller-sa + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: hpe-csi-snapshotgroup-role + apiGroup: rbac.authorization.k8s.io + --- # mutator must be able to work with PVCs, PVs, SCs. kind: ClusterRole @@ -295,7 +442,8 @@ subjects: - kind: ServiceAccount name: hpe-csi-controller-sa # replace with non-default namespace name - namespace: kube-system + namespace: {{ .Release.Namespace }} + roleRef: kind: ClusterRole name: csi-mutator-role @@ -307,7 +455,7 @@ roleRef: kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: - namespace: kube-system + namespace: {{ .Release.Namespace }} name: csi-mutator-cfg rules: - apiGroups: ["coordination.k8s.io"] @@ -319,11 +467,12 @@ kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: csi-mutator-role-cfg - namespace: kube-system + namespace: {{ .Release.Namespace }} subjects: - kind: ServiceAccount name: hpe-csi-controller-sa - namespace: kube-system + namespace: {{ .Release.Namespace }} + roleRef: kind: Role name: csi-mutator-cfg @@ -347,6 +496,12 @@ rules: - apiGroups: ["storage.hpe.com"] resources: ["hpereplicationdeviceinfos"] verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["hpevolumegroupinfos"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["hpesnapshotgroupinfos"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] - apiGroups: [""] resources: ["pods"] verbs: ["get", "list"] diff --git a/charts/hpe-csi-driver/templates/nimble-csp.yaml b/charts/hpe-csi-driver/templates/nimble-csp.yaml index a2efbe5fb..332b95d5b 100644 --- a/charts/hpe-csi-driver/templates/nimble-csp.yaml +++ b/charts/hpe-csi-driver/templates/nimble-csp.yaml @@ -32,12 +32,16 @@ spec: app: nimble-csp spec: serviceAccount: hpe-csp-sa - {{- if semverCompare ">=1.17.0" .Capabilities.KubeVersion.GitVersion }} + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} priorityClassName: system-cluster-critical {{- end }} containers: - name: nimble-csp - image: hpestorage/nimble-csp:v1.3.0 + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/nimble-csp:v1.4.0 + {{- else }} + image: quay.io/hpestorage/nimble-csp:v1.4.0 + {{- end }} imagePullPolicy: {{ .Values.imagePullPolicy | quote }} ports: - containerPort: 8080 diff --git a/charts/hpe-csi-driver/templates/primera-3par-csp.yaml b/charts/hpe-csi-driver/templates/primera-3par-csp.yaml index 2e13db55e..5b1c65e2d 100644 --- a/charts/hpe-csi-driver/templates/primera-3par-csp.yaml +++ b/charts/hpe-csi-driver/templates/primera-3par-csp.yaml @@ -34,12 +34,16 @@ spec: app: primera3par-csp spec: serviceAccount: hpe-csp-sa - {{- if semverCompare ">=1.17.0" .Capabilities.KubeVersion.GitVersion }} + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} priorityClassName: system-cluster-critical {{- end }} containers: - name: primera3par-csp - image: hpestorage/hpe3parprimera-csp:v1.1.0 + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/hpe3parprimera-csp:v1.2.0 + {{- else }} + image: quay.io/hpestorage/hpe3parprimera-csp:v1.2.0 + {{- end }} imagePullPolicy: {{ .Values.imagePullPolicy | quote }} ports: - containerPort: 8080 @@ -58,4 +62,4 @@ spec: - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists - tolerationSeconds: 30 \ No newline at end of file + tolerationSeconds: 30 diff --git a/charts/hpe-csi-driver/templates/sc.yaml b/charts/hpe-csi-driver/templates/sc.yaml index 8d34426d8..a864865bf 100644 --- a/charts/hpe-csi-driver/templates/sc.yaml +++ b/charts/hpe-csi-driver/templates/sc.yaml @@ -24,7 +24,7 @@ metadata: {{- end }} {{- end }} provisioner: csi.hpe.com -{{- if semverCompare ">=1.15.0" .Capabilities.KubeVersion.GitVersion }} +{{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "15") }} allowVolumeExpansion: {{ $sc.allowVolumeExpansion }} {{- end }} parameters: diff --git a/charts/hpe-csi-driver/values.yaml b/charts/hpe-csi-driver/values.yaml index a05ed5b12..edf47eaee 100644 --- a/charts/hpe-csi-driver/values.yaml +++ b/charts/hpe-csi-driver/values.yaml @@ -17,4 +17,8 @@ disableNodeConformance: false # values for CHAP Authentication iscsi: chapUser: "" - chapPassword: "" \ No newline at end of file + chapPassword: "" + +# registry prefix for hpe csi images +registry: "quay.io" + diff --git a/index.yaml b/index.yaml index 01bd4ee04..606e7cda5 100644 --- a/index.yaml +++ b/index.yaml @@ -306,6 +306,29 @@ entries: - assets/haproxy/haproxy-1.4.300.tgz version: 1.4.300 hpe-csi-driver: + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/release-name: hpe-csi-driver + apiVersion: v1 + appVersion: 1.4.0 + created: "2021-02-25T22:46:37.811643961Z" + description: A Helm chart for installing the HPE CSI Driver for Kubernetes + digest: 487dca3d6bdf6961bf29425945b40974667a67723d2a8d9edbca87285e628793 + home: https://hpe.com/storage/containers + icon: https://raw.githubusercontent.com/hpe-storage/co-deployments/master/docs/assets/hpedev.png + keywords: + - HPE + - Storage + - StorageClass + maintainers: + - email: hpe-containers-dev@hpe.com + name: raunakkumar + name: hpe-csi-driver + sources: + - https://scod.hpedev.io/csi_driver + urls: + - assets/hpe-csi-driver/hpe-csi-driver-1.4.200.tgz + version: 1.4.200 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/release-name: hpe-csi-driver @@ -527,4 +550,4 @@ entries: urls: - assets/sysdig/sysdig-1.9.200.tgz version: 1.9.200 -generated: "2021-02-25T20:17:31.425563557Z" +generated: "2021-02-25T22:46:37.810270792Z" diff --git a/sha256sum/hpe-csi-driver/hpe-csi-driver.sum b/sha256sum/hpe-csi-driver/hpe-csi-driver.sum index d9a339841..7c978c859 100644 --- a/sha256sum/hpe-csi-driver/hpe-csi-driver.sum +++ b/sha256sum/hpe-csi-driver/hpe-csi-driver.sum @@ -1,2 +1,2 @@ -6a2f70133586be6504959a95c67afe48ec5209b83fcf4759932debfe8f56f273 packages/hpe-csi-driver/hpe-csi-driver.patch -29d960d6d8b6fa6b1a353f6abc8e219df090f3a544d05e4f99f45fd9c0ce3dc5 packages/hpe-csi-driver/package.yaml +0a18dff42f55ecf52ccad858dc318fd2b0f08439b36f3d74f1f79e1e0da0b6fe packages/hpe-csi-driver/hpe-csi-driver.patch +132c211126b8c829d4b30ccc4019c0593d7e2bf70efee4eb22228c61a1ad1198 packages/hpe-csi-driver/package.yaml