Initial commit
This commit is contained in:
36
nfs-client-provisioner/templates/NOTES.txt
Normal file
36
nfs-client-provisioner/templates/NOTES.txt
Normal file
@ -0,0 +1,36 @@
|
||||
The NFS Client Provisioner deployment has now been installed.
|
||||
|
||||
{{- if not .Values.nfs.server }}
|
||||
##############################################################################
|
||||
#### ERROR: You did not provide NFS server IP. ####
|
||||
##############################################################################
|
||||
|
||||
All pods do not go to the running state if the NFS server IP was not provided.
|
||||
|
||||
{{- end }}
|
||||
|
||||
{{ if .Values.storageClass.create -}}
|
||||
A storage class named '{{ .Values.storageClass.name }}' has now been created
|
||||
and is available to provision dynamic volumes.
|
||||
|
||||
You can use this storageclass by creating a `PersistentVolumeClaim` with the
|
||||
correct storageClassName attribute. For example:
|
||||
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: test-claim
|
||||
annotations:
|
||||
volume.beta.kubernetes.io/storage-class: "{{ .Values.storageClass.name }}"
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Mi
|
||||
|
||||
{{ else -}}
|
||||
A storage class has NOT been created. You may create a custom `StorageClass`
|
||||
resource with a `provisioner` annotation of `{{ template "nfs-client-provisioner.provisionerName" . }}`.
|
||||
{{ end -}}
|
||||
43
nfs-client-provisioner/templates/_helpers.tpl
Normal file
43
nfs-client-provisioner/templates/_helpers.tpl
Normal file
@ -0,0 +1,43 @@
|
||||
{{/* 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 -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "nfs-client-provisioner.provisionerName" -}}
|
||||
{{- if .Values.storageClass.provisionerName -}}
|
||||
{{- printf .Values.storageClass.provisionerName -}}
|
||||
{{- else -}}
|
||||
cluster.local/{{ template "nfs-client-provisioner.fullname" . -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
24
nfs-client-provisioner/templates/clusterrole.yaml
Normal file
24
nfs-client-provisioner/templates/clusterrole.yaml
Normal file
@ -0,0 +1,24 @@
|
||||
{{ if .Values.rbac.create -}}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
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 }}
|
||||
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: ["list", "watch", "create", "update", "patch"]
|
||||
{{- end -}}
|
||||
19
nfs-client-provisioner/templates/clusterrolebinding.yaml
Normal file
19
nfs-client-provisioner/templates/clusterrolebinding.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
{{- if .Values.rbac.create }}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
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" . }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: {{ template "nfs-client-provisioner.fullname" . }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: {{ template "nfs-client-provisioner.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end -}}
|
||||
57
nfs-client-provisioner/templates/deployment.yaml
Normal file
57
nfs-client-provisioner/templates/deployment.yaml
Normal file
@ -0,0 +1,57 @@
|
||||
{{- if .Values.nfs.server }}
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
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 }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ template "nfs-client-provisioner.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "nfs-client-provisioner.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
serviceAccountName: {{ if .Values.rbac.create }}{{ template "nfs-client-provisioner.fullname" . }}{{ else }}{{ .Values.rbac.serviceAccountName | quote }}{{ 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 }}
|
||||
volumes:
|
||||
- name: nfs-client-root
|
||||
nfs:
|
||||
server: {{ .Values.nfs.server }}
|
||||
path: {{ .Values.nfs.path }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
11
nfs-client-provisioner/templates/serviceaccount.yaml
Normal file
11
nfs-client-provisioner/templates/serviceaccount.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
{{- if .Values.rbac.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.fullname" . }}
|
||||
{{- end -}}
|
||||
13
nfs-client-provisioner/templates/storageclass.yaml
Normal file
13
nfs-client-provisioner/templates/storageclass.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
{{ if .Values.storageClass.create -}}
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
name: {{ .Values.storageClass.name }}
|
||||
labels:
|
||||
app: {{ template "nfs-client-provisioner.name" . }}
|
||||
chart: {{ template "nfs-client-provisioner.chart" . }}
|
||||
heritage: {{ .Release.Service }}
|
||||
release: {{ .Release.Name }}
|
||||
provisioner: {{ template "nfs-client-provisioner.provisionerName" . }}
|
||||
reclaimPolicy: {{.Values.storageClass.reclaimPolicy}}
|
||||
{{ end -}}
|
||||
Reference in New Issue
Block a user