-
Notifications
You must be signed in to change notification settings - Fork 10
V1.2.7 && v1.2.8 Helm chart addition #59
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
Open
ravi100k
wants to merge
6
commits into
hammer-space:master
Choose a base branch
from
ravi100k:v1.2.7(use-bind-mount)
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 5 commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
4a7a941
v1.2.7 Heml chart addition
ravikumar-100k 8c8e816
V1.2.7-Helm chart
ravikumar-100k b681528
Added v1.2.8 helm chart with new update of container version.
ravikumar-100k 186a26c
Revert unsued code changes.
ravikumar-100k 37f1e0b
Added update v1.2.8 helm rbac rules.
ravi100k 4fb34d6
Update the document for developer and user to install
ravi100k File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| # Hammerspace CSI Helm Charts | ||
|
|
||
| This repository provides Helm charts to deploy the Hammerspace CSI driver components in a Kubernetes cluster. It supports deploying both **Controller** and **Node** plugins, along with configurable options such as timeouts and retry intervals. | ||
|
|
||
| --- | ||
| ## 🚀 How to Deploy the Chart | ||
|
|
||
| 1. **Add the Helm repository** (Published to GitHub Pages): | ||
| ```bash | ||
| helm repo add hscsi https://github.com/hammer-space/csi-plugin/deploy/helm/repo | ||
| helm repo update | ||
| ``` | ||
|
|
||
| 2. **Install the chart into your cluster:** | ||
| ``` | ||
| helm install hscsi hscsi/ --namespace kube-system --create-namespace | ||
| ``` | ||
| --- | ||
|
|
||
| ## 📦 How to Package a New Version | ||
ravi100k marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| #### Navigate to the chart directory: | ||
| ``` | ||
| (v1.2.8) will be changed to dir name for which package need to be created | ||
| cd deploy/helm/repo/v1.2.8 | ||
| ``` | ||
| #### Create new package | ||
| ``` | ||
| helm package .hammerspace-helm-chart/ | ||
| ``` | ||
|
|
||
| #### Update the index.yaml | ||
| ``` | ||
| cd ../repo | ||
| helm repo index . | ||
| ``` | ||
|
|
||
| #### If hosted on GitHub Pages: | ||
|
|
||
| Ensure index.yaml and .tgz files are committed to the branch (typically gh-pages) | ||
|
|
||
| Add or update artifacthub-repo.yml next to index.yaml for Artifact Hub metadata | ||
|
|
||
| #### How to Create a New Helm Chart | ||
| If you need to add a new chart: | ||
| ``` | ||
| helm create new-chart | ||
| ``` | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| repositoryID: ba19dd93-de8e-41da-b66c-4f5c557ee0f3 # use `uuidgen` to generate | ||
| name: hammerspace-csi-chart | ||
| displayName: Hammerspace CSI Helm Chart | ||
| description: Helm chart for deploying the Hammerspace CSI plugin | ||
| url: https://github.com/hammer-space/csi-plugin/deploy/helm/repo |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| apiVersion: v1 | ||
| entries: | ||
| hammerspace-csi: | ||
| - apiVersion: v2 | ||
| appVersion: v1.2.8 | ||
| created: "2025-08-22T06:21:31.000723783Z" | ||
| description: A Helm chart for the Hammerspace CSI driver | ||
| digest: c8d82095e2a9323ae7061faa7e6b971ce9df1c1685d0739020f8e2ccb558e3a1 | ||
| icon: https://www.hammerspace.com/favicon.ico | ||
| name: hammerspace-csi | ||
| urls: | ||
| - v1.2.8/hammerspace-csi-1.2.8.tgz | ||
| version: 1.2.8 | ||
| - apiVersion: v2 | ||
| appVersion: v1.2.7 | ||
| created: "2025-08-22T06:21:31.000159223Z" | ||
| description: A Helm chart for the Hammerspace CSI driver | ||
| digest: 342c39ef85e06e4ed13fdb2d392bcafbb73e64525e0036f15644d0af35f6412f | ||
| icon: https://www.hammerspace.com/favicon.ico | ||
| name: hammerspace-csi | ||
| urls: | ||
| - v1.2.7/hammerspace-csi-1.2.7.tgz | ||
| version: 1.2.7 | ||
| generated: "2025-08-22T06:21:30.999427348Z" |
Binary file not shown.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| apiVersion: v2 | ||
| name: hammerspace-csi | ||
| description: A Helm chart for the Hammerspace CSI driver | ||
| version: 1.2.7 | ||
| appVersion: "v1.2.7" | ||
| icon: https://www.hammerspace.com/favicon.ico |
9 changes: 9 additions & 0 deletions
9
deploy/helm/repo/v1.2.7/hammerspace-helm-chart/templates/configmap.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| apiVersion: v1 | ||
| kind: ConfigMap | ||
| metadata: | ||
| name: csi-env-config | ||
| namespace: {{ .Values.namespace | default "kube-system" }} | ||
| data: | ||
| MOUNT_CHECK_TIMEOUT: "{{ .Values.env.MOUNT_CHECK_TIMEOUT }}" | ||
| UNMOUNT_RETRY_COUNT: "{{ .Values.env.UNMOUNT_RETRY_COUNT }}" | ||
| UNMOUNT_RETRY_INTERVAL: "{{ .Values.env.UNMOUNT_RETRY_INTERVAL }}" |
94 changes: 94 additions & 0 deletions
94
deploy/helm/repo/v1.2.7/hammerspace-helm-chart/templates/controller/rbac.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,94 @@ | ||
| # This file is part of the Hammerspace CSI Driver project. | ||
| # It defines the RBAC roles and bindings for the CSI provisioner component. | ||
| # The provisioner is responsible for creating and managing PersistentVolumes | ||
| # based on PersistentVolumeClaims in Kubernetes. | ||
| apiVersion: v1 | ||
| kind: ServiceAccount | ||
| metadata: | ||
| name: csi-provisioner | ||
| namespace: {{ .Values.namespace }} | ||
| --- | ||
| # This ClusterRole defines the permissions required by the CSI provisioner. | ||
| # It allows the provisioner to manage PersistentVolumes, PersistentVolumeClaims, | ||
| # and other related resources in the Kubernetes cluster. | ||
| # It also allows the provisioner to interact with storage classes and volume snapshots. | ||
| # The ClusterRole is bound to the csi-provisioner ServiceAccount. | ||
| # This ClusterRoleBinding binds the csi-provisioner ServiceAccount to the csi-provisioner ClusterRole. | ||
| # This allows the provisioner to perform the actions defined in the ClusterRole. | ||
| # The ClusterRoleBinding is created in the same namespace as the provisioner ServiceAccount. | ||
| # The ClusterRoleBinding is necessary for the provisioner to have the required permissions | ||
| # to manage storage resources in the cluster. | ||
| # The ClusterRoleBinding is created in the same namespace as the provisioner ServiceAccount. | ||
| # This ClusterRoleBinding is specifically for the provisioner to manage volume attachments. | ||
| # It allows the provisioner to update the status of volume attachments. | ||
| # This is necessary for the provisioner to properly manage the lifecycle of volumes | ||
| # and ensure that they are correctly attached to nodes. | ||
| # The ClusterRoleBinding is created in the same namespace as the provisioner ServiceAccount. | ||
| # This ClusterRoleBinding is specifically for the provisioner to manage volume attachment status. | ||
| # It allows the provisioner to update the status of volume attachments. | ||
| # This is necessary for the provisioner to properly manage the lifecycle of volumes | ||
| # and ensure that they are correctly attached to nodes. | ||
| # The ClusterRoleBinding is created in the same namespace as the provisioner ServiceAccount. | ||
| # The ClusterRoleBinding is necessary for the provisioner to have the required permissions | ||
| # to manage storage resources in the cluster. | ||
|
|
||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: ClusterRole | ||
| metadata: | ||
| name: csi-provisioner | ||
| rules: | ||
| - apiGroups: [""] | ||
| resources: ["pods", "persistentvolumes", "persistentvolumeclaims", "nodes", "events", "endpoints", "secrets"] | ||
| verbs: ["list", "watch", "get", "create", "delete", "update", "patch"] | ||
| - apiGroups: ["storage.k8s.io", "snapshot.storage.k8s.io", "apiextensions.k8s.io"] | ||
| resources: ["storageclasses", "volumeattachments", "volumeattachments/status", "volumesnapshotcontents/status", "volumesnapshots", "volumesnapshotcontents", "volumesnapshotclasses", "customresourcedefinitions"] | ||
| verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] | ||
| --- | ||
| # This ClusterRoleBinding binds the csi-provisioner ServiceAccount to the csi-provisioner ClusterRole. | ||
| # It allows the provisioner to perform the actions defined in the ClusterRole. | ||
| # The ClusterRoleBinding is created in the same namespace as the provisioner ServiceAccount. | ||
| # This ClusterRoleBinding is necessary for the provisioner to have the required permissions | ||
| # to manage storage resources in the cluster. | ||
| # The ClusterRoleBinding is created in the same namespace as the provisioner ServiceAccount. | ||
| # This ClusterRoleBinding is specifically for the provisioner to manage volume attachments. | ||
| # It allows the provisioner to update the status of volume attachments. | ||
| # This is necessary for the provisioner to properly manage the lifecycle of volumes | ||
| # and ensure that they are correctly attached to nodes. | ||
| # The ClusterRoleBinding is created in the same namespace as the provisioner ServiceAccount. | ||
| # This ClusterRoleBinding is specifically for the provisioner to manage volume attachment status. | ||
| # It allows the provisioner to update the status of volume attachments. | ||
| # This is necessary for the provisioner to properly manage the lifecycle of volumes | ||
| # and ensure that they are correctly attached to nodes. | ||
| # The ClusterRoleBinding is created in the same namespace as the provisioner ServiceAccount. | ||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: ClusterRoleBinding | ||
| metadata: | ||
| name: csi-provisioner-binding | ||
| subjects: | ||
| - kind: ServiceAccount | ||
| name: csi-provisioner | ||
| namespace: {{ .Values.namespace }} | ||
| roleRef: | ||
| kind: ClusterRole | ||
| name: csi-provisioner | ||
| apiGroup: rbac.authorization.k8s.io | ||
| --- | ||
| # This ClusterRoleBinding is specifically for the provisioner to manage volume attachment status. | ||
| # It allows the provisioner to update the status of volume attachments. | ||
| # This is necessary for the provisioner to properly manage the lifecycle of volumes | ||
| # and ensure that they are correctly attached to nodes. | ||
| # The ClusterRoleBinding is created in the same namespace as the provisioner ServiceAccount. | ||
| # This ClusterRoleBinding is necessary for the provisioner to have the required permissions | ||
| # to manage storage resources in the cluster. | ||
| apiVersion: rbac.authorization.k8s.io/v1 | ||
| kind: ClusterRoleBinding | ||
| metadata: | ||
| name: csi-provisioner | ||
| subjects: | ||
| - kind: ServiceAccount | ||
| name: csi-provisioner | ||
| namespace: {{ .Values.namespace }} | ||
| roleRef: | ||
| kind: ClusterRole | ||
| name: csi-provisioner | ||
| apiGroup: rbac.authorization.k8s.io |
24 changes: 24 additions & 0 deletions
24
deploy/helm/repo/v1.2.7/hammerspace-helm-chart/templates/controller/service.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| # This file is part of the Hammerspace CSI Driver Helm Chart. | ||
| # It defines the service for the CSI provisioner component. | ||
| # The service is a headless service that allows the StatefulSet to manage the pods. | ||
| kind: Service | ||
| apiVersion: v1 | ||
| metadata: | ||
| name: csi-provisioner | ||
| namespace: {{ .Values.namespace }} | ||
| labels: | ||
| app: csi-provisioner | ||
| spec: | ||
| type: ClusterIP | ||
| clusterIP: None | ||
| # This is needed for the StatefulSet to work properly | ||
| # as it uses a headless service to manage the pods. | ||
| # The StatefulSet will create a DNS entry for the pods | ||
| # in the format <pod-name>.<service-name>.<namespace>.svc.cluster.local | ||
| # where <pod-name> is the name of the pod, <service-name> is the name of the service, | ||
| # and <namespace> is the namespace of the service. | ||
| # This allows the pods to communicate with each other using DNS. | ||
| # The StatefulSet will also create a DNS entry for the service in the format <service-name>.<namespace>.svc.cluster.local | ||
| # which allows the pods to communicate with the service | ||
| selector: | ||
| app: csi-provisioner |
113 changes: 113 additions & 0 deletions
113
deploy/helm/repo/v1.2.7/hammerspace-helm-chart/templates/controller/statefulset.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,113 @@ | ||
| apiVersion: apps/v1 | ||
| kind: StatefulSet | ||
| metadata: | ||
| name: csi-provisioner | ||
| namespace: {{ .Values.namespace }} | ||
| spec: | ||
| serviceName: "csi-provisioner" | ||
| replicas: {{ .Values.controller.replicas }} | ||
| selector: | ||
| matchLabels: | ||
| app: csi-provisioner | ||
| template: | ||
| metadata: | ||
| labels: | ||
| app: csi-provisioner | ||
| spec: | ||
| serviceAccountName: csi-provisioner | ||
| hostNetwork: true | ||
| containers: | ||
| - name: csi-provisioner | ||
| imagePullPolicy: Always | ||
| image: {{ .Values.image.provisioner }} | ||
| args: | ||
| - "--csi-address=$(CSI_ENDPOINT)" | ||
| - "--timeout=60s" # Recommended as shares may take some time to create | ||
| - "--v=5" | ||
| env: | ||
| - name: CSI_ENDPOINT | ||
| value: /var/lib/csi/hs-csi.sock | ||
| volumeMounts: | ||
| - name: socket-dir | ||
| mountPath: /var/lib/csi/ | ||
| - name: csi-attacher | ||
| imagePullPolicy: Always | ||
| image: {{ .Values.image.attacher }} | ||
| args: | ||
| - "--csi-address=$(CSI_ENDPOINT)" | ||
| - "--v=5" | ||
| env: | ||
| - name: CSI_ENDPOINT | ||
| value: /var/lib/csi/hs-csi.sock | ||
| volumeMounts: | ||
| - name: socket-dir | ||
| mountPath: /var/lib/csi/ | ||
| - name: csi-snapshotter | ||
| imagePullPolicy: Always | ||
| image: {{ .Values.image.snapshotter }} | ||
| args: | ||
| - "--csi-address=$(CSI_ENDPOINT)" | ||
| - "--v=5" | ||
| env: | ||
| - name: CSI_ENDPOINT | ||
| value: /var/lib/csi/hs-csi.sock | ||
| volumeMounts: | ||
| - name: socket-dir | ||
| mountPath: /var/lib/csi/ | ||
| - name: csi-resizer | ||
| imagePullPolicy: Always | ||
| image: {{ .Values.image.resizer }} | ||
| args: | ||
| - "--csi-address=$(CSI_ENDPOINT)" | ||
| - "--v=5" | ||
| env: | ||
| - name: CSI_ENDPOINT | ||
| value: /var/lib/csi/hs-csi.sock | ||
| volumeMounts: | ||
| - name: socket-dir | ||
| mountPath: /var/lib/csi/ | ||
| - name: hs-csi-plugin-controller | ||
| securityContext: | ||
| privileged: true | ||
| capabilities: | ||
| add: ["SYS_ADMIN"] | ||
| allowPrivilegeEscalation: true | ||
| imagePullPolicy: Always | ||
| image: {{ .Values.image.csiPlugin }} | ||
| envFrom: | ||
| - configMapRef: | ||
| name: csi-env-config | ||
| env: | ||
| - name: CSI_ENDPOINT | ||
| value: /var/lib/csi/hs-csi.sock | ||
| - name: HS_USERNAME | ||
| valueFrom: | ||
| secretKeyRef: | ||
| name: com.hammerspace.csi.credentials | ||
| key: username | ||
| - name: HS_PASSWORD | ||
| valueFrom: | ||
| secretKeyRef: | ||
| name: com.hammerspace.csi.credentials | ||
| key: password | ||
| - name: HS_ENDPOINT | ||
| valueFrom: | ||
| secretKeyRef: | ||
| name: com.hammerspace.csi.credentials | ||
| key: endpoint | ||
| - name: HS_TLS_VERIFY | ||
| value: "false" | ||
| - name: CSI_MAJOR_VERSION | ||
| value: "1" | ||
| volumeMounts: | ||
| - name: socket-dir | ||
| mountPath: /var/lib/csi/ | ||
| - name: staging-dir | ||
| mountPath: /tmp | ||
| mountPropagation: Bidirectional | ||
| volumes: | ||
| - name: socket-dir | ||
| emptyDir: {} | ||
| - name: staging-dir | ||
| hostPath: | ||
| path: /tmp |
10 changes: 10 additions & 0 deletions
10
deploy/helm/repo/v1.2.7/hammerspace-helm-chart/templates/csidriver.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| apiVersion: storage.k8s.io/v1 | ||
| kind: CSIDriver | ||
| metadata: | ||
| name: com.hammerspace.csi | ||
| spec: | ||
| podInfoOnMount: true | ||
| requiresRepublish: true | ||
| volumeLifecycleModes: | ||
| - Persistent | ||
| storageCapacity: true |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This doesn't look correct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There should be instructions on how to create and use
values.ymlfrom a user point of viewThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update this document as well as added developer .md file for creating new package