Skip to content

Commit

Permalink
chore(helm): add cstor operators and csi helm charts (#180)
Browse files Browse the repository at this point in the history
Signed-off-by: Ashutosh Kumar <[email protected]>
Co-authored-by: prateekpandey14 <[email protected]>
  • Loading branch information
sonasingh46 and prateekpandey14 authored Dec 30, 2020
1 parent be68661 commit cc3a50b
Show file tree
Hide file tree
Showing 34 changed files with 4,974 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .github/workflows/chart-lint-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,10 @@ jobs:
uses: helm/[email protected]
if: steps.list-changed.outputs.changed == 'true'

- name: Add dependency chart repos
run: |
helm repo add openebs-ndm https://openebs.github.io/node-disk-manager
helm repo update
- name: Run chart-testing (install)
run: ct install --config ct.yaml
23 changes: 23 additions & 0 deletions deploy/helm/charts/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
35 changes: 35 additions & 0 deletions deploy/helm/charts/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
apiVersion: v2
name: cstor
description: CStor-Operator helm chart for Kubernetes
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 2.4.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: 2.4.0
icon: https://raw.githubusercontent.com/cncf/artwork/master/projects/openebs/icon/color/openebs-icon-color.png
home: http://www.openebs.io/
keywords:
- cloud-native-storage
- block-storage
- iSCSI
- storage
- cstor
- cstor-operators
sources:
- https://github.com/openebs/cstor-operators

dependencies:
- name: openebs-ndm
version: "1.0.2"
repository: "https://openebs.github.io/node-disk-manager"
condition: openebsNDM.enabled

maintainers:
- name: kiranmova
email: [email protected]
- name: prateekpandey14
email: [email protected]
- name: sonasingh46
email: [email protected]
199 changes: 199 additions & 0 deletions deploy/helm/charts/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
# OpenEBS CStor

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
![Release Charts](https://github.com/openebs/cstor-operators/workflows/Release%20Charts/badge.svg?branch=master)
![Chart Lint and Test](https://github.com/openebs/cstor-operators/workflows/Chart%20Lint%20and%20Test/badge.svg)

OpenEBS CStor helm chart for Kubernetes. This chart bootstraps OpenEBS cstor operators and csi driver deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager

**Homepage:** <http://www.openebs.io/>

## Maintainers

| Name | Email | Url |
| ---- | ------ | --- |
| kiranmova | [email protected] | |
| prateekpandey14 | [email protected] | |
| sonasingh46 | [email protected] | |

## Get Repo Info

```console
helm repo add openebs-cstor https://openebs.github.io/cstor-operators
helm repo update
```

_See [helm repo](https://helm.sh/docs/helm/helm_repo/) for command documentation._

## Install Chart

Please visit the [link](https://openebs.github.io/cstor-operators) for install instructions via helm3.

```console
# Helm
$ helm install [RELEASE_NAME] openebs-cstor/cstor
```

_See [configuration](#configuration) below._

_See [helm install](https://helm.sh/docs/helm/helm_install/) for command documentation._


## Dependencies

By default this chart installs additional, dependent charts:

| Repository | Name | Version |
|------------|------|---------|
| https://openebs.github.io/node-disk-manager | openebs-ndm | 1.0.2 |

To disable the dependency during installation, set `openebsNDM.enabled` to `false`.

_See [helm dependency](https://helm.sh/docs/helm/helm_dependency/) for command documentation._

## Uninstall Chart

```console
# Helm
$ helm uninstall [RELEASE_NAME]
```

This removes all the Kubernetes components associated with the chart and deletes the release.

_See [helm uninstall](https://helm.sh/docs/helm/helm_uninstall/) for command documentation._

## Upgrading Chart

```console
# Helm
$ helm upgrade [RELEASE_NAME] [CHART] --install
```

## Configuration

The following table lists the configurable parameters of the OpenEBS CStor chart and their default values.

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| admissionServer.annotations | object | `{}` | Admission webhook annotations |
| admissionServer.componentName | string | `"cstor-admission-webhook"` | Admission webhook Component Name |
| admissionServer.failurePolicy | string | `"Fail"` | Admission Webhook failure policy |
| admissionServer.image.pullPolicy | string | `"IfNotPresent"` | Admission webhook image pull policy |
| admissionServer.image.registry | string | `nil` | Admission webhook image registry |
| admissionServer.image.repository | string | `"openebs/cstor-webhook"` | Admission webhook image repo |
| admissionServer.image.tag | string | `"2.4.0"` | Admission webhook image tag |
| admissionServer.nodeSelector | object | `{}` | Admission webhook pod node selector |
| admissionServer.podAnnotations | object | `{}` | Admission webhook pod annotations |
| admissionServer.resources | object | `{}` | Admission webhook pod resources |
| admissionServer.securityContext | object | `{}` | Admission webhook security context |
| admissionServer.tolerations | list | `[]` | Admission webhook tolerations |
| csiController.annotations | object | `{}` | CSI controller annotations |
| csiController.attacher.image.pullPolicy | string | `"IfNotPresent"` | CSI attacher image pull policy |
| csiController.attacher.image.registry | string | `"quay.io/"` | CSI attacher image registry |
| csiController.attacher.image.repository | string | `"k8scsi/csi-attacher"` | CSI attacher image repo |
| csiController.attacher.image.tag | string | `"v2.0.0"` | CSI attacher image tag |
| csiController.attacher.name | string | `"csi-attacher"` | CSI attacher container name|
| csiController.componentName | string | `""` | CSI controller component name |
| csiController.driverRegistrar.image.pullPolicy | string | `"IfNotPresent"` | CSI driver registrar image pull policy |
| csiController.driverRegistrar.image.registry | string | `"quay.io/"` | CSI driver registrar image registry |
| csiController.driverRegistrar.image.repository | string | `"k8scsi/csi-cluster-driver-registrar"` | CSI driver registrar image repo |
| csiController.driverRegistrar.image.tag | string | `"v1.0.1"` | CSI driver registrar image tag|
| csiController.driverRegistrar.name | string | `"csi-cluster-driver-registrar"` | CSI driver registrar container name |
| csiController.nodeSelector | object | `{}` | CSI controller pod node selector |
| csiController.podAnnotations | object | `{}` | CSI controller pod annotations |
| csiController.provisioner.image.pullPolicy | string | `"IfNotPresent"` | CSI provisioner image pull policy |
| csiController.provisioner.image.registry | string | `"quay.io/"` | CSI provisioner image pull registry |
| csiController.provisioner.image.repository | string | `"k8scsi/csi-provisioner"` | CSI provisioner image pull repository |
| csiController.provisioner.image.tag | string | `"v1.6.0"` | CSI provisioner image tag |
| csiController.provisioner.name | string | `"csi-provisioner"` | CSI provisioner container name |
| csiController.resizer.image.pullPolicy | string | `"IfNotPresent"` | CSI resizer image pull policy |
| csiController.resizer.image.registry | string | `"quay.io/"` | CSI resizer image registry |
| csiController.resizer.image.repository | string | `"k8scsi/csi-resizer"` | CSI resizer image repository|
| csiController.resizer.image.tag | string | `"v0.4.0"` | CSI resizer image tag |
| csiController.resizer.name | string | `"csi-resizer"` | CSI resizer container name |
| csiController.resources | object | `{}` | CSI controller container resources |
| csiController.securityContext | object | `{}` | CSI controller security context |
| csiController.snapshotController.image.pullPolicy | string | `"IfNotPresent"` | CSI snapshot controller image pull policy |
| csiController.snapshotController.image.registry | string | `"quay.io/"` | CSI snapshot controller image registry |
| csiController.snapshotController.image.repository | string | `"k8scsi/snapshot-controller"` | CSI snapshot controller image repository |
| csiController.snapshotController.image.tag | string | `"v2.0.1"` | CSI snapshot controller image tag |
| csiController.snapshotController.name | string | `"snapshot-controller"` | CSI snapshot controller container name |
| csiController.snapshotter.image.pullPolicy | string | `"IfNotPresent"` | CSI snapshotter image pull policy |
| csiController.snapshotter.image.registry | string | `"quay.io/"` | CSI snapshotter image pull registry |
| csiController.snapshotter.image.repository | string | `"k8scsi/csi-snapshotter"` | CSI snapshotter image repositroy |
| csiController.snapshotter.image.tag | string | `"v2.0.1"` | CSI snapshotter image tag |
| csiController.snapshotter.name | string | `"csi-snapshotter"` | CSI snapshotter container name |
| csiController.tolerations | list | `[]` | CSI controller pod tolerations |
| csiNode.annotations | object | `{}` | CSI Node annotations |
| csiNode.componentName | string | `"openebs-cstor-csi-node"` | CSI Node component name |
| csiNode.driverRegistrar.image.pullPolicy | string | `"IfNotPresent"` | CSI Node driver registrar image pull policy|
| csiNode.driverRegistrar.image.registry | string | `"quay.io/"` | CSI Node driver registrar image registry |
| csiNode.driverRegistrar.image.repository | string | `"k8scsi/csi-node-driver-registrar"` | CSI Node driver registrar image repository |
| csiNode.driverRegistrar.image.tag | string | `"v1.0.1"` | CSI Node driver registrar image tag|
| csiNode.driverRegistrar.name | string | `"csi-node-driver-registrar"` | CSI Node driver registrar container name |
| csiNode.kubeletDir | string | `"/var/lib/kubelet/"` | Kubelet root dir |
| csiNode.labels | object | `{}` | CSI Node pod labels |
| csiNode.nodeSelector | object | `{}` | CSI Node pod nodeSelector |
| csiNode.podAnnotations | object | `{}` | CSI Node pod annotations |
| csiNode.resources | object | `{}` | CSI Node pod resources |
| csiNode.securityContext | object | `{}` | CSI Node pod security context |
| csiNode.tolerations | list | `[]` | CSI Node pod tolerations |
| csiNode.updateStrategy.type | string | `"RollingUpdate"` | CSI Node daemonset update strategy |
| cspcOperator.annotations | object | `{}` | CSPC operator annotations |
| cspcOperator.componentName | string | `"cspc-operator"` | CSPC operator component name |
| cspcOperator.cstorPool.image.registry | string | `nil` | CStor pool image registry |
| cspcOperator.cstorPool.image.repository | string | `"openebs/cstor-pool"` | CStor pool image repository|
| cspcOperator.cstorPool.image.tag | string | `"2.4.0"` | CStor pool image tag |
| cspcOperator.cstorPoolExporter.image.registry | string | `nil` | CStor pool exporter image registry |
| cspcOperator.cstorPoolExporter.image.repository | string | `"openebs/m-exporter"` | CStor pool exporter image repositry |
| cspcOperator.cstorPoolExporter.image.tag | string | `"2.4.0"` | CStor pool exporter image tag |
| cspcOperator.image.pullPolicy | string | `"IfNotPresent"` | CSPC operator image pull policy |
| cspcOperator.image.registry | string | `nil` | CSPC operator image registry |
| cspcOperator.image.repository | string | `"openebs/cspc-operator"` | CSPC operator image repository |
| cspcOperator.image.tag | string | `"2.4.0"` | CSPC operator image tag |
| cspcOperator.nodeSelector | object | `{}` | CSPC operator pod nodeSelector|
| cspcOperator.podAnnotations | object | `{}` | CSPC operator pod annotations |
| cspcOperator.poolManager.image.registry | string | `nil` | CStor Pool Manager image registry |
| cspcOperator.poolManager.image.repository | string | `"openebs/cstor-pool-manager"` | CStor Pool Manager image repository |
| cspcOperator.poolManager.image.tag | string | `"2.4.0"` | CStor Pool Manager image tag |
| cspcOperator.resources | object | `{}` | CSPC operator pod resources |
| cspcOperator.resyncInterval | string | `"30"` | CSPC operator resync interval |
| cspcOperator.securityContext | object | `{}` | CSPC operator security context |
| cspcOperator.tolerations | list | `[]` | CSPC operator pod tolerations |
| cstorCSIPlugin.image.pullPolicy | string | `"IfNotPresent"` | CStor CSI driver image pull policy |
| cstorCSIPlugin.image.registry | string | `nil` | CStor CSI driver image registry |
| cstorCSIPlugin.image.repository | string | `"openebs/cstor-csi-driver"` | CStor CSI driver image repository |
| cstorCSIPlugin.image.tag | string | `"2.4.0"` | CStor CSI driver image tag |
| cstorCSIPlugin.name | string | `"cstor-csi-plugin"` | CStor CSI driver container name |
| cvcOperator.annotations | object | `{}` | CVC operator annotations |
| cvcOperator.componentName | string | `"cvc-operator"` | CVC operator component name |
| cvcOperator.image.pullPolicy | string | `"IfNotPresent"` | CVC operator image pull policy |
| cvcOperator.image.registry | string | `nil` | CVC operator image registry |
| cvcOperator.image.repository | string | `"openebs/cvc-operator"` | CVC operator image repository |
| cvcOperator.image.tag | string | `"2.4.0"` | CVC operator image tag |
| cvcOperator.nodeSelector | object | `{}` | CVC operator pod nodeSelector |
| cvcOperator.podAnnotations | object | `{}` | CVC operator pod annotations |
| cvcOperator.resources | object | `{}` |CVC operator pod resources |
| cvcOperator.resyncInterval | string | `"30"` | CVC operator resync interval |
| cvcOperator.securityContext | object | `{}` | CVC operator security context |
| cvcOperator.target.image.registry | string | `nil` | Volume Target image registry |
| cvcOperator.target.image.repository | string | `"openebs/cstor-istgt"` | Volume Target image repository |
| cvcOperator.target.image.tag | string | `"2.4.0"` | Volume Target image tag |
| cvcOperator.tolerations | list | `[]` | CVC operator pod tolerations |
| cvcOperator.volumeExporter.image.registry | string | `nil` | Volume exporter image registry |
| cvcOperator.volumeExporter.image.repository | string | `"openebs/m-exporter"` | Volume exporter image repository |
| cvcOperator.volumeExporter.image.tag | string | `"2.4.0"` | Volume exporter image tag |
| cvcOperator.volumeMgmt.image.registry | string | `nil` | Volume mgmt image registry |
| cvcOperator.volumeMgmt.image.repository | string | `"openebs/cstor-volume-manager"` | Volume mgmt image repository |
| cvcOperator.volumeMgmt.image.tag | string | `"2.4.0"` | Volume mgmt image tag|
| imagePullSecrets | string | `nil` | Image registry pull secrets |
| openebsNDM.enabled | bool | `true` | Enable OpenEBS NDM dependency |
| rbac.create | bool | `true` | Enable RBAC |
| rbac.pspEnabled | bool | `false` | Enable PodSecurityPolicy |
| release.version | string | `"2.4.0"` | Openebs CStor release version |
| serviceAccount.annotations | object | `{}` | Service Account annotations |
| serviceAccount.csiController.create | bool | `true` | Enable CSI Controller ServiceAccount |
| serviceAccount.csiController.name | string | `"openebs-cstor-csi-controller-sa"` | CSI Controller ServiceAccount name |
| serviceAccount.csiNode.create | bool | `true` | Enable CSI Node ServiceAccount |
| serviceAccount.csiNode.name | string | `"openebs-cstor-csi-node-sa"` | CSI Node ServiceAccount name |

93 changes: 93 additions & 0 deletions deploy/helm/charts/crds/cstorbackup.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.4.0
creationTimestamp: null
name: cstorbackups.cstor.openebs.io
spec:
group: cstor.openebs.io
names:
kind: CStorBackup
listKind: CStorBackupList
plural: cstorbackups
shortNames:
- cbackup
singular: cstorbackup
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: Name of the volume for which this backup is destined
jsonPath: .spec.volumeName
name: Volume
type: string
- description: Name of the backup or scheduled backup
jsonPath: .spec.backupName
name: Backup/Schedule
type: string
- description: Identifies the phase of the backup
jsonPath: .status
name: Status
type: string
name: v1
schema:
openAPIV3Schema:
description: CStorBackup describes a cstor backup resource created as a custom
resource
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/sig-architecture/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/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: CStorBackupSpec is the spec for a CStorBackup resource
properties:
backupDest:
description: BackupDest is the remote address for backup transfer
type: string
backupName:
description: BackupName is the name of the backup or scheduled backup
type: string
localSnap:
description: LocalSnap is the flag to enable local snapshot only
type: boolean
prevSnapName:
description: PrevSnapName is the last completed-backup's snapshot
name
type: string
snapName:
description: SnapName is the name of the current backup snapshot
type: string
volumeName:
description: VolumeName is the name of the volume for which this backup
is destined
type: string
required:
- backupName
- snapName
- volumeName
type: object
status:
description: CStorBackupStatus is a string type that represents the status
of the backup
type: string
required:
- spec
type: object
served: true
storage: true
subresources: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
Loading

0 comments on commit cc3a50b

Please sign in to comment.