Skip to content

Commit

Permalink
Added helm chart and yaml file for HPE COSI Driver (#411)
Browse files Browse the repository at this point in the history
* added helm chart for COSI

Signed-off-by: Karishma Parakh <[email protected]>

* Addressed review comments

Signed-off-by: Karishma Parakh <[email protected]>

* Addressed review comments

Signed-off-by: Karishma Parakh <[email protected]>

* updated tarball and index.yaml

Signed-off-by: Karishma Parakh <[email protected]>

* addressed review comments

Signed-off-by: Karishma Parakh <[email protected]>

* added values.yaml under values/cosi-driver

Signed-off-by: Karishma Parakh <[email protected]>

---------

Signed-off-by: Karishma Parakh <[email protected]>
  • Loading branch information
karishma120693 authored Jan 30, 2025
1 parent 414b293 commit 4769a7d
Show file tree
Hide file tree
Showing 13 changed files with 801 additions and 1 deletion.
Binary file added docs/hpe-cosi-driver-1.0.0.tgz
Binary file not shown.
43 changes: 42 additions & 1 deletion docs/index.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,47 @@ entries:
urls:
- hpe-array-exporter-1.0.0-beta.tgz
version: 1.0.0-beta
hpe-cosi-driver:
- annotations:
artifacthub.io/category: storage
artifacthub.io/containsSecurityUpdates: "false"
artifacthub.io/license: Apache-2.0
artifacthub.io/links: |
- name: Documentation
url: https://scod.hpedev.io/cosi_driver
- name: Chart Source
url: https://github.com/hpe-storage/co-deployments
artifacthub.io/prerelease: "true"
artifacthub.io/recommendations: |
- url: https://artifacthub.io/packages/helm/hpe-storage/hpe-csi-driver
apiVersion: v2
appVersion: 1.0.0
created: "2025-01-28T09:33:44.44774002Z"
description: A Helm chart for installing the HPE COSI Driver for Kubernetes
digest: 0a2bf93afa286482235e96b049c3e4010214ba02bd4366a42f363d2a07d0a8a7
home: https://hpe.com/storage/containers
icon: https://raw.githubusercontent.com/hpe-storage/co-deployments/master/docs/assets/hpedev.png
keywords:
- HPE
- Object
- Storage
- COSI
maintainers:
- email: [email protected]
name: maheshke
- email: [email protected]
name: narayviv
- email: [email protected]
name: gauriKrishnan
- email: [email protected]
name: mrigaya
name: hpe-cosi-driver
sources:
- https://github.com/hpe-storage/cosi-driver
type: application
urls:
- hpe-cosi-driver-1.0.0.tgz
version: 1.0.0
hpe-csi-driver:
- annotations:
artifacthub.io/category: storage
Expand Down Expand Up @@ -1519,4 +1560,4 @@ entries:
urls:
- hpe-greenlake-file-csi-driver-1.0.0-beta.tgz
version: 1.0.0-beta
generated: "2025-01-14T12:11:58.614489-08:00"
generated: "2025-01-28T09:33:44.447060249Z"
37 changes: 37 additions & 0 deletions helm/charts/hpe-cosi-driver/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# © Copyright 2024 Hewlett Packard Enterprise Development LP
apiVersion: v2
name: hpe-cosi-driver
description: A Helm chart for installing the HPE COSI Driver for Kubernetes
type: application
version: 1.0.0
appVersion: "1.0.0"
annotations:
artifacthub.io/prerelease: "true"
artifacthub.io/containsSecurityUpdates: "false"
artifacthub.io/license: Apache-2.0
artifacthub.io/category: storage
artifacthub.io/links: |
- name: Documentation
url: https://scod.hpedev.io/cosi_driver
- name: Chart Source
url: https://github.com/hpe-storage/co-deployments
artifacthub.io/recommendations: |
- url: https://artifacthub.io/packages/helm/hpe-storage/hpe-csi-driver
icon: https://raw.githubusercontent.com/hpe-storage/co-deployments/master/docs/assets/hpedev.png
maintainers:
- name: maheshke
email: [email protected]
- name: narayviv
email: [email protected]
- name: gauriKrishnan
email: [email protected]
- name: mrigaya
email: [email protected]
sources:
- https://github.com/hpe-storage/cosi-driver
home: https://hpe.com/storage/containers
keywords:
- HPE
- Object
- Storage
- COSI
91 changes: 91 additions & 0 deletions helm/charts/hpe-cosi-driver/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
## HPE COSI Driver for Kubernetes Helm Chart

The HPE COSI Driver for Kubernetes leverages Hewlett Packard Enterprise object storage platforms to provide scalable S3 compatible object storage for workloads running on Kubernetes. Currently supported object storage platforms include HPE Alletra Storage MP X10000.

## Release Highlights

The HPE COSI Driver for Kubernetes Helm chart is the primary delivery vehicle for the HPE COSI Driver.

- All resources for the HPE COSI Driver is available on [HPE Storage Container Orchestrator Documentation](https://scod.hpedev.io/cosi_driver) (SCOD).
- Visit [the latest release](https://scod.hpedev.io/cosi_driver/index.html#latest_release) on SCOD to learn what's new in this chart.
- The release notes for the HPE COSI Driver are hosted on [GitHub](https://github.com/hpe-storage/cosi-driver/tree/master/release-notes).

## Prerequisites

1. Kubernetes version v1.25 or later
2. Helm version v3.11 or later
3. HPE Alletra Storage MP X10000 object storage details:
- Backend protocol used: S3
- Features available to the COSI driver: Bucket creation and deletion, granting and revoking bucket access

## Configuration and Installation

The following parameters are supported by the Helm chart. During normal circumstances, these can be left at their default values.

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| accessManagement.glcpCommonCloud | string | `"sso.common.cloud.hpe.com"` | HPE GLCP common cloud URL |
| accessManagement.proxy | string | `""` | Proxy url if any to be used |
| componentName | string | `"container-object-storage-interface"` | |
| containers.cosiDriver.image | string | `"quay.io/hpestorage/cosi-driver:v1.0.0"` | Fully qualified registry path of cosiDriver |
| containers.cosiDriver.imagePullPolicy | string | `"IfNotPresent"` | cosiDriver image pull policy |
| containers.cosiDriver.name | string | `"hpe-cosi-driver"` | Name of the driver's container within the deployment |
| containers.sideCar.image | string | `"gcr.io/k8s-staging-sig-storage/objectstorage-sidecar:v20241017-v0.1.0-58-g80979e8"` | Fully qualified registry path of sideCar |
| containers.sideCar.imagePullPolicy | string | `"IfNotPresent"` | sideCar image pull policy |
| containers.sideCar.name | string | `"hpe-cosi-provisioner-sidecar"` | Name of the driver's side car container within the deployment |
| containers.sideCar.verbosityLevel | int | `5` | Specifies the verbosity of the logs that will be printed by the sidecar container |
| deployment.name | string | `"hpe-cosi-provisioner"` | The name of the driver's Kubernetes deployment |
| fullnameOverride | string | `"hpe-cosi-driver"` | Name of deployment |
| namespace | string | `"default"` | Namespace must remain default |
| podEvictionToleration | int | `300` | Pod Toleration time in seconds |
| regSecretName | string | `""` | Secret that contains the private image registry credentials to pull the cosiDriver image |
| resources | object | `{}` | Resources such as CPU limits, Memory limits, CPU request and Memory request applied to the COSI driver and the COSI sidecar individually. |

Learn how to specify resource limits and requests in the official documentation on [kubernetes.io](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).

## Installation Steps

1. Create the custom resource definitions (CRDs) for the COSI driver API resources.

```
kubectl apply -k github.com/kubernetes-sigs/container-object-storage-interface-api
```

2. Deploy the object storage controller.

```
kubectl apply -k github.com/kubernetes-sigs/container-object-storage-interface-controller
```

**Note:** The SIG Storage resourcs are deployed in the "default" `Namespace` and the HPE COSI Driver needs to be deployed there as well. See [known limitations](https://scod.hpedev.io/cosi_driver/index.html#known_limitations) for more information.

3. Installing the chart.

To install the chart with the name "my-hpe-cosi-driver", follow this example.

Add HPE helm repo:

```
helm repo add hpe-storage https://hpe-storage.github.io/co-deployments/
helm repo update
```

Install the latest chart:

```
helm install -n default my-hpe-cosi-driver hpe-storage/hpe-cosi-driver
```

Monitor the deployment of the COSI driver `Pods`:

```
kubectl -n default get pods -w
```

## Using

Refer to the [HPE COSI Driver for Kubernetes](https://scod.hpedev.io/cosi_driver/deployment.html#add_an_hpe_storage_backend) documentation on SCOD. Also, it's helpful to be familiar with [object storage management](https://kubernetes.io/blog/2022/09/02/cosi-kubernetes-object-storage-management/) in Kubernetes prior to deploying workloads utilizing object storage.

## License

This is open source software licensed using the Apache License 2.0. Please see [LICENSE](https://github.com/hpe-storage/co-deployments/blob/master/LICENSE) for details.
74 changes: 74 additions & 0 deletions helm/charts/hpe-cosi-driver/README.md.gotmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
## HPE COSI Driver for Kubernetes Helm Chart

The HPE COSI Driver for Kubernetes leverages Hewlett Packard Enterprise object storage platforms to provide scalable S3 compatible object storage for workloads running on Kubernetes. Currently supported object storage platforms include HPE Alletra Storage MP X10000.

## Release Highlights

The HPE COSI Driver for Kubernetes Helm chart is the primary delivery vehicle for the HPE COSI Driver.

- All resources for the HPE COSI Driver is available on [HPE Storage Container Orchestrator Documentation](https://scod.hpedev.io/cosi_driver) (SCOD).
- Visit [the latest release](https://scod.hpedev.io/cosi_driver/index.html#latest_release) on SCOD to learn what's new in this chart.
- The release notes for the HPE COSI Driver are hosted on [GitHub](https://github.com/hpe-storage/cosi-driver/tree/master/release-notes).

## Prerequisites

1. Kubernetes version v1.25 or later
2. Helm version v3.11 or later
3. HPE Alletra Storage MP X10000 object storage details:
- Backend protocol used: S3
- Features available to the COSI driver: Bucket creation and deletion, granting and revoking bucket access

## Configuration and Installation

The following parameters are supported by the Helm chart. During normal circumstances, these can be left at their default values.

{{ template "chart.valuesTable" . }}

Learn how to specify resource limits and requests in the official documentation on [kubernetes.io](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).

## Installation Steps

1. Create the custom resource definitions (CRDs) for the COSI driver API resources.

```
kubectl apply -k github.com/kubernetes-sigs/container-object-storage-interface-api
```

2. Deploy the object storage controller.

```
kubectl apply -k github.com/kubernetes-sigs/container-object-storage-interface-controller
```

**Note:** The SIG Storage resourcs are deployed in the "default" `Namespace` and the HPE COSI Driver needs to be deployed there as well. See [known limitations](https://scod.hpedev.io/cosi_driver/index.html#known_limitations) for more information.

3. Installing the chart.

To install the chart with the name "my-hpe-cosi-driver", follow this example.

Add HPE helm repo:

```
helm repo add hpe-storage https://hpe-storage.github.io/co-deployments/
helm repo update
```

Install the latest chart:

```
helm install -n default my-hpe-cosi-driver hpe-storage/hpe-cosi-driver
```

Monitor the deployment of the COSI driver `Pods`:

```
kubectl -n default get pods -w
```

## Using

Refer to the [HPE COSI Driver for Kubernetes](https://scod.hpedev.io/cosi_driver/deployment.html#add_an_hpe_storage_backend) documentation on SCOD. Also, it's helpful to be familiar with [object storage management](https://kubernetes.io/blog/2022/09/02/cosi-kubernetes-object-storage-management/) in Kubernetes prior to deploying workloads utilizing object storage.

## License

This is open source software licensed using the Apache License 2.0. Please see [LICENSE](https://github.com/hpe-storage/co-deployments/blob/master/LICENSE) for details.
65 changes: 65 additions & 0 deletions helm/charts/hpe-cosi-driver/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/* © Copyright 2024 Hewlett Packard Enterprise Development LP */

{{/*
Expand the name of the chart.
*/}}
{{- define "hpe-cosi-driver.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "hpe-cosi-driver.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}

{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "hpe-cosi-driver.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Common labels
*/}}
{{- define "hpe-cosi-driver.labels" -}}
helm.sh/chart: {{ include "hpe-cosi-driver.chart" . }}
{{ include "hpe-cosi-driver.selectorLabels" . }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}

{{/*
Selector labels
*/}}
{{- define "hpe-cosi-driver.selectorLabels" -}}
app.kubernetes.io/name: {{ include "hpe-cosi-driver.name" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Values.componentName | quote }}
{{- end }}

{{/*
Create the name of the service account to use
*/}}
{{- define "hpe-cosi-driver.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "hpe-cosi-driver.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}
Loading

0 comments on commit 4769a7d

Please sign in to comment.