From e65683279d415dd849ce48d62765885c6e6ce080 Mon Sep 17 00:00:00 2001 From: Yonatan Kahana Date: Sat, 19 Dec 2020 13:56:52 +0200 Subject: [PATCH 1/2] Helm repository initial commit Files are as is from deprecated repo --- .../.helmignore | 21 +++++ .../Chart.yaml | 12 +++ .../nfs-subdir-external-provisioner/README.md | 82 +++++++++++++++++++ .../ci/test-values.yaml | 5 ++ .../templates/_helpers.tpl | 62 ++++++++++++++ .../templates/clusterrole.yaml | 30 +++++++ .../templates/clusterrolebinding.yaml | 19 +++++ .../templates/deployment.yaml | 77 +++++++++++++++++ .../templates/persistentvolume.yaml | 25 ++++++ .../templates/persistentvolumeclaim.yaml | 17 ++++ .../templates/podsecuritypolicy.yaml | 31 +++++++ .../templates/role.yaml | 21 +++++ .../templates/rolebinding.yaml | 19 +++++ .../templates/serviceaccount.yaml | 11 +++ .../templates/storageclass.yaml | 26 ++++++ .../values.yaml | 78 ++++++++++++++++++ 16 files changed, 536 insertions(+) create mode 100644 charts/nfs-subdir-external-provisioner/.helmignore create mode 100644 charts/nfs-subdir-external-provisioner/Chart.yaml create mode 100644 charts/nfs-subdir-external-provisioner/README.md create mode 100644 charts/nfs-subdir-external-provisioner/ci/test-values.yaml create mode 100644 charts/nfs-subdir-external-provisioner/templates/_helpers.tpl create mode 100644 charts/nfs-subdir-external-provisioner/templates/clusterrole.yaml create mode 100644 charts/nfs-subdir-external-provisioner/templates/clusterrolebinding.yaml create mode 100644 charts/nfs-subdir-external-provisioner/templates/deployment.yaml create mode 100644 charts/nfs-subdir-external-provisioner/templates/persistentvolume.yaml create mode 100644 charts/nfs-subdir-external-provisioner/templates/persistentvolumeclaim.yaml create mode 100644 charts/nfs-subdir-external-provisioner/templates/podsecuritypolicy.yaml create mode 100644 charts/nfs-subdir-external-provisioner/templates/role.yaml create mode 100644 charts/nfs-subdir-external-provisioner/templates/rolebinding.yaml create mode 100644 charts/nfs-subdir-external-provisioner/templates/serviceaccount.yaml create mode 100644 charts/nfs-subdir-external-provisioner/templates/storageclass.yaml create mode 100644 charts/nfs-subdir-external-provisioner/values.yaml diff --git a/charts/nfs-subdir-external-provisioner/.helmignore b/charts/nfs-subdir-external-provisioner/.helmignore new file mode 100644 index 00000000..f0c13194 --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/.helmignore @@ -0,0 +1,21 @@ +# 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 +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/charts/nfs-subdir-external-provisioner/Chart.yaml b/charts/nfs-subdir-external-provisioner/Chart.yaml new file mode 100644 index 00000000..61e36f04 --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/Chart.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +appVersion: 3.1.0 +description: DEPRECATED - nfs-client is an automatic provisioner that used your *already configured* NFS server, automatically creating Persistent Volumes. +name: nfs-client-provisioner +home: https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client +version: 1.2.11 +sources: +- https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client +deprecated: true +keywords: +- nfs +- storage diff --git a/charts/nfs-subdir-external-provisioner/README.md b/charts/nfs-subdir-external-provisioner/README.md new file mode 100644 index 00000000..4aee358d --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/README.md @@ -0,0 +1,82 @@ +# ⚠️ Repo Archive Notice + +As of Nov 13, 2020, charts in this repo will no longer be updated. +For more information, see the Helm Charts [Deprecation and Archive Notice](https://github.com/helm/charts#%EF%B8%8F-deprecation-and-archive-notice), and [Update](https://helm.sh/blog/charts-repo-deprecation/). + +# nfs-client-provisioner + +The [NFS client provisioner](https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client) is an automatic provisioner for Kubernetes that uses your *already configured* NFS server, automatically creating Persistent Volumes. + +## DEPRECATION NOTICE + +This chart is deprecated and no longer supported. + +## TL;DR; + +```console +$ helm install --set nfs.server=x.x.x.x --set nfs.path=/exported/path stable/nfs-client-provisioner +``` + +For **arm** deployments set `image.repository` to `--set image.repository=quay.io/external_storage/nfs-client-provisioner-arm` + +## Introduction + +This charts installs custom [storage class](https://kubernetes.io/docs/concepts/storage/storage-classes/) into a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. It also installs a [NFS client provisioner](https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client) into the cluster which dynamically creates persistent volumes from single NFS share. + +## Prerequisites + +- Kubernetes 1.9+ +- Existing NFS Share + +## Installing the Chart + +To install the chart with the release name `my-release`: + +```console +$ helm install --name my-release --set nfs.server=x.x.x.x --set nfs.path=/exported/path stable/nfs-client-provisioner +``` + +The command deploys the given storage class in the default configuration. It can be used afterswards to provision persistent volumes. The [configuration](#configuration) section lists the parameters that can be configured during installation. + +> **Tip**: List all releases using `helm list` + +## Uninstalling the Chart + +To uninstall/delete the `my-release` deployment: + +```console +$ helm delete my-release +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following tables lists the configurable parameters of this chart and their default values. + +| Parameter | Description | Default | +| ----------------------------------- | ----------------------------------------------------------- | ------------------------------------------------- | +| `replicaCount` | Number of provisioner instances to deployed | `1` | +| `strategyType` | Specifies the strategy used to replace old Pods by new ones | `Recreate` | +| `image.repository` | Provisioner image | `quay.io/external_storage/nfs-client-provisioner` | +| `image.tag` | Version of provisioner image | `v3.1.0-k8s1.11` | +| `image.pullPolicy` | Image pull policy | `IfNotPresent` | +| `storageClass.name` | Name of the storageClass | `nfs-client` | +| `storageClass.defaultClass` | Set as the default StorageClass | `false` | +| `storageClass.allowVolumeExpansion` | Allow expanding the volume | `true` | +| `storageClass.reclaimPolicy` | Method used to reclaim an obsoleted volume | `Delete` | +| `storageClass.provisionerName` | Name of the provisionerName | null | +| `storageClass.archiveOnDelete` | Archive pvc when deleting | `true` | +| `storageClass.accessModes` | Set access mode for PV | `ReadWriteOnce` | +| `nfs.server` | Hostname of the NFS server | null (ip or hostname) | +| `nfs.path` | Basepath of the mount point to be used | `/ifs/kubernetes` | +| `nfs.mountOptions` | Mount options (e.g. 'nfsvers=3') | null | +| `resources` | Resources required (e.g. CPU, memory) | `{}` | +| `rbac.create` | Use Role-based Access Control | `true` | +| `podSecurityPolicy.enabled` | Create & use Pod Security Policy resources | `false` | +| `priorityClassName` | Set pod priorityClassName | null | +| `serviceAccount.create` | Should we create a ServiceAccount | `true` | +| `serviceAccount.name` | Name of the ServiceAccount to use | null | +| `nodeSelector` | Node labels for pod assignment | `{}` | +| `affinity` | Affinity settings | `{}` | +| `tolerations` | List of node taints to tolerate | `[]` | diff --git a/charts/nfs-subdir-external-provisioner/ci/test-values.yaml b/charts/nfs-subdir-external-provisioner/ci/test-values.yaml new file mode 100644 index 00000000..4237de5f --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/ci/test-values.yaml @@ -0,0 +1,5 @@ +nfs: + server: 127.0.0.1 +podSecurityPolicy: + enabled: true +buildMode: true diff --git a/charts/nfs-subdir-external-provisioner/templates/_helpers.tpl b/charts/nfs-subdir-external-provisioner/templates/_helpers.tpl new file mode 100644 index 00000000..d8d4e516 --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "nfs-client-provisioner.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 "nfs-client-provisioner.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 "nfs-client-provisioner.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{- define "nfs-client-provisioner.provisionerName" -}} +{{- if .Values.storageClass.provisionerName -}} +{{- printf .Values.storageClass.provisionerName -}} +{{- else -}} +cluster.local/{{ template "nfs-client-provisioner.fullname" . -}} +{{- end -}} +{{- end -}} + +{{/* +Create the name of the service account to use +*/}} +{{- define "nfs-client-provisioner.serviceAccountName" -}} +{{- if .Values.serviceAccount.create -}} + {{ default (include "nfs-client-provisioner.fullname" .) .Values.serviceAccount.name }} +{{- else -}} + {{ default "default" .Values.serviceAccount.name }} +{{- end -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for podSecurityPolicy. +*/}} +{{- define "podSecurityPolicy.apiVersion" -}} +{{- if semverCompare ">=1.10-0" .Capabilities.KubeVersion.GitVersion -}} +{{- print "policy/v1beta1" -}} +{{- else -}} +{{- print "extensions/v1beta1" -}} +{{- end -}} +{{- end -}} \ No newline at end of file diff --git a/charts/nfs-subdir-external-provisioner/templates/clusterrole.yaml b/charts/nfs-subdir-external-provisioner/templates/clusterrole.yaml new file mode 100644 index 00000000..fa43e0d4 --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/templates/clusterrole.yaml @@ -0,0 +1,30 @@ +{{- if .Values.rbac.create }} +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + labels: + app: {{ template "nfs-client-provisioner.name" . }} + chart: {{ template "nfs-client-provisioner.chart" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: {{ template "nfs-client-provisioner.fullname" . }}-runner +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["create", "update", "patch"] +{{- if .Values.podSecurityPolicy.enabled }} + - apiGroups: ['extensions'] + resources: ['podsecuritypolicies'] + verbs: ['use'] + resourceNames: [{{ template "nfs-client-provisioner.fullname" . }}] +{{- end }} +{{- end }} diff --git a/charts/nfs-subdir-external-provisioner/templates/clusterrolebinding.yaml b/charts/nfs-subdir-external-provisioner/templates/clusterrolebinding.yaml new file mode 100644 index 00000000..e04c7193 --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/templates/clusterrolebinding.yaml @@ -0,0 +1,19 @@ +{{- if .Values.rbac.create }} +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + labels: + app: {{ template "nfs-client-provisioner.name" . }} + chart: {{ template "nfs-client-provisioner.chart" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: run-{{ template "nfs-client-provisioner.fullname" . }} +subjects: + - kind: ServiceAccount + name: {{ template "nfs-client-provisioner.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: {{ template "nfs-client-provisioner.fullname" . }}-runner + apiGroup: rbac.authorization.k8s.io +{{- end }} diff --git a/charts/nfs-subdir-external-provisioner/templates/deployment.yaml b/charts/nfs-subdir-external-provisioner/templates/deployment.yaml new file mode 100644 index 00000000..9c5a34d8 --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/templates/deployment.yaml @@ -0,0 +1,77 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ template "nfs-client-provisioner.fullname" . }} + labels: + app: {{ template "nfs-client-provisioner.name" . }} + chart: {{ template "nfs-client-provisioner.chart" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} +spec: + replicas: {{ .Values.replicaCount }} + strategy: + type: {{ .Values.strategyType }} + selector: + matchLabels: + app: {{ template "nfs-client-provisioner.name" . }} + release: {{ .Release.Name }} + template: + metadata: + annotations: + {{- if and (.Values.tolerations) (semverCompare "<1.6-0" .Capabilities.KubeVersion.GitVersion) }} + scheduler.alpha.kubernetes.io/tolerations: '{{ toJson .Values.tolerations }}' + {{- end }} + labels: + app: {{ template "nfs-client-provisioner.name" . }} + release: {{ .Release.Name }} + spec: + serviceAccountName: {{ template "nfs-client-provisioner.serviceAccountName" . }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + {{- end }} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 8 }} + {{- end }} + {{- if .Values.priorityClassName }} + priorityClassName: {{ .Values.priorityClassName | quote }} + {{- end }} + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + volumeMounts: + - name: nfs-client-root + mountPath: /persistentvolumes + env: + - name: PROVISIONER_NAME + value: {{ template "nfs-client-provisioner.provisionerName" . }} + - name: NFS_SERVER + value: {{ .Values.nfs.server }} + - name: NFS_PATH + value: {{ .Values.nfs.path }} + {{- with .Values.resources }} + resources: +{{ toYaml . | indent 12 }} + {{- end }} + volumes: + - name: nfs-client-root +{{- if .Values.buildMode }} + emptyDir: {} +{{- else if .Values.nfs.mountOptions }} + persistentVolumeClaim: + claimName: pvc-{{ template "nfs-client-provisioner.fullname" . }} +{{- else }} + nfs: + server: {{ .Values.nfs.server }} + path: {{ .Values.nfs.path }} +{{- end }} + {{- if and (.Values.tolerations) (semverCompare "^1.6-0" .Capabilities.KubeVersion.GitVersion) }} + tolerations: +{{ toYaml .Values.tolerations | indent 6 }} + {{- end }} diff --git a/charts/nfs-subdir-external-provisioner/templates/persistentvolume.yaml b/charts/nfs-subdir-external-provisioner/templates/persistentvolume.yaml new file mode 100644 index 00000000..d13ad0b2 --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/templates/persistentvolume.yaml @@ -0,0 +1,25 @@ +{{ if .Values.nfs.mountOptions -}} +apiVersion: v1 +kind: PersistentVolume +metadata: + name: pv-{{ template "nfs-client-provisioner.fullname" . }} + labels: + nfs-client-provisioner: {{ template "nfs-client-provisioner.fullname" . }} +spec: + capacity: + storage: 10Mi + volumeMode: Filesystem + accessModes: + - {{ .Values.storageClass.accessModes }} + persistentVolumeReclaimPolicy: {{ .Values.storageClass.reclaimPolicy }} + storageClassName: "" + {{- if .Values.nfs.mountOptions }} + mountOptions: + {{- range .Values.nfs.mountOptions }} + - {{ . }} + {{- end }} + {{- end }} + nfs: + server: {{ .Values.nfs.server }} + path: {{ .Values.nfs.path }} +{{ end -}} diff --git a/charts/nfs-subdir-external-provisioner/templates/persistentvolumeclaim.yaml b/charts/nfs-subdir-external-provisioner/templates/persistentvolumeclaim.yaml new file mode 100644 index 00000000..9bcf4309 --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/templates/persistentvolumeclaim.yaml @@ -0,0 +1,17 @@ +{{ if .Values.nfs.mountOptions -}} +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: pvc-{{ template "nfs-client-provisioner.fullname" . }} +spec: + accessModes: + - {{ .Values.storageClass.accessModes }} + volumeMode: Filesystem + storageClassName: "" + selector: + matchLabels: + nfs-client-provisioner: {{ template "nfs-client-provisioner.fullname" . }} + resources: + requests: + storage: 10Mi +{{ end -}} diff --git a/charts/nfs-subdir-external-provisioner/templates/podsecuritypolicy.yaml b/charts/nfs-subdir-external-provisioner/templates/podsecuritypolicy.yaml new file mode 100644 index 00000000..830fad6e --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/templates/podsecuritypolicy.yaml @@ -0,0 +1,31 @@ +{{- if .Values.podSecurityPolicy.enabled }} +apiVersion: {{ template "podSecurityPolicy.apiVersion" . }} +kind: PodSecurityPolicy +metadata: + name: {{ template "nfs-client-provisioner.fullname" . }} + labels: + app: {{ template "nfs-client-provisioner.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} +spec: + privileged: false + allowPrivilegeEscalation: false + requiredDropCapabilities: + - ALL + volumes: + - 'secret' + - 'nfs' + hostNetwork: false + hostIPC: false + hostPID: false + runAsUser: + rule: 'RunAsAny' + seLinux: + rule: 'RunAsAny' + supplementalGroups: + rule: 'RunAsAny' + fsGroup: + rule: 'RunAsAny' + readOnlyRootFilesystem: false +{{- end }} diff --git a/charts/nfs-subdir-external-provisioner/templates/role.yaml b/charts/nfs-subdir-external-provisioner/templates/role.yaml new file mode 100644 index 00000000..0cccdcbd --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/templates/role.yaml @@ -0,0 +1,21 @@ +{{- if .Values.rbac.create }} +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + labels: + app: {{ template "nfs-client-provisioner.name" . }} + chart: {{ template "nfs-client-provisioner.chart" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: leader-locking-{{ template "nfs-client-provisioner.fullname" . }} +rules: + - apiGroups: [""] + resources: ["endpoints"] + verbs: ["get", "list", "watch", "create", "update", "patch"] +{{- if .Values.podSecurityPolicy.enabled }} + - apiGroups: ['extensions'] + resources: ['podsecuritypolicies'] + verbs: ['use'] + resourceNames: [{{ template "nfs-client-provisioner.fullname" . }}] +{{- end }} +{{- end }} diff --git a/charts/nfs-subdir-external-provisioner/templates/rolebinding.yaml b/charts/nfs-subdir-external-provisioner/templates/rolebinding.yaml new file mode 100644 index 00000000..57c1c878 --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/templates/rolebinding.yaml @@ -0,0 +1,19 @@ +{{- if .Values.rbac.create }} +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + labels: + app: {{ template "nfs-client-provisioner.name" . }} + chart: {{ template "nfs-client-provisioner.chart" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: leader-locking-{{ template "nfs-client-provisioner.fullname" . }} +subjects: + - kind: ServiceAccount + name: {{ template "nfs-client-provisioner.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: Role + name: leader-locking-{{ template "nfs-client-provisioner.fullname" . }} + apiGroup: rbac.authorization.k8s.io +{{- end }} diff --git a/charts/nfs-subdir-external-provisioner/templates/serviceaccount.yaml b/charts/nfs-subdir-external-provisioner/templates/serviceaccount.yaml new file mode 100644 index 00000000..29408967 --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/templates/serviceaccount.yaml @@ -0,0 +1,11 @@ +{{ if .Values.serviceAccount.create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app: {{ template "nfs-client-provisioner.name" . }} + chart: {{ template "nfs-client-provisioner.chart" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: {{ template "nfs-client-provisioner.serviceAccountName" . }} +{{- end -}} diff --git a/charts/nfs-subdir-external-provisioner/templates/storageclass.yaml b/charts/nfs-subdir-external-provisioner/templates/storageclass.yaml new file mode 100644 index 00000000..81953c0d --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/templates/storageclass.yaml @@ -0,0 +1,26 @@ +{{ if .Values.storageClass.create -}} +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + labels: + app: {{ template "nfs-client-provisioner.name" . }} + chart: {{ template "nfs-client-provisioner.chart" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: {{ .Values.storageClass.name }} +{{- if .Values.storageClass.defaultClass }} + annotations: + storageclass.kubernetes.io/is-default-class: "true" +{{- end }} +provisioner: {{ template "nfs-client-provisioner.provisionerName" . }} +allowVolumeExpansion: {{ .Values.storageClass.allowVolumeExpansion }} +reclaimPolicy: {{ .Values.storageClass.reclaimPolicy }} +parameters: + archiveOnDelete: "{{ .Values.storageClass.archiveOnDelete }}" +{{- if .Values.nfs.mountOptions }} +mountOptions: + {{- range .Values.nfs.mountOptions }} + - {{ . }} + {{- end }} +{{- end }} +{{ end -}} diff --git a/charts/nfs-subdir-external-provisioner/values.yaml b/charts/nfs-subdir-external-provisioner/values.yaml new file mode 100644 index 00000000..90b985f3 --- /dev/null +++ b/charts/nfs-subdir-external-provisioner/values.yaml @@ -0,0 +1,78 @@ +# Default values for nfs-client-provisioner. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 +strategyType: Recreate + +image: + repository: quay.io/external_storage/nfs-client-provisioner + tag: v3.1.0-k8s1.11 + pullPolicy: IfNotPresent + +nfs: + server: + path: /ifs/kubernetes + mountOptions: + +# For creating the StorageClass automatically: +storageClass: + create: true + + # Set a provisioner name. If unset, a name will be generated. + # provisionerName: + + # Set StorageClass as the default StorageClass + # Ignored if storageClass.create is false + defaultClass: false + + # Set a StorageClass name + # Ignored if storageClass.create is false + name: nfs-client + + # Allow volume to be expanded dynamically + allowVolumeExpansion: true + + # Method used to reclaim an obsoleted volume + reclaimPolicy: Delete + + # When set to false your PVs will not be archived by the provisioner upon deletion of the PVC. + archiveOnDelete: true + + # Set access mode - ReadWriteOnce, ReadOnlyMany or ReadWriteMany + accessModes: ReadWriteOnce + +## For RBAC support: +rbac: + # Specifies whether RBAC resources should be created + create: true + +# If true, create & use Pod Security Policy resources +# https://kubernetes.io/docs/concepts/policy/pod-security-policy/ +podSecurityPolicy: + enabled: false + +## Set pod priorityClassName +# priorityClassName: "" + +serviceAccount: + # Specifies whether a ServiceAccount should be created + create: true + + # The name of the ServiceAccount to use. + # If not set and create is true, a name is generated using the fullname template + name: + +resources: {} + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +nodeSelector: {} + +tolerations: [] + +affinity: {} From 0b707e905aed5e56a713693e6bdb380acab4b526 Mon Sep 17 00:00:00 2001 From: Yonatan Kahana Date: Sat, 19 Dec 2020 14:27:12 +0200 Subject: [PATCH 2/2] Rename charts, remove depracation notices from README and update URLs. --- README.md | 10 ++++-- .../.helmignore | 21 ------------- .../Chart.yaml | 12 ------- .../templates/clusterrolebinding.yaml | 19 ------------ .../templates/rolebinding.yaml | 19 ------------ .../templates/serviceaccount.yaml | 11 ------- deploy/helm/Chart.yaml | 13 ++++++++ .../helm}/README.md | 31 +++++++++---------- .../helm}/ci/test-values.yaml | 0 .../helm}/templates/_helpers.tpl | 14 ++++----- .../helm}/templates/clusterrole.yaml | 8 ++--- deploy/helm/templates/clusterrolebinding.yaml | 19 ++++++++++++ .../helm}/templates/deployment.yaml | 20 ++++++------ .../helm}/templates/persistentvolume.yaml | 4 +-- .../templates/persistentvolumeclaim.yaml | 4 +-- .../helm}/templates/podsecuritypolicy.yaml | 4 +-- .../helm}/templates/role.yaml | 8 ++--- deploy/helm/templates/rolebinding.yaml | 19 ++++++++++++ deploy/helm/templates/serviceaccount.yaml | 11 +++++++ .../helm}/templates/storageclass.yaml | 6 ++-- .../helm}/values.yaml | 6 +--- 21 files changed, 118 insertions(+), 141 deletions(-) delete mode 100644 charts/nfs-subdir-external-provisioner/.helmignore delete mode 100644 charts/nfs-subdir-external-provisioner/Chart.yaml delete mode 100644 charts/nfs-subdir-external-provisioner/templates/clusterrolebinding.yaml delete mode 100644 charts/nfs-subdir-external-provisioner/templates/rolebinding.yaml delete mode 100644 charts/nfs-subdir-external-provisioner/templates/serviceaccount.yaml create mode 100644 deploy/helm/Chart.yaml rename {charts/nfs-subdir-external-provisioner => deploy/helm}/README.md (80%) rename {charts/nfs-subdir-external-provisioner => deploy/helm}/ci/test-values.yaml (100%) rename {charts/nfs-subdir-external-provisioner => deploy/helm}/templates/_helpers.tpl (76%) rename {charts/nfs-subdir-external-provisioner => deploy/helm}/templates/clusterrole.yaml (72%) create mode 100644 deploy/helm/templates/clusterrolebinding.yaml rename {charts/nfs-subdir-external-provisioner => deploy/helm}/templates/deployment.yaml (74%) rename {charts/nfs-subdir-external-provisioner => deploy/helm}/templates/persistentvolume.yaml (76%) rename {charts/nfs-subdir-external-provisioner => deploy/helm}/templates/persistentvolumeclaim.yaml (62%) rename {charts/nfs-subdir-external-provisioner => deploy/helm}/templates/podsecuritypolicy.yaml (82%) rename {charts/nfs-subdir-external-provisioner => deploy/helm}/templates/role.yaml (60%) create mode 100644 deploy/helm/templates/rolebinding.yaml create mode 100644 deploy/helm/templates/serviceaccount.yaml rename {charts/nfs-subdir-external-provisioner => deploy/helm}/templates/storageclass.yaml (76%) rename {charts/nfs-subdir-external-provisioner => deploy/helm}/values.yaml (91%) diff --git a/README.md b/README.md index c6e2f368..d910a277 100644 --- a/README.md +++ b/README.md @@ -19,12 +19,16 @@ To note again, you must _already_ have an NFS Server. ### With Helm -Follow the instructions for the stable helm chart maintained at https://github.com/helm/charts/tree/master/stable/nfs-client-provisioner +Follow the instructions from the helm chart [README](deploy/helm/README.md). The tl;dr is -```bash -$ helm install stable/nfs-client-provisioner --set nfs.server=x.x.x.x --set nfs.path=/exported/path +```console +$ git clone https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner.git +$ cd nfs-subdir-external-provisioner/deploy/helm/ +$ helm install nfs-subdir-external-provisioner . \ + --set nfs.server=x.x.x.x \ + --set nfs.path=/exported/path ``` ### Without Helm diff --git a/charts/nfs-subdir-external-provisioner/.helmignore b/charts/nfs-subdir-external-provisioner/.helmignore deleted file mode 100644 index f0c13194..00000000 --- a/charts/nfs-subdir-external-provisioner/.helmignore +++ /dev/null @@ -1,21 +0,0 @@ -# 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 -*~ -# Various IDEs -.project -.idea/ -*.tmproj diff --git a/charts/nfs-subdir-external-provisioner/Chart.yaml b/charts/nfs-subdir-external-provisioner/Chart.yaml deleted file mode 100644 index 61e36f04..00000000 --- a/charts/nfs-subdir-external-provisioner/Chart.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -appVersion: 3.1.0 -description: DEPRECATED - nfs-client is an automatic provisioner that used your *already configured* NFS server, automatically creating Persistent Volumes. -name: nfs-client-provisioner -home: https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client -version: 1.2.11 -sources: -- https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client -deprecated: true -keywords: -- nfs -- storage diff --git a/charts/nfs-subdir-external-provisioner/templates/clusterrolebinding.yaml b/charts/nfs-subdir-external-provisioner/templates/clusterrolebinding.yaml deleted file mode 100644 index e04c7193..00000000 --- a/charts/nfs-subdir-external-provisioner/templates/clusterrolebinding.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if .Values.rbac.create }} -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - name: run-{{ template "nfs-client-provisioner.fullname" . }} -subjects: - - kind: ServiceAccount - name: {{ template "nfs-client-provisioner.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: {{ template "nfs-client-provisioner.fullname" . }}-runner - apiGroup: rbac.authorization.k8s.io -{{- end }} diff --git a/charts/nfs-subdir-external-provisioner/templates/rolebinding.yaml b/charts/nfs-subdir-external-provisioner/templates/rolebinding.yaml deleted file mode 100644 index 57c1c878..00000000 --- a/charts/nfs-subdir-external-provisioner/templates/rolebinding.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if .Values.rbac.create }} -kind: RoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - name: leader-locking-{{ template "nfs-client-provisioner.fullname" . }} -subjects: - - kind: ServiceAccount - name: {{ template "nfs-client-provisioner.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: Role - name: leader-locking-{{ template "nfs-client-provisioner.fullname" . }} - apiGroup: rbac.authorization.k8s.io -{{- end }} diff --git a/charts/nfs-subdir-external-provisioner/templates/serviceaccount.yaml b/charts/nfs-subdir-external-provisioner/templates/serviceaccount.yaml deleted file mode 100644 index 29408967..00000000 --- a/charts/nfs-subdir-external-provisioner/templates/serviceaccount.yaml +++ /dev/null @@ -1,11 +0,0 @@ -{{ if .Values.serviceAccount.create }} -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - name: {{ template "nfs-client-provisioner.serviceAccountName" . }} -{{- end -}} diff --git a/deploy/helm/Chart.yaml b/deploy/helm/Chart.yaml new file mode 100644 index 00000000..0c249e9a --- /dev/null +++ b/deploy/helm/Chart.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +appVersion: 3.1.0 +description: nfs-subdir-external-provisioner is an automatic provisioner that used your *already configured* NFS server, automatically creating Persistent Volumes. +name: nfs-subdir-external-provisioner +home: https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner +version: 3.0.0 +kubeVersion: ">=1.9.0 <1.20.0" +sources: +- https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner +keywords: +- nfs +- storage +- provisioner diff --git a/charts/nfs-subdir-external-provisioner/README.md b/deploy/helm/README.md similarity index 80% rename from charts/nfs-subdir-external-provisioner/README.md rename to deploy/helm/README.md index 4aee358d..63709289 100644 --- a/charts/nfs-subdir-external-provisioner/README.md +++ b/deploy/helm/README.md @@ -1,31 +1,26 @@ -# ⚠️ Repo Archive Notice +# NFS Subdirectory External Provisioner Helm Chart -As of Nov 13, 2020, charts in this repo will no longer be updated. -For more information, see the Helm Charts [Deprecation and Archive Notice](https://github.com/helm/charts#%EF%B8%8F-deprecation-and-archive-notice), and [Update](https://helm.sh/blog/charts-repo-deprecation/). - -# nfs-client-provisioner - -The [NFS client provisioner](https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client) is an automatic provisioner for Kubernetes that uses your *already configured* NFS server, automatically creating Persistent Volumes. - -## DEPRECATION NOTICE - -This chart is deprecated and no longer supported. +The [NFS subdir external provisioner](https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner) is an automatic provisioner for Kubernetes that uses your *already configured* NFS server, automatically creating Persistent Volumes. ## TL;DR; ```console -$ helm install --set nfs.server=x.x.x.x --set nfs.path=/exported/path stable/nfs-client-provisioner +$ git clone https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner.git +$ cd nfs-subdir-external-provisioner/deploy/helm/ +$ helm install nfs-subdir-external-provisioner . \ + --set nfs.server=x.x.x.x \ + --set nfs.path=/exported/path ``` For **arm** deployments set `image.repository` to `--set image.repository=quay.io/external_storage/nfs-client-provisioner-arm` ## Introduction -This charts installs custom [storage class](https://kubernetes.io/docs/concepts/storage/storage-classes/) into a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. It also installs a [NFS client provisioner](https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client) into the cluster which dynamically creates persistent volumes from single NFS share. +This charts installs custom [storage class](https://kubernetes.io/docs/concepts/storage/storage-classes/) into a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. It also installs a [NFS client provisioner](https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner) into the cluster which dynamically creates persistent volumes from single NFS share. ## Prerequisites -- Kubernetes 1.9+ +- Kubernetes >=1.9, <1.20 - Existing NFS Share ## Installing the Chart @@ -33,7 +28,9 @@ This charts installs custom [storage class](https://kubernetes.io/docs/concepts/ To install the chart with the release name `my-release`: ```console -$ helm install --name my-release --set nfs.server=x.x.x.x --set nfs.path=/exported/path stable/nfs-client-provisioner +$ helm install my-release . \ + --set nfs.server=x.x.x.x \ + --set nfs.path=/exported/path``` ``` The command deploys the given storage class in the default configuration. It can be used afterswards to provision persistent volumes. The [configuration](#configuration) section lists the parameters that can be configured during installation. @@ -68,8 +65,8 @@ The following tables lists the configurable parameters of this chart and their d | `storageClass.provisionerName` | Name of the provisionerName | null | | `storageClass.archiveOnDelete` | Archive pvc when deleting | `true` | | `storageClass.accessModes` | Set access mode for PV | `ReadWriteOnce` | -| `nfs.server` | Hostname of the NFS server | null (ip or hostname) | -| `nfs.path` | Basepath of the mount point to be used | `/ifs/kubernetes` | +| `nfs.server` | Hostname of the NFS server (required) | null (ip or hostname) | +| `nfs.path` | Basepath of the mount point to be used | `/nfs-storage` | | `nfs.mountOptions` | Mount options (e.g. 'nfsvers=3') | null | | `resources` | Resources required (e.g. CPU, memory) | `{}` | | `rbac.create` | Use Role-based Access Control | `true` | diff --git a/charts/nfs-subdir-external-provisioner/ci/test-values.yaml b/deploy/helm/ci/test-values.yaml similarity index 100% rename from charts/nfs-subdir-external-provisioner/ci/test-values.yaml rename to deploy/helm/ci/test-values.yaml diff --git a/charts/nfs-subdir-external-provisioner/templates/_helpers.tpl b/deploy/helm/templates/_helpers.tpl similarity index 76% rename from charts/nfs-subdir-external-provisioner/templates/_helpers.tpl rename to deploy/helm/templates/_helpers.tpl index d8d4e516..b5eaabf5 100644 --- a/charts/nfs-subdir-external-provisioner/templates/_helpers.tpl +++ b/deploy/helm/templates/_helpers.tpl @@ -2,7 +2,7 @@ {{/* Expand the name of the chart. */}} -{{- define "nfs-client-provisioner.name" -}} +{{- define "nfs-subdir-external-provisioner.name" -}} {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} {{- end -}} @@ -11,7 +11,7 @@ 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 "nfs-client-provisioner.fullname" -}} +{{- define "nfs-subdir-external-provisioner.fullname" -}} {{- if .Values.fullnameOverride -}} {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} {{- else -}} @@ -27,24 +27,24 @@ If release name contains chart name it will be used as a full name. {{/* Create chart name and version as used by the chart label. */}} -{{- define "nfs-client-provisioner.chart" -}} +{{- define "nfs-subdir-external-provisioner.chart" -}} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} {{- end -}} -{{- define "nfs-client-provisioner.provisionerName" -}} +{{- define "nfs-subdir-external-provisioner.provisionerName" -}} {{- if .Values.storageClass.provisionerName -}} {{- printf .Values.storageClass.provisionerName -}} {{- else -}} -cluster.local/{{ template "nfs-client-provisioner.fullname" . -}} +cluster.local/{{ template "nfs-subdir-external-provisioner.fullname" . -}} {{- end -}} {{- end -}} {{/* Create the name of the service account to use */}} -{{- define "nfs-client-provisioner.serviceAccountName" -}} +{{- define "nfs-subdir-external-provisioner.serviceAccountName" -}} {{- if .Values.serviceAccount.create -}} - {{ default (include "nfs-client-provisioner.fullname" .) .Values.serviceAccount.name }} + {{ default (include "nfs-subdir-external-provisioner.fullname" .) .Values.serviceAccount.name }} {{- else -}} {{ default "default" .Values.serviceAccount.name }} {{- end -}} diff --git a/charts/nfs-subdir-external-provisioner/templates/clusterrole.yaml b/deploy/helm/templates/clusterrole.yaml similarity index 72% rename from charts/nfs-subdir-external-provisioner/templates/clusterrole.yaml rename to deploy/helm/templates/clusterrole.yaml index fa43e0d4..c80d5ded 100644 --- a/charts/nfs-subdir-external-provisioner/templates/clusterrole.yaml +++ b/deploy/helm/templates/clusterrole.yaml @@ -3,11 +3,11 @@ kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} + app: {{ template "nfs-subdir-external-provisioner.name" . }} + chart: {{ template "nfs-subdir-external-provisioner.chart" . }} heritage: {{ .Release.Service }} release: {{ .Release.Name }} - name: {{ template "nfs-client-provisioner.fullname" . }}-runner + name: {{ template "nfs-subdir-external-provisioner.fullname" . }}-runner rules: - apiGroups: [""] resources: ["persistentvolumes"] @@ -25,6 +25,6 @@ rules: - apiGroups: ['extensions'] resources: ['podsecuritypolicies'] verbs: ['use'] - resourceNames: [{{ template "nfs-client-provisioner.fullname" . }}] + resourceNames: [{{ template "nfs-subdir-external-provisioner.fullname" . }}] {{- end }} {{- end }} diff --git a/deploy/helm/templates/clusterrolebinding.yaml b/deploy/helm/templates/clusterrolebinding.yaml new file mode 100644 index 00000000..528c6deb --- /dev/null +++ b/deploy/helm/templates/clusterrolebinding.yaml @@ -0,0 +1,19 @@ +{{- if .Values.rbac.create }} +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + labels: + app: {{ template "nfs-subdir-external-provisioner.name" . }} + chart: {{ template "nfs-subdir-external-provisioner.chart" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: run-{{ template "nfs-subdir-external-provisioner.fullname" . }} +subjects: + - kind: ServiceAccount + name: {{ template "nfs-subdir-external-provisioner.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: {{ template "nfs-subdir-external-provisioner.fullname" . }}-runner + apiGroup: rbac.authorization.k8s.io +{{- end }} diff --git a/charts/nfs-subdir-external-provisioner/templates/deployment.yaml b/deploy/helm/templates/deployment.yaml similarity index 74% rename from charts/nfs-subdir-external-provisioner/templates/deployment.yaml rename to deploy/helm/templates/deployment.yaml index 9c5a34d8..6693722f 100644 --- a/charts/nfs-subdir-external-provisioner/templates/deployment.yaml +++ b/deploy/helm/templates/deployment.yaml @@ -1,10 +1,10 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: {{ template "nfs-client-provisioner.fullname" . }} + name: {{ template "nfs-subdir-external-provisioner.fullname" . }} labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} + app: {{ template "nfs-subdir-external-provisioner.name" . }} + chart: {{ template "nfs-subdir-external-provisioner.chart" . }} heritage: {{ .Release.Service }} release: {{ .Release.Name }} spec: @@ -13,7 +13,7 @@ spec: type: {{ .Values.strategyType }} selector: matchLabels: - app: {{ template "nfs-client-provisioner.name" . }} + app: {{ template "nfs-subdir-external-provisioner.name" . }} release: {{ .Release.Name }} template: metadata: @@ -22,10 +22,10 @@ spec: scheduler.alpha.kubernetes.io/tolerations: '{{ toJson .Values.tolerations }}' {{- end }} labels: - app: {{ template "nfs-client-provisioner.name" . }} + app: {{ template "nfs-subdir-external-provisioner.name" . }} release: {{ .Release.Name }} spec: - serviceAccountName: {{ template "nfs-client-provisioner.serviceAccountName" . }} + serviceAccountName: {{ template "nfs-subdir-external-provisioner.serviceAccountName" . }} {{- if .Values.nodeSelector }} nodeSelector: {{ toYaml .Values.nodeSelector | indent 8 }} @@ -46,11 +46,11 @@ spec: image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} volumeMounts: - - name: nfs-client-root + - name: nfs-subdir-external-provisioner-root mountPath: /persistentvolumes env: - name: PROVISIONER_NAME - value: {{ template "nfs-client-provisioner.provisionerName" . }} + value: {{ template "nfs-subdir-external-provisioner.provisionerName" . }} - name: NFS_SERVER value: {{ .Values.nfs.server }} - name: NFS_PATH @@ -60,12 +60,12 @@ spec: {{ toYaml . | indent 12 }} {{- end }} volumes: - - name: nfs-client-root + - name: nfs-subdir-external-provisioner-root {{- if .Values.buildMode }} emptyDir: {} {{- else if .Values.nfs.mountOptions }} persistentVolumeClaim: - claimName: pvc-{{ template "nfs-client-provisioner.fullname" . }} + claimName: pvc-{{ template "nfs-subdir-external-provisioner.fullname" . }} {{- else }} nfs: server: {{ .Values.nfs.server }} diff --git a/charts/nfs-subdir-external-provisioner/templates/persistentvolume.yaml b/deploy/helm/templates/persistentvolume.yaml similarity index 76% rename from charts/nfs-subdir-external-provisioner/templates/persistentvolume.yaml rename to deploy/helm/templates/persistentvolume.yaml index d13ad0b2..6dc31bcb 100644 --- a/charts/nfs-subdir-external-provisioner/templates/persistentvolume.yaml +++ b/deploy/helm/templates/persistentvolume.yaml @@ -2,9 +2,9 @@ apiVersion: v1 kind: PersistentVolume metadata: - name: pv-{{ template "nfs-client-provisioner.fullname" . }} + name: pv-{{ template "nfs-subdir-external-provisioner.fullname" . }} labels: - nfs-client-provisioner: {{ template "nfs-client-provisioner.fullname" . }} + nfs-subdir-external-provisioner: {{ template "nfs-subdir-external-provisioner.fullname" . }} spec: capacity: storage: 10Mi diff --git a/charts/nfs-subdir-external-provisioner/templates/persistentvolumeclaim.yaml b/deploy/helm/templates/persistentvolumeclaim.yaml similarity index 62% rename from charts/nfs-subdir-external-provisioner/templates/persistentvolumeclaim.yaml rename to deploy/helm/templates/persistentvolumeclaim.yaml index 9bcf4309..29d8544e 100644 --- a/charts/nfs-subdir-external-provisioner/templates/persistentvolumeclaim.yaml +++ b/deploy/helm/templates/persistentvolumeclaim.yaml @@ -2,7 +2,7 @@ kind: PersistentVolumeClaim apiVersion: v1 metadata: - name: pvc-{{ template "nfs-client-provisioner.fullname" . }} + name: pvc-{{ template "nfs-subdir-external-provisioner.fullname" . }} spec: accessModes: - {{ .Values.storageClass.accessModes }} @@ -10,7 +10,7 @@ spec: storageClassName: "" selector: matchLabels: - nfs-client-provisioner: {{ template "nfs-client-provisioner.fullname" . }} + nfs-subdir-external-provisioner: {{ template "nfs-subdir-external-provisioner.fullname" . }} resources: requests: storage: 10Mi diff --git a/charts/nfs-subdir-external-provisioner/templates/podsecuritypolicy.yaml b/deploy/helm/templates/podsecuritypolicy.yaml similarity index 82% rename from charts/nfs-subdir-external-provisioner/templates/podsecuritypolicy.yaml rename to deploy/helm/templates/podsecuritypolicy.yaml index 830fad6e..ff07ee7f 100644 --- a/charts/nfs-subdir-external-provisioner/templates/podsecuritypolicy.yaml +++ b/deploy/helm/templates/podsecuritypolicy.yaml @@ -2,9 +2,9 @@ apiVersion: {{ template "podSecurityPolicy.apiVersion" . }} kind: PodSecurityPolicy metadata: - name: {{ template "nfs-client-provisioner.fullname" . }} + name: {{ template "nfs-subdir-external-provisioner.fullname" . }} labels: - app: {{ template "nfs-client-provisioner.name" . }} + app: {{ template "nfs-subdir-external-provisioner.name" . }} chart: {{ .Chart.Name }}-{{ .Chart.Version }} heritage: {{ .Release.Service }} release: {{ .Release.Name }} diff --git a/charts/nfs-subdir-external-provisioner/templates/role.yaml b/deploy/helm/templates/role.yaml similarity index 60% rename from charts/nfs-subdir-external-provisioner/templates/role.yaml rename to deploy/helm/templates/role.yaml index 0cccdcbd..7953efed 100644 --- a/charts/nfs-subdir-external-provisioner/templates/role.yaml +++ b/deploy/helm/templates/role.yaml @@ -3,11 +3,11 @@ kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} + app: {{ template "nfs-subdir-external-provisioner.name" . }} + chart: {{ template "nfs-subdir-external-provisioner.chart" . }} heritage: {{ .Release.Service }} release: {{ .Release.Name }} - name: leader-locking-{{ template "nfs-client-provisioner.fullname" . }} + name: leader-locking-{{ template "nfs-subdir-external-provisioner.fullname" . }} rules: - apiGroups: [""] resources: ["endpoints"] @@ -16,6 +16,6 @@ rules: - apiGroups: ['extensions'] resources: ['podsecuritypolicies'] verbs: ['use'] - resourceNames: [{{ template "nfs-client-provisioner.fullname" . }}] + resourceNames: [{{ template "nfs-subdir-external-provisioner.fullname" . }}] {{- end }} {{- end }} diff --git a/deploy/helm/templates/rolebinding.yaml b/deploy/helm/templates/rolebinding.yaml new file mode 100644 index 00000000..1203bba2 --- /dev/null +++ b/deploy/helm/templates/rolebinding.yaml @@ -0,0 +1,19 @@ +{{- if .Values.rbac.create }} +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + labels: + app: {{ template "nfs-subdir-external-provisioner.name" . }} + chart: {{ template "nfs-subdir-external-provisioner.chart" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: leader-locking-{{ template "nfs-subdir-external-provisioner.fullname" . }} +subjects: + - kind: ServiceAccount + name: {{ template "nfs-subdir-external-provisioner.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: Role + name: leader-locking-{{ template "nfs-subdir-external-provisioner.fullname" . }} + apiGroup: rbac.authorization.k8s.io +{{- end }} diff --git a/deploy/helm/templates/serviceaccount.yaml b/deploy/helm/templates/serviceaccount.yaml new file mode 100644 index 00000000..5fc184d7 --- /dev/null +++ b/deploy/helm/templates/serviceaccount.yaml @@ -0,0 +1,11 @@ +{{ if .Values.serviceAccount.create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app: {{ template "nfs-subdir-external-provisioner.name" . }} + chart: {{ template "nfs-subdir-external-provisioner.chart" . }} + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: {{ template "nfs-subdir-external-provisioner.serviceAccountName" . }} +{{- end -}} diff --git a/charts/nfs-subdir-external-provisioner/templates/storageclass.yaml b/deploy/helm/templates/storageclass.yaml similarity index 76% rename from charts/nfs-subdir-external-provisioner/templates/storageclass.yaml rename to deploy/helm/templates/storageclass.yaml index 81953c0d..e3bc69c2 100644 --- a/charts/nfs-subdir-external-provisioner/templates/storageclass.yaml +++ b/deploy/helm/templates/storageclass.yaml @@ -3,8 +3,8 @@ apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: labels: - app: {{ template "nfs-client-provisioner.name" . }} - chart: {{ template "nfs-client-provisioner.chart" . }} + app: {{ template "nfs-subdir-external-provisioner.name" . }} + chart: {{ template "nfs-subdir-external-provisioner.chart" . }} heritage: {{ .Release.Service }} release: {{ .Release.Name }} name: {{ .Values.storageClass.name }} @@ -12,7 +12,7 @@ metadata: annotations: storageclass.kubernetes.io/is-default-class: "true" {{- end }} -provisioner: {{ template "nfs-client-provisioner.provisionerName" . }} +provisioner: {{ template "nfs-subdir-external-provisioner.provisionerName" . }} allowVolumeExpansion: {{ .Values.storageClass.allowVolumeExpansion }} reclaimPolicy: {{ .Values.storageClass.reclaimPolicy }} parameters: diff --git a/charts/nfs-subdir-external-provisioner/values.yaml b/deploy/helm/values.yaml similarity index 91% rename from charts/nfs-subdir-external-provisioner/values.yaml rename to deploy/helm/values.yaml index 90b985f3..64463088 100644 --- a/charts/nfs-subdir-external-provisioner/values.yaml +++ b/deploy/helm/values.yaml @@ -1,7 +1,3 @@ -# Default values for nfs-client-provisioner. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - replicaCount: 1 strategyType: Recreate @@ -12,7 +8,7 @@ image: nfs: server: - path: /ifs/kubernetes + path: /nfs-storage mountOptions: # For creating the StorageClass automatically: