Skip to content

Commit 57bfad6

Browse files
Merge pull request #48 from iyashu/helm-chart
feat(chart): add helm chart to install lvm localpv
2 parents 71d5d0a + 750c303 commit 57bfad6

19 files changed

+1978
-2
lines changed

deploy/helm/charts/.helmignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Patterns to ignore when building packages.
2+
# This supports shell glob matching, relative path matching, and
3+
# negation (prefixed with !). Only one pattern per line.
4+
.DS_Store
5+
# Common VCS dirs
6+
.git/
7+
.gitignore
8+
.bzr/
9+
.bzrignore
10+
.hg/
11+
.hgignore
12+
.svn/
13+
# Common backup files
14+
*.swp
15+
*.bak
16+
*.tmp
17+
*.orig
18+
*~
19+
# Various IDEs
20+
.project
21+
.idea/
22+
*.tmproj
23+
.vscode/

deploy/helm/charts/Chart.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
apiVersion: v2
2+
name: lvm-localpv
3+
description: CSI Driver for dynamic provisioning of LVM Persistent Local Volumes.
4+
version: 0.4.0
5+
appVersion: 0.4.0
6+
icon: https://raw.githubusercontent.com/cncf/artwork/master/projects/openebs/icon/color/openebs-icon-color.png
7+
home: http://www.openebs.io/
8+
keywords:
9+
- cloud-native-storage
10+
- block-storage
11+
- filesystem
12+
- LVM
13+
- Local Persistent Volumes
14+
- storage
15+
sources:
16+
- https://github.com/openebs/lvm-localpv
17+
maintainers:
18+
- name: prateekpandey14
19+
20+
- name: pawanpraka1
21+

deploy/helm/charts/README.md

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
2+
# OpenEBS LocalPV Provisioner
3+
4+
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
5+
![Chart Lint and Test](https://github.com/openebs/lvm-localpv/workflows/Chart%20Lint%20and%20Test/badge.svg)
6+
![Release Charts](https://github.com/openebs/lvm-localpv/workflows/Release%20Charts/badge.svg?branch=develop)
7+
8+
A Helm chart for openebs lvm localpv provisioner. This chart bootstraps OpenEBS LVM LocalPV provisioner deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
9+
10+
11+
**Homepage:** <http://www.openebs.io/>
12+
13+
## Maintainers
14+
15+
| Name | Email | Url |
16+
| ---- | ------ | --- |
17+
| pawanpraka1 | [email protected] | |
18+
| prateekpandey14 | [email protected] | |
19+
20+
21+
## Get Repo Info
22+
23+
```console
24+
helm repo add openebs-lvmlocalpv https://openebs.github.io/lvm-localpv
25+
helm repo update
26+
```
27+
28+
_See [helm repo](https://helm.sh/docs/helm/helm_repo/) for command documentation._
29+
30+
## Install Chart
31+
32+
Please visit the [link](https://openebs.github.io/lvm-localpv/) for install instructions via helm3.
33+
34+
```console
35+
# Helm
36+
$ helm install [RELEASE_NAME] openebs-lvmlocalpv/lvm-localpv
37+
```
38+
39+
**Note:** If moving from the operator to helm
40+
- Make sure the namespace provided in the helm install command is same as `LVM_NAMESPACE` (by default it is `openebs`) env in the controller statefulset.
41+
- Before installing, clean up the stale statefulset and daemonset from `kube-system` namespace using the below commands
42+
```sh
43+
kubectl delete sts openebs-lvm-controller -n kube-system
44+
kubectl delete ds openebs-lvm-node -n kube-system
45+
```
46+
47+
48+
_See [configuration](#configuration) below._
49+
50+
_See [helm install](https://helm.sh/docs/helm/helm_install/) for command documentation._
51+
52+
## Uninstall Chart
53+
54+
```console
55+
# Helm
56+
$ helm uninstall [RELEASE_NAME]
57+
```
58+
59+
This removes all the Kubernetes components associated with the chart and deletes the release.
60+
61+
_See [helm uninstall](https://helm.sh/docs/helm/helm_uninstall/) for command documentation._
62+
63+
## Upgrading Chart
64+
65+
```console
66+
# Helm
67+
$ helm upgrade [RELEASE_NAME] [CHART] --install
68+
```
69+
70+
## Configuration
71+
72+
The following table lists the configurable parameters of the OpenEBS LVM Localpv chart and their default values.
73+
74+
| Parameter| Description| Default|
75+
| -| -| -|
76+
| `imagePullSecrets`| Provides image pull secrect| `""`|
77+
| `lvmPlugin.image.registry`| Registry for openebs-lvm-plugin image| `""`|
78+
| `lvmPlugin.image.repository`| Image repository for openebs-lvm-plugin| `openebs/lvm-driver`|
79+
| `lvmPlugin.image.pullPolicy`| Image pull policy for openebs-lvm-plugin| `IfNotPresent`|
80+
| `lvmPlugin.image.tag`| Image tag for openebs-lvm-plugin| `0.4.0`|
81+
| `lvmNode.driverRegistrar.image.registry`| Registry for csi-node-driver-registrar image| `k8s.gcr.io/`|
82+
| `lvmNode.driverRegistrar.image.repository`| Image repository for csi-node-driver-registrar| `sig-storage/csi-node-driver-registrar`|
83+
| `lvmNode.driverRegistrar.image.pullPolicy`| Image pull policy for csi-node-driver-registrar| `IfNotPresent`|
84+
| `lvmNode.driverRegistrar.image.tag`| Image tag for csi-node-driver-registrar| `v1.2.0`|
85+
| `lvmNode.updateStrategy.type`| Update strategy for lvmnode daemonset | `RollingUpdate` |
86+
| `lvmNode.kubeletDir`| Kubelet mount point for lvmnode daemonset| `"/var/lib/kubelet/"` |
87+
| `lvmNode.annotations` | Annotations for lvmnode daemonset metadata| `""`|
88+
| `lvmNode.podAnnotations`| Annotations for lvmnode daemonset's pods metadata | `""`|
89+
| `lvmNode.resources`| Resource and request and limit for lvmnode daemonset containers | `""`|
90+
| `lvmNode.labels`| Labels for lvmnode daemonset metadata | `""`|
91+
| `lvmNode.podLabels`| Appends labels to the lvmnode daemonset pods| `""`|
92+
| `lvmNode.nodeSelector`| Nodeselector for lvmnode daemonset pods| `""`|
93+
| `lvmNode.tolerations` | lvmnode daemonset's pod toleration values | `""`|
94+
| `lvmNode.securityContext` | Security context for lvmnode daemonset container | `""`|
95+
| `lvmController.resizer.image.registry`| Registry for csi-resizer image| `k8s.gcr.io/`|
96+
| `lvmController.resizer.image.repository`| Image repository for csi-resizer| `sig-storage/csi-resizer`|
97+
| `lvmController.resizer.image.pullPolicy`| Image pull policy for csi-resizer| `IfNotPresent`|
98+
| `lvmController.resizer.image.tag`| Image tag for csi-resizer| `v1.1.0`|
99+
| `lvmController.snapshotter.image.registry`| Registry for csi-snapshotter image| `k8s.gcr.io/`|
100+
| `lvmController.snapshotter.image.repository`| Image repository for csi-snapshotter| `sig-storage/csi-snapshotter`|
101+
| `lvmController.snapshotter.image.pullPolicy`| Image pull policy for csi-snapshotter| `IfNotPresent`|
102+
| `lvmController.snapshotter.image.tag`| Image tag for csi-snapshotter| `v4.0.0`|
103+
| `lvmController.snapshotController.image.registry`| Registry for snapshot-controller image| `k8s.gcr.io/`|
104+
| `lvmController.snapshotController.image.repository`| Image repository for snapshot-controller| `sig-storage/snapshot-controller`|
105+
| `lvmController.snapshotController.image.pullPolicy`| Image pull policy for snapshot-controller| `IfNotPresent`|
106+
| `lvmController.snapshotController.image.tag`| Image tag for snapshot-controller| `v4.0.0`|
107+
| `lvmController.provisioner.image.registry`| Registry for csi-provisioner image| `k8s.gcr.io/`|
108+
| `lvmController.provisioner.image.repository`| Image repository for csi-provisioner| `sig-storage/csi-provisioner`|
109+
| `lvmController.provisioner.image.pullPolicy`| Image pull policy for csi-provisioner| `IfNotPresent`|
110+
| `lvmController.provisioner.image.tag`| Image tag for csi-provisioner| `v2.1.0`|
111+
| `lvmController.updateStrategy.type`| Update strategy for lvm localpv controller statefulset | `RollingUpdate` |
112+
| `lvmController.annotations` | Annotations for lvm localpv controller statefulset metadata| `""`|
113+
| `lvmController.podAnnotations`| Annotations for lvm localpv controller statefulset's pods metadata | `""`|
114+
| `lvmController.resources`| Resource and request and limit for lvm localpv controller statefulset containers | `""`|
115+
| `lvmController.labels`| Labels for lvm localpv controller statefulset metadata | `""`|
116+
| `lvmController.podLabels`| Appends labels to the lvm localpv controller statefulset pods| `""`|
117+
| `lvmController.nodeSelector`| Nodeselector for lvm localpv controller statefulset pods| `""`|
118+
| `lvmController.tolerations` | lvm localpv controller statefulset's pod toleration values | `""`|
119+
| `lvmController.securityContext` | Seurity context for lvm localpv controller statefulset container | `""`|
120+
| `rbac.pspEnabled` | Enable PodSecurityPolicy | `false` |
121+
| `serviceAccount.lvmNode.create` | Create a service account for lvmnode or not| `true`|
122+
| `serviceAccount.lvmNode.name` | Name for the lvmnode service account| `openebs-lvm-node-sa`|
123+
| `serviceAccount.lvmController.create` | Create a service account for lvm localpv controller or not| `true`|
124+
| `serviceAccount.lvmController.name` | Name for the lvm localpv controller service account| `openebs-lvm-controller-sa`|
125+
| `analytics.enabled` | Enable or Disable google analytics for the controller| `true`|
126+
127+
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
128+
129+
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
130+
131+
```bash
132+
helm install <release-name> -f values.yaml openebs/lvm-localpv
133+
```
134+
135+
> **Tip**: You can use the default [values.yaml](values.yaml)
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
2+
3+
##############################################
4+
########### ############
5+
########### LVMNode CRD ############
6+
########### ############
7+
##############################################
8+
9+
# LVMNode CRD is autogenerated via `make manifests` command.
10+
# Do the modification in the code and run the `make manifests` command
11+
# to generate the CRD definition
12+
13+
---
14+
apiVersion: apiextensions.k8s.io/v1
15+
kind: CustomResourceDefinition
16+
metadata:
17+
annotations:
18+
controller-gen.kubebuilder.io/version: v0.4.0
19+
creationTimestamp: null
20+
name: lvmnodes.local.openebs.io
21+
spec:
22+
group: local.openebs.io
23+
names:
24+
kind: LVMNode
25+
listKind: LVMNodeList
26+
plural: lvmnodes
27+
shortNames:
28+
- lvmnode
29+
singular: lvmnode
30+
scope: Namespaced
31+
versions:
32+
- name: v1alpha1
33+
schema:
34+
openAPIV3Schema:
35+
description: LVMNode records information about all lvm volume groups available
36+
in a node. In general, the openebs node-agent creates the LVMNode object
37+
& periodically synchronizing the volume groups available in the node. LVMNode
38+
has an owner reference pointing to the corresponding node object.
39+
properties:
40+
apiVersion:
41+
description: 'APIVersion defines the versioned schema of this representation
42+
of an object. Servers should convert recognized schemas to the latest
43+
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
44+
type: string
45+
kind:
46+
description: 'Kind is a string value representing the REST resource this
47+
object represents. Servers may infer this from the endpoint the client
48+
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
49+
type: string
50+
metadata:
51+
type: object
52+
volumeGroups:
53+
items:
54+
description: VolumeGroup specifies attributes of a given vg exists on
55+
node.
56+
properties:
57+
free:
58+
anyOf:
59+
- type: integer
60+
- type: string
61+
description: Free specifies the available capacity of volume group.
62+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
63+
x-kubernetes-int-or-string: true
64+
lvCount:
65+
description: LVCount denotes total number of logical volumes in
66+
volume group.
67+
format: int32
68+
minimum: 0
69+
type: integer
70+
name:
71+
description: Name of the lvm volume group.
72+
minLength: 1
73+
type: string
74+
pvCount:
75+
description: PVCount denotes total number of physical volumes constituting
76+
the volume group.
77+
format: int32
78+
minimum: 0
79+
type: integer
80+
size:
81+
anyOf:
82+
- type: integer
83+
- type: string
84+
description: Size specifies the total size of volume group.
85+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
86+
x-kubernetes-int-or-string: true
87+
uuid:
88+
description: UUID denotes a unique identity of a lvm volume group.
89+
minLength: 1
90+
type: string
91+
required:
92+
- free
93+
- lvCount
94+
- name
95+
- pvCount
96+
- size
97+
- uuid
98+
type: object
99+
type: array
100+
required:
101+
- volumeGroups
102+
type: object
103+
served: true
104+
storage: true
105+
status:
106+
acceptedNames:
107+
kind: ""
108+
plural: ""
109+
conditions: []
110+
storedVersions: []

0 commit comments

Comments
 (0)