1
0

Compare commits

...

41 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
fab8b5623e Merge pull request #79 from yonatankahana/v4.0.1-prep
Bump helm chart version to release v4.0.1
2021-03-27 05:04:43 -07:00
Yonatan Kahana
b668ec9f74 Update cloudbuild with multiarch platforms
Signed-off-by: Yonatan Kahana <yonatankahana.il@gmail.com>
2021-03-26 12:51:34 +03:00
Yonatan Kahana
b5b2918215 Remove old cloudbuild symlink
Signed-off-by: Yonatan Kahana <yonatankahana.il@gmail.com>
2021-03-26 12:44:46 +03:00
Yonatan Kahana
2bee3e0f77 Merge branch 'master' of github.com:kubernetes-sigs/nfs-subdir-external-provisioner into v4.0.1-prep 2021-03-26 12:41:00 +03:00
Yonatan Kahana
f86551598e Bump helm chart version to release v4.0.1
Signed-off-by: Yonatan Kahana <yonatankahana.il@gmail.com>
2021-03-24 17:53:09 +02:00
Kubernetes Prow Robot
522d8f83d5 Merge pull request #76 from yonatankahana/v4.0.1-prep
Release v4.0.1
2021-03-23 18:54:05 -07:00
Kubernetes Prow Robot
5364f1b4bf Merge pull request #68 from mustache1up/helm-ondelete-support
Helm storageClass.onDelete parameter support
2021-03-21 08:53:43 -07:00
mustache1up
7417303508 enhance onDelete description on values.yaml 2021-03-21 02:08:03 -03:00
Yonatan Kahana
9affea2658 Bump helm chart to 4.0.1
Signed-off-by: Yonatan Kahana <yonatankahana.il@gmail.com>
2021-03-17 18:59:02 +02:00
Yonatan Kahana
8c82a35627 Add changelog for 4.0.1
Signed-off-by: Yonatan Kahana <yonatankahana.il@gmail.com>
2021-03-14 20:07:23 +02:00
Kubernetes Prow Robot
863e96984b Merge pull request #74 from yonatankahana/owners-yonatankahana
Add yonatankahana to OWNERS file
2021-03-12 10:34:22 -08:00
Yonatan Kahana
e5d160f03e Add yonatankahana to OWNERS file
Signed-off-by: Yonatan Kahana <yonatankahana.il@gmail.com>
2021-03-11 20:14:30 +02:00
mustache1up
8b8d398b53 Bump chart version 2021-03-10 17:55:58 -03:00
mustache1up
707f140b76 Merge branch 'master' of https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner into helm-ondelete-support 2021-03-10 17:52:58 -03:00
Kubernetes Prow Robot
da1c2a6e3e Merge pull request #69 from yonatankahana/helm-linter-fix
Fix the helm chart linter test failure
2021-03-09 20:17:14 -08:00
mustache1up
8e20383b4c Standardize chart param 'PVC's as uppercase and accepted values with code markdown 2021-03-09 18:22:44 -03:00
Yonatan Kahana
21815a26f4 Fix the helm chart linter test failure by disabling maintainers validation and remove trailing spaces
Signed-off-by: Yonatan Kahana <yonatankahana.il@gmail.com>
2021-03-09 20:19:55 +02:00
mustache1up
b33cad598a adapt values.yaml for linter removing trailling spaces on empty params 2021-03-05 23:48:41 -03:00
mustache1up
c50d1aea01 document valid values for storageClass.onDelete chart param 2021-03-05 23:44:59 -03:00
mustache1up
5fda156007 Merge branch 'master' into helm-ondelete-support 2021-03-05 19:37:36 -03:00
Kubernetes Prow Robot
f08caa228c Merge pull request #66 from yonatankahana/helm-chart-lint
Setup chart linter as github action
2021-03-05 09:24:22 -08:00
Kubernetes Prow Robot
f491425b8b Merge pull request #61 from yonatankahana/helmchart4.0.3
Bump helm chart to 4.0.3
2021-03-05 09:22:22 -08:00
mustache1up
1e913d1ade Bump chart version 2021-03-05 01:50:46 -03:00
mustache1up
a57db9a5a7 Document storageClass.onDelete param for the helm chart 2021-03-05 01:50:45 -03:00
mustache1up
819f6d382d Add onDelete support to helm chart 2021-03-05 01:50:41 -03:00
Yonatan Kahana
221db2f021 Setup chart linter as github action
Signed-off-by: Yonatan Kahana <yonatankahana.il@gmail.com>
2021-03-04 23:51:33 +02:00
Yonatan Kahana
b7b4412004 Bump helm chart to 4.0.3
Signed-off-by: Yonatan Kahana <yonatankahana.il@gmail.com>
2021-03-03 22:51:40 +02:00
Kubernetes Prow Robot
487b9092a6 Merge pull request #56 from ariksidney/helm-pathpattern-support
Helm pathpattern support
2021-03-03 09:29:20 -08:00
Kubernetes Prow Robot
a99f3dafb1 Merge pull request #59 from petermicuch/restore_delete_folder_name
Preserve name of the PV directory name during archiving
2021-03-03 07:55:20 -08:00
ariksidney
571aadd47e Clarify usage of pathPattern parameter 2021-02-27 11:17:33 +01:00
Peter Micuch
9b9ac9aa8d Preserve name of the PV directory name during archiving 2021-02-25 10:10:50 +01:00
Kubernetes Prow Robot
6b7372c8cd Merge pull request #58 from yonatankahana/arm
Add arm7 to multiarch build
2021-02-22 20:44:03 -08:00
Yonatan Kahana
5f8f90d71a Add arm7 to multiarch build
Signed-off-by: Yonatan Kahana <yonatankahana.il@gmail.com>
2021-02-21 20:41:25 +02:00
Kubernetes Prow Robot
f4f3c572b2 Merge pull request #54 from rombert/origin/chart-leader-election-fix
helm chart: fix leader election flag
2021-02-17 10:59:06 -08:00
ariksidney
8da26f952b Update README to describe new pathPattern parameter 2021-02-17 13:15:45 +01:00
ariksidney
f716044142 Add pathPattern support to Helmchart 2021-02-17 13:14:59 +01:00
Robert Munteanu
54ea552d39 helm chart: fix leader election flag
env var values need to be string, not boolean.
2021-02-16 22:16:57 +01:00
Kubernetes Prow Robot
0a66252619 Merge pull request #52 from rombert/origin/chart-leader-election
Update chart to surface leader election flag
2021-02-16 12:11:09 -08:00
Robert Munteanu
11566f6795 Bump chart version 2021-02-16 11:03:59 +01:00
Robert Munteanu
8903a7c073 Document leaderElection.enabled flag for the helm chart 2021-02-16 10:21:09 +01:00
Robert Munteanu
099ddce5cc Update chart to surface leader election flag 2021-02-15 20:40:57 +01:00
14 changed files with 83 additions and 14 deletions

View File

@@ -1 +0,0 @@
./release-tools/cloudbuild.sh

21
.cloudbuild.sh Executable file
View File

@@ -0,0 +1,21 @@
#! /bin/bash
# Copyright 2020 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
: ${CSI_PROW_BUILD_PLATFORMS:="linux amd64; linux arm -arm; linux arm64 -arm64; linux ppc64le -ppc64le; linux s390x -s390x"}
# shellcheck disable=SC1091
. release-tools/cloudbuild.sh

18
.github/workflows/helm-chart-lint.yml vendored Normal file
View File

@@ -0,0 +1,18 @@
name: Lint Helm Charts
on: pull_request
jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.0.1
- name: Run chart-testing (lint)
run: ct lint --validate-maintainers=false

View File

@@ -1,3 +1,7 @@
# v4.0.1
- Add arm7 (32bit) support (https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/pull/58)
- Preserve name of the PV directory name during archiving (https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/pull/59)
# v4.0.0
- Remove redundant field in the rbac.yaml (https://github.com/kubernetes-retired/external-storage/pull/970)
- Use `kubernetes-sigs/sig-storage-lib-external-provisioner` instead of `incubator/external-storage/lib` (https://github.com/kubernetes-retired/external-storage/pull/1026)

View File

@@ -17,4 +17,4 @@ all: build
include release-tools/build.make
BUILD_PLATFORMS=linux amd64; linux arm64 -arm64; linux ppc64le -ppc64le; linux s390x -s390x
BUILD_PLATFORMS=linux amd64; linux arm -arm; linux arm64 -arm64; linux ppc64le -ppc64le; linux s390x -s390x

1
OWNERS
View File

@@ -6,3 +6,4 @@ approvers:
- kmova
- jackielii
- ashishranjan738
- yonatankahana

View File

@@ -90,7 +90,7 @@ spec:
serviceAccountName: nfs-client-provisioner
containers:
- name: nfs-client-provisioner
image: gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.0
image: gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.1
volumeMounts:
- name: nfs-client-root
mountPath: /persistentvolumes
@@ -120,7 +120,7 @@ To disable leader election, define an env variable named ENABLE_LEADER_ELECTION
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------: |
| onDelete | If it exists and has a delete value, delete the directory, if it exists and has a retain value, save the directory. | will be archived with name on the share: `archived-<volume.Name>` |
| archiveOnDelete | If it exists and has a false value, delete the directory. if `onDelete` exists, `archiveOnDelete` will be ignored. | will be archived with name on the share: `archived-<volume.Name>` |
| pathPattern | Specifies a template for creating a directory path via PVC metadata's such as labels, annotations, name or namespace. To specify metadata use `${.PVC.}`: `${PVC.namespace}` | n/a |
| pathPattern | Specifies a template for creating a directory path via PVC metadata's such as labels, annotations, name or namespace. To specify metadata use `${.PVC.<metadata>}`. Example: If folder should be named like `<pvc-namespace>-<pvc-name>`, use `${.PVC.namespace}-${.PVC.name}` as pathPattern. | n/a |
This is `deploy/class.yaml` which defines the NFS subdir external provisioner's Kubernetes Storage Class:

View File

@@ -1,9 +1,9 @@
apiVersion: v1
appVersion: 4.0.0
appVersion: 4.0.1
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: 4.0.0
version: 4.0.6
kubeVersion: ">=1.9.0-0"
sources:
- https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner

View File

@@ -53,15 +53,18 @@ The following tables lists the configurable parameters of this chart and their d
| `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 | `gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner` |
| `image.tag` | Version of provisioner image | `v4.0.0` |
| `image.tag` | Version of provisioner image | `v4.0.1` |
| `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.archiveOnDelete` | Archive PVC when deleting | `true` |
| `storageClass.onDelete` | Strategy on PVC deletion. Overrides `archiveOnDelete` when set to lowercase values `delete` or `retain` | null |
| `storageClass.pathPattern` | Specifies a template for the directory name | null |
| `storageClass.accessModes` | Set access mode for PV | `ReadWriteOnce` |
| `leaderElection.enabled` | Enables or disables leader election | `true` |
| `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 |

View File

@@ -55,6 +55,10 @@ spec:
value: {{ .Values.nfs.server }}
- name: NFS_PATH
value: {{ .Values.nfs.path }}
{{- if eq .Values.leaderElection.enabled false }}
- name: ENABLE_LEADER_ELECTION
value: "false"
{{- end }}
{{- with .Values.resources }}
resources:
{{ toYaml . | indent 12 }}

View File

@@ -17,6 +17,12 @@ allowVolumeExpansion: {{ .Values.storageClass.allowVolumeExpansion }}
reclaimPolicy: {{ .Values.storageClass.reclaimPolicy }}
parameters:
archiveOnDelete: "{{ .Values.storageClass.archiveOnDelete }}"
{{- if .Values.storageClass.pathPattern }}
pathPattern: "{{ .Values.storageClass.pathPattern }}"
{{- end }}
{{- if .Values.storageClass.onDelete }}
onDelete: "{{ .Values.storageClass.onDelete }}"
{{- end }}
{{- if .Values.nfs.mountOptions }}
mountOptions:
{{- range .Values.nfs.mountOptions }}

View File

@@ -3,7 +3,7 @@ strategyType: Recreate
image:
repository: gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner
tag: v4.0.0
tag: v4.0.1
pullPolicy: IfNotPresent
nfs:
@@ -35,9 +35,22 @@ storageClass:
# When set to false your PVs will not be archived by the provisioner upon deletion of the PVC.
archiveOnDelete: true
# If it exists and has 'delete' value, delete the directory. If it exists and has 'retain' value, save the directory.
# Overrides archiveOnDelete.
# Ignored if value not set.
onDelete:
# Specifies a template for creating a directory path via PVC metadata's such as labels, annotations, name or namespace.
# Ignored if value not set.
pathPattern:
# Set access mode - ReadWriteOnce, ReadOnlyMany or ReadWriteMany
accessModes: ReadWriteOnce
leaderElection:
# When set to false leader election will be disabled
enabled: true
## For RBAC support:
rbac:
# Specifies whether RBAC resources should be created

View File

@@ -139,8 +139,8 @@ func (p *nfsProvisioner) Provision(ctx context.Context, options controller.Provi
func (p *nfsProvisioner) Delete(ctx context.Context, volume *v1.PersistentVolume) error {
path := volume.Spec.PersistentVolumeSource.NFS.Path
relativePath := strings.Replace(path, p.path, "", 1)
oldPath := filepath.Join(mountPath, relativePath)
basePath := filepath.Base(path)
oldPath := filepath.Join(mountPath, basePath)
if _, err := os.Stat(oldPath); os.IsNotExist(err) {
glog.Warningf("path %s does not exist, deletion skipped", oldPath)
@@ -179,7 +179,7 @@ func (p *nfsProvisioner) Delete(ctx context.Context, volume *v1.PersistentVolume
}
}
archivePath := filepath.Join(mountPath, "archived-"+volume.Name)
archivePath := filepath.Join(mountPath, "archived-"+basePath)
glog.V(4).Infof("archiving path %s to %s", oldPath, archivePath)
return os.Rename(oldPath, archivePath)
}

View File

@@ -21,7 +21,7 @@ spec:
serviceAccountName: nfs-client-provisioner
containers:
- name: nfs-client-provisioner
image: gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.0
image: gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.1
volumeMounts:
- name: nfs-client-root
mountPath: /persistentvolumes

View File

@@ -14,7 +14,7 @@ spec:
serviceAccountName: nfs-client-provisioner
containers:
- name: nfs-client-provisioner
image: gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.0
image: gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.1
volumeMounts:
- name: nfs-client-root
mountPath: /persistentvolumes