-
Notifications
You must be signed in to change notification settings - Fork 61
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(helm): add openebs localpv helm charts (#14)
an initial version of the openebs local pv charts. Signed-off-by: prateekpandey14 <[email protected]>
- Loading branch information
1 parent
3dca1b5
commit 76b21e4
Showing
13 changed files
with
675 additions
and
1 deletion.
There are no files selected for viewing
This file contains 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 |
---|---|---|
|
@@ -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 |
This file contains 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 |
---|---|---|
|
@@ -15,7 +15,7 @@ | |
name: release | ||
|
||
on: | ||
create: | ||
push: | ||
tags: | ||
- 'v*' | ||
|
||
|
This file contains 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,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/ |
This file contains 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,32 @@ | ||
apiVersion: v2 | ||
name: localpv-provisioner | ||
description: A Helm chart for openebs dynamic localpv provisioner | ||
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: | ||
- storage | ||
- local | ||
- dynamic-localpv | ||
sources: | ||
- https://github.com/openebs/dynamic-localpv-provisioner | ||
|
||
dependencies: | ||
- name: openebs-ndm | ||
version: "1.0.2" | ||
repository: "https://openebs.github.io/node-disk-manager" | ||
condition: openebsNDM.enabled | ||
|
||
maintainers: | ||
- name: akhilerm | ||
email: [email protected] | ||
- name: kiranmova | ||
email: [email protected] | ||
- name: prateekpandey14 | ||
email: [email protected] |
This file contains 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,122 @@ | ||
# OpenEBS LocalPV Provisioner | ||
|
||
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) | ||
![Chart Lint and Test](https://github.com/openebs/dynamic-localpv-provisioner/workflows/Chart%20Lint%20and%20Test/badge.svg) | ||
![Release Charts](https://github.com/openebs/dynamic-localpv-provisioner/workflows/Release%20Charts/badge.svg?branch=develop) | ||
|
||
A Helm chart for openebs dynamic localpv provisioner. This chart bootstraps OpenEBS Dynamic LocalPV provisioner 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 | | ||
| ---- | ------ | --- | | ||
| akhilerm | [email protected] | | | ||
| kiranmova | [email protected] | | | ||
| prateekpandey14 | [email protected] | | | ||
|
||
|
||
## Get Repo Info | ||
|
||
```console | ||
helm repo add openebs-localpv https://openebs.github.io/dynamic-localpv-provisioner | ||
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/dynamic-localpv-provisioner/) for install instructions via helm3. | ||
|
||
```console | ||
# Helm | ||
$ helm install [RELEASE_NAME] openebs-localpv/localpv-provisioner | ||
``` | ||
|
||
_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 LocalPV Provisioner chart and their default values. | ||
|
||
| Parameter | Description | Default | | ||
| ------------------------------------------- | --------------------------------------------- | ----------------------------------------- | | ||
| `release.version` | LocalPV Provisioner release version | `2.4.0` | | ||
| `analytics.enabled` | Enable sending stats to Google Analytics | `true` | | ||
| `analytics.pingInterval` | Duration(hours) between sending ping stat | `24h` | | ||
| `imagePullSecrets` | Provides image pull secrect | `""` | | ||
| `localpv.enabled` | Enable LocalPV Provisioner | `true` | | ||
| `localpv.image.registry` | Registry for LocalPV Provisioner image | `""` | | ||
| `localpv.image.repository` | Image repository for LocalPV Provisioner | `openebs/localpv-provisioner` | | ||
| `localpv.image.pullPolicy` | Image pull policy for LocalPV Provisioner | `IfNotPresent` | | ||
| `localpv.image.tag` | Image tag for LocalPV Provisioner | `2.4.0` | | ||
| `localpv.updateStrategy.type` | Update strategy for LocalPV Provisioner | `RollingUpdate` | | ||
| `localpv.annotations` | Annotations for LocalPV Provisioner metadata | `""` | | ||
| `localpv.podAnnotations` | Annotations for LocalPV Provisioner pods metadata | `""` | | ||
| `localpv.privileged` | Run LocalPV Provisioner with extra privileges | `true` | | ||
| `localpv.resources` | Resource and request and limit for containers | `""` | | ||
| `localpv.podLabels` | Appends labels to the pods | `""` | | ||
| `localpv.nodeSelector` | Nodeselector for LocalPV Provisioner pods | `""` | | ||
| `localpv.tolerations` | LocalPV Provisioner pod toleration values | `""` | | ||
| `localpv.securityContext` | Seurity context for container | `""` | | ||
| `localpv.healthCheck.initialDelaySeconds` | Delay before liveness probe is initiated | `30` | | ||
| `localpv.healthCheck.periodSeconds` | How often to perform the liveness probe | `60` | | ||
| `localpv.replicas` | No. of LocalPV Provisioner replica | `1` | | ||
| `localpv.enableLeaderElection` | Enable leader election | `true` | | ||
| `localpv.basePath` | BasePath for hostPath volumes on Nodes | `"/var/openebs/local"` | | ||
| `localpv.affinity` | LocalPV Provisioner pod affinity | `{}` | | ||
| `helperPod.image.registry` | Registry for helper image | `""` | | ||
| `helperPod.image.repository` | Image for helper pod | `"openebs/linux-utils"` | | ||
| `helperPod.image.pullPolicy` | Pull policy for helper pod | `"IfNotPresent"` | | ||
| `helperPod.image.tag` | Image tag for helper image | `2.4.0` | | ||
| `rbac.create` | Enable RBAC Resources | `true` | | ||
| `rbac.pspEnabled` | Create pod security policy resources | `false` | | ||
| `openebsNDM.enabled` | Install openebs NDM dependency | `true` | | ||
|
||
|
||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. | ||
|
||
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, | ||
|
||
```bash | ||
helm install <release-name> -f values.yaml --namespace openebs localpv-provisioner | ||
``` | ||
|
||
> **Tip**: You can use the default [values.yaml](values.yaml) |
This file contains 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,8 @@ | ||
The OpenEBS localPV Provisioner has been installed check its status by running: | ||
$ kubectl get pods -n {{ .Release.Namespace }} | ||
|
||
Use `kubectl get bd -n {{ .Release.Namespace }} ` to see the list of | ||
blockdevices attached to the Kubernetes cluster nodes. | ||
|
||
For more information, visit our Slack at https://openebs.io/community or view | ||
the documentation online at http://docs.openebs.io/. |
This file contains 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,79 @@ | ||
{{/* vim: set filetype=mustache: */}} | ||
{{/* | ||
Expand the name of the chart. | ||
*/}} | ||
{{- define "localpv.name" -}} | ||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} | ||
{{- end -}} | ||
|
||
{{/* | ||
Create a default fully qualified localpv provisioner 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 "localpv.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 "localpv.chart" -}} | ||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} | ||
{{- end -}} | ||
|
||
|
||
{{/* | ||
Meta labels | ||
*/}} | ||
{{- define "localpv.common.metaLabels" -}} | ||
chart: {{ template "localpv.chart" . }} | ||
heritage: {{ .Release.Service }} | ||
openebs.io/version: {{ .Values.release.version | quote }} | ||
{{- end -}} | ||
|
||
{{/* | ||
Selector labels | ||
*/}} | ||
{{- define "localpv.selectorLabels" -}} | ||
app: {{ template "localpv.name" . }} | ||
release: {{ .Release.Name }} | ||
component: {{ .Values.localpv.name | quote }} | ||
{{- end -}} | ||
|
||
{{/* | ||
Component labels | ||
*/}} | ||
{{- define "localpv.componentLabels" -}} | ||
openebs.io/component-name: openebs-{{ .Values.localpv.name }} | ||
{{- end -}} | ||
|
||
{{/* | ||
Common labels | ||
*/}} | ||
{{- define "localpv.labels" -}} | ||
{{ include "localpv.common.metaLabels" . }} | ||
{{ include "localpv.selectorLabels" . }} | ||
{{ include "localpv.componentLabels" . }} | ||
{{- end -}} | ||
|
||
|
||
{{/* | ||
Create the name of the service account to use | ||
*/}} | ||
{{- define "localpv.serviceAccountName" -}} | ||
{{- if .Values.serviceAccount.create -}} | ||
{{ default (include "localpv.fullname" .) .Values.serviceAccount.name }} | ||
{{- else -}} | ||
{{ default "default" .Values.serviceAccount.name }} | ||
{{- end -}} | ||
{{- end -}} |
This file contains 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,110 @@ | ||
{{- if .Values.localpv.enabled }} | ||
apiVersion: apps/v1 | ||
kind: Deployment | ||
metadata: | ||
name: {{ template "localpv.fullname" . }} | ||
{{- with .Values.localpv.annotations }} | ||
annotations: {{ toYaml . | nindent 4 }} | ||
{{- end }} | ||
labels: | ||
{{- include "localpv.labels" . | nindent 4 }} | ||
spec: | ||
replicas: {{ .Values.localpv.replicas }} | ||
strategy: | ||
type: "Recreate" | ||
rollingUpdate: null | ||
selector: | ||
matchLabels: | ||
{{- include "localpv.selectorLabels" . | nindent 6 }} | ||
template: | ||
metadata: | ||
{{- with .Values.localpv.podAnnotations }} | ||
annotations: {{ toYaml . | nindent 8 }} | ||
{{- end }} | ||
labels: | ||
{{- include "localpv.labels" . | nindent 8 }} | ||
{{- with .Values.localpv.podLabels }} | ||
{{ toYaml . | nindent 8 }} | ||
{{- end }} | ||
spec: | ||
{{- with .Values.imagePullSecrets }} | ||
imagePullSecrets: | ||
{{- toYaml . | nindent 8 }} | ||
{{- end }} | ||
serviceAccountName: {{ template "localpv.serviceAccountName" . }} | ||
securityContext: | ||
{{- toYaml .Values.podSecurityContext | nindent 8 }} | ||
containers: | ||
- name: {{ template "localpv.fullname" . }} | ||
image: "{{ .Values.localpv.image.registry }}{{ .Values.localpv.image.repository }}:{{ .Values.localpv.image.tag }}" | ||
imagePullPolicy: {{ .Values.localpv.image.pullPolicy }} | ||
resources: | ||
{{ toYaml .Values.localpv.resources | indent 10 }} | ||
env: | ||
# OPENEBS_IO_K8S_MASTER enables openebs provisioner to connect to K8s | ||
# based on this address. This is ignored if empty. | ||
# This is supported for openebs provisioner version 0.5.2 onwards | ||
#- name: OPENEBS_IO_K8S_MASTER | ||
# value: "http://10.128.0.12:8080" | ||
# OPENEBS_IO_KUBE_CONFIG enables openebs provisioner to connect to K8s | ||
# based on this config. This is ignored if empty. | ||
# This is supported for openebs provisioner version 0.5.2 onwards | ||
#- name: OPENEBS_IO_KUBE_CONFIG | ||
# value: "/home/ubuntu/.kube/config" | ||
# OPENEBS_NAMESPACE is the namespace that this provisioner will | ||
# lookup to find maya api service | ||
- name: OPENEBS_NAMESPACE | ||
valueFrom: | ||
fieldRef: | ||
fieldPath: metadata.namespace | ||
- name: NODE_NAME | ||
valueFrom: | ||
fieldRef: | ||
fieldPath: spec.nodeName | ||
# OPENEBS_SERVICE_ACCOUNT provides the service account of this pod as | ||
# environment variable | ||
- name: OPENEBS_SERVICE_ACCOUNT | ||
valueFrom: | ||
fieldRef: | ||
fieldPath: spec.serviceAccountName | ||
# OPENEBS_IO_BASE_PATH is the environment variable that provides the | ||
# default base path on the node where host-path PVs will be provisioned. | ||
- name: OPENEBS_IO_ENABLE_ANALYTICS | ||
value: "{{ .Values.analytics.enabled }}" | ||
- name: OPENEBS_IO_BASE_PATH | ||
value: "{{ .Values.localpv.basePath }}" | ||
- name: OPENEBS_IO_HELPER_IMAGE | ||
value: "{{ .Values.helperPod.image.registry }}{{ .Values.helperPod.image.repository }}:{{ .Values.localpv.image.tag }}" | ||
- name: OPENEBS_IO_INSTALLER_TYPE | ||
value: "charts-helm" | ||
# LEADER_ELECTION_ENABLED is used to enable/disable leader election. By default | ||
# leader election is enabled. | ||
- name: LEADER_ELECTION_ENABLED | ||
value: "{{ .Values.localpv.enableLeaderElection }}" | ||
# Process name used for matching is limited to the 15 characters | ||
# present in the pgrep output. | ||
# So fullname can't be used here with pgrep (>15 chars).A regular expression | ||
# that matches the entire command name has to specified. | ||
# Anchor `^` : matches any string that starts with `provisioner-loc` | ||
# `.*`: matches any string that has `provisioner-loc` followed by zero or more char | ||
livenessProbe: | ||
exec: | ||
command: | ||
- sh | ||
- -c | ||
- test `pgrep -c "^provisioner-loc.*"` = 1 | ||
initialDelaySeconds: {{ .Values.localpv.healthCheck.initialDelaySeconds }} | ||
periodSeconds: {{ .Values.localpv.healthCheck.periodSeconds }} | ||
{{- if .Values.localpv.nodeSelector }} | ||
nodeSelector: | ||
{{ toYaml .Values.localpv.nodeSelector | indent 8 }} | ||
{{- end }} | ||
{{- if .Values.localpv.tolerations }} | ||
tolerations: | ||
{{ toYaml .Values.localpv.tolerations | indent 8 }} | ||
{{- end }} | ||
{{- if .Values.localpv.affinity }} | ||
affinity: | ||
{{ toYaml .Values.localpv.affinity | indent 8 }} | ||
{{- end }} | ||
{{- end }} |
Oops, something went wrong.