Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
181 commits
Select commit Hold shift + click to select a range
968bf7b
update changelog and prow tag for 1.6.0-rc1
leiyiz Jul 19, 2023
a93d193
Merge pull request #565 from leiyiz/master
k8s-ci-robot Jul 19, 2023
b7050f1
Remove enterprise default until blockers removed
hsadoyan Jul 25, 2023
8b2d428
Update go version to 1.20.6 to fix CVE
Sneha-at Aug 4, 2023
89c9586
Merge pull request #575 from Sneha-at/version-update
k8s-ci-robot Aug 7, 2023
61f06be
Updating changelog for release v1.6.1, v1.5.7, v1.4.7, v1.3.17
pwschuurman Aug 9, 2023
c473c28
Add tests for DeleteSnapshot
hsadoyan Aug 15, 2023
2bcf867
Merge pull request #581 from hsadoyan/deletesnapshot-test
k8s-ci-robot Aug 16, 2023
6b98b87
Implement Multishare CreateSnapshot
hsadoyan Jul 25, 2023
8a5d8b8
Merge pull request #580 from hsadoyan/multishare-backup
k8s-ci-robot Aug 17, 2023
ed6bbe8
Add test for DeleteSnapshot multishare
hsadoyan Aug 17, 2023
d7c73ea
Update dependencies
hsadoyan Aug 18, 2023
475e5f8
Merge pull request #582 from hsadoyan/delete-multishare-test
k8s-ci-robot Aug 18, 2023
9de7ec3
zonal large tier support
leiyiz Aug 18, 2023
65aa14a
Merge pull request #583 from hsadoyan/update-api-file-version
k8s-ci-robot Aug 21, 2023
9906cf5
Implement Multishare CreateVolume with content source
hsadoyan Aug 18, 2023
949074c
Merge pull request #586 from leiyiz/master
k8s-ci-robot Aug 22, 2023
b775201
Merge pull request #585 from hsadoyan/multishare-restore
k8s-ci-robot Aug 23, 2023
8d3136a
Update Go version to 1.20.7 to fix CVEs
Sneha-at Aug 24, 2023
62e3c90
Merge pull request #590 from Sneha-at/version-update
k8s-ci-robot Aug 24, 2023
a6f415f
Update changelog for release v1.6.2, v1.5.8, v1.3.18
pwschuurman Aug 29, 2023
f576e12
Merge pull request #579 from pwschuurman/update-filestore-changelog
leiyiz Aug 29, 2023
95235b8
Bump go version to 1.20.8
tyuchn Sep 21, 2023
8f1c52b
Add multishare backup flag
hsadoyan Sep 27, 2023
5f371b9
Merge pull request #599 from kubernetes-sigs/tyuchn-patch-4
leiyiz Sep 28, 2023
94d05cd
Make pkgdir match k8s_e2e dir
hsadoyan Sep 28, 2023
513e6f1
Remove ARG BUILDPLATFORM from Dockerfile
tyuchn Sep 29, 2023
25e0ded
Merge pull request #610 from kubernetes-sigs/tyuchn-patch-6
tyuchn Oct 2, 2023
55e6ce8
Merge pull request #608 from hsadoyan/fix-pkgdir-mismatch
k8s-ci-robot Oct 2, 2023
d28992c
Bump webhook go version to 1.20.8
tyuchn Oct 2, 2023
8ae9749
add tyuchn to owner and reviewer list
tyuchn Oct 2, 2023
8467d3a
Merge pull request #618 from kubernetes-sigs/tyuchn-patch-9
tyuchn Oct 3, 2023
79e9681
Merge pull request #595 from pwschuurman/update-filestore-changelog-2
k8s-ci-robot Oct 3, 2023
c927f77
Merge pull request #604 from hsadoyan/hide-multishare-backups-behind-…
k8s-ci-robot Oct 3, 2023
6bab9bd
Merge pull request #617 from kubernetes-sigs/tyuchn-patch-8
tyuchn Oct 3, 2023
ce00529
Remove ARG BUILDPLATFORM from webhook Dockerfile
tyuchn Oct 4, 2023
0ec2339
Merge pull request #636 from kubernetes-sigs/tyuchn-patch-14
tyuchn Oct 4, 2023
d1a0779
changelog for release v1.6.5, v1.5.11, v1.3.21
tyuchn Oct 5, 2023
212da9b
Fix path
hsadoyan Oct 10, 2023
8803627
Merge pull request #637 from hsadoyan/replace-all-paths
k8s-ci-robot Oct 11, 2023
c6a3a86
Enable dependabot
tyuchn Oct 16, 2023
151775e
Merge pull request #638 from tyuchn/release-1004
tyuchn Oct 16, 2023
82fe00e
Merge pull request #642 from kubernetes-sigs/tyuchn-patch-15
k8s-ci-robot Oct 16, 2023
bde0adc
Bump golang from 1.20.8 to 1.21.3
dependabot[bot] Oct 16, 2023
39cfe99
Merge pull request #644 from kubernetes-sigs/dependabot/docker/golang…
k8s-ci-robot Oct 16, 2023
7e7f5c5
Fix CVE-2023-44487 and CVE-2023-39323
dannawang0221 Oct 16, 2023
2821cae
Merge pull request #643 from dannawang0221/fix-CVE-2023-39323
k8s-ci-robot Oct 17, 2023
432c244
Add Groups in Dependabot for the Rest Dependencies
tyuchn Oct 18, 2023
6b48de9
Merge pull request #665 from kubernetes-sigs/tyuchn-patch-16
k8s-ci-robot Oct 18, 2023
472b3a8
bump go version to 1.20.10
tyuchn Oct 19, 2023
1027ee5
Merge pull request #671 from tyuchn/go1.20.10
k8s-ci-robot Oct 19, 2023
f5caf00
Bump golang from 1.20.9 to 1.21.3
dependabot[bot] Oct 19, 2023
d2c141c
Bump the onsi group with 1 update
dependabot[bot] Oct 23, 2023
1767363
Merge pull request #678 from kubernetes-sigs/dependabot/go_modules/on…
k8s-ci-robot Oct 25, 2023
4e2f0a6
Merge pull request #666 from kubernetes-sigs/dependabot/docker/golang…
k8s-ci-robot Nov 1, 2023
ca58544
add songjiaxun to owners
songjiaxun Nov 8, 2023
49dfe33
Merge pull request #699 from songjiaxun/master
tyuchn Nov 8, 2023
8b52a51
update CHANGELOG
songjiaxun Nov 9, 2023
e0efd30
Merge pull request #711 from songjiaxun/master
k8s-ci-robot Nov 10, 2023
20548ea
Bump the onsi group with 1 update
dependabot[bot] Nov 13, 2023
ccd1698
Bump golang from 1.20.10 to 1.21.4 in /cmd/webhook
dependabot[bot] Nov 13, 2023
e48865e
Bump golang from 1.21.3 to 1.21.4
dependabot[bot] Nov 13, 2023
e53c57b
Bump the google-golang group with 2 updates
dependabot[bot] Nov 20, 2023
c86b543
Merge pull request #720 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Nov 22, 2023
d0bf287
Bump github.com/go-openapi/swag from 0.21.1 to 0.22.4
dependabot[bot] Nov 22, 2023
202c325
Bump golang.org/x/sys from 0.13.0 to 0.14.0
dependabot[bot] Nov 22, 2023
ea7a3cc
Merge pull request #718 from kubernetes-sigs/dependabot/docker/cmd/we…
leiyiz Nov 22, 2023
3f8ad89
Merge pull request #719 from kubernetes-sigs/dependabot/docker/golang…
k8s-ci-robot Nov 22, 2023
e016e72
Merge pull request #679 from kubernetes-sigs/dependabot/go_modules/gi…
k8s-ci-robot Nov 22, 2023
b897f78
Merge pull request #715 from kubernetes-sigs/dependabot/go_modules/on…
k8s-ci-robot Nov 23, 2023
b65b85b
Bump the spf13 group with 1 update
dependabot[bot] Nov 23, 2023
bea4df9
Merge pull request #691 from kubernetes-sigs/dependabot/go_modules/sp…
k8s-ci-robot Nov 23, 2023
ef407fb
Merge pull request #696 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Nov 23, 2023
e0afde9
Bump golang.org/x/crypto from 0.14.0 to 0.16.0
dependabot[bot] Nov 27, 2023
4e1db2f
Merge pull request #727 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Nov 28, 2023
346df21
Bump the google-golang group with 1 update
dependabot[bot] Nov 28, 2023
cdd835c
Merge pull request #724 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Nov 29, 2023
47a5534
Bump the github-google group with 1 update
dependabot[bot] Nov 29, 2023
ad1825a
Merge pull request #722 from kubernetes-sigs/dependabot/go_modules/gi…
k8s-ci-robot Nov 29, 2023
277b205
Bump the golang-x group with 2 updates
dependabot[bot] Nov 29, 2023
923edfd
Merge pull request #733 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Dec 1, 2023
af6792f
Bump golang from 1.21.4 to 1.21.5
dependabot[bot] Dec 11, 2023
1ad7a43
Bump golang from 1.21.4 to 1.21.5 in /cmd/webhook
dependabot[bot] Dec 11, 2023
df6f27f
Add NfsExportOptions parsing
hsadoyan Nov 28, 2023
01874bf
Merge pull request #737 from hsadoyan/ip-rule-passthrough
k8s-ci-robot Dec 13, 2023
f24f925
Add changelog for 1.6.9
msau42 Dec 15, 2023
eea798e
Add changelog for 1.5.14
msau42 Dec 15, 2023
5f50d9e
Add changelog for 1.3.24
msau42 Dec 15, 2023
d6e2bb0
Merge pull request #744 from msau42/changelog
k8s-ci-robot Dec 15, 2023
3e57420
Fix issue where errors were reported as info
hsadoyan Dec 15, 2023
9eb11bf
Merge pull request #744 from msau42/changelog
k8s-ci-robot Dec 15, 2023
9dadd6e
CVE-2023-48795: bump golang.org/x/crypto to v0.17.0
sunnylovestiramisu Dec 21, 2023
78a821b
Merge pull request #746 from hsadoyan/ms-error-response
k8s-ci-robot Dec 21, 2023
82536b7
Merge pull request #755 from sunnylovestiramisu/cve-fix
k8s-ci-robot Dec 22, 2023
df18040
Add generate-patch-release-notes.sh script
sunnylovestiramisu Dec 27, 2023
a50f703
Add changelogs for v1.5.15 and v1.6.10
sunnylovestiramisu Dec 27, 2023
3d44ffa
Merge pull request #765 from sunnylovestiramisu/changelog
k8s-ci-robot Dec 27, 2023
aff0032
Add changelog for v1.5.16, v1.6.11
sunnylovestiramisu Dec 27, 2023
a7f5d7d
Merge pull request #767 from sunnylovestiramisu/changelog
k8s-ci-robot Dec 27, 2023
5d616fb
Merge pull request #766 from sunnylovestiramisu/patch-release-notes
k8s-ci-robot Dec 28, 2023
f52abf5
Bump the github-google group with 1 update
dependabot[bot] Jan 1, 2024
9c410e4
Bump the google-golang group with 3 updates
dependabot[bot] Jan 1, 2024
f7fc250
Merge pull request #749 from kubernetes-sigs/dependabot/go_modules/gi…
k8s-ci-robot Jan 2, 2024
359d40c
Merge pull request #738 from kubernetes-sigs/dependabot/docker/golang…
k8s-ci-robot Jan 2, 2024
4cf5f87
Merge pull request #740 from kubernetes-sigs/dependabot/docker/cmd/we…
k8s-ci-robot Jan 3, 2024
0b4d084
Merge pull request #763 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Jan 3, 2024
b4c616b
Merge pull request #754 from hsadoyan/update-deploy-docs
k8s-ci-robot Jan 4, 2024
628577f
Refactor duplicate function
hsadoyan Jan 4, 2024
09a6bc0
Bump the google-golang group with 1 update
dependabot[bot] Jan 8, 2024
f2e6325
Merge pull request #772 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Jan 9, 2024
4382d5c
Merge pull request #770 from hsadoyan/refactor-createbackup
k8s-ci-robot Jan 12, 2024
52271fa
Bump golang from 1.21.5 to 1.21.6
dependabot[bot] Jan 15, 2024
fd0f337
Bump golang from 1.21.5 to 1.21.6 in /cmd/webhook
dependabot[bot] Jan 15, 2024
2a4262f
Disable NFSExportOptions by default
hsadoyan Jan 8, 2024
f596fa6
Merge pull request #776 from kubernetes-sigs/dependabot/docker/cmd/we…
k8s-ci-robot Jan 16, 2024
10ec9a7
Merge pull request #774 from hsadoyan/disable-nfsexportoptions-by-def…
k8s-ci-robot Jan 17, 2024
2e61cc2
bump prow rc candidate to 1.6.12
saikat-royc Jan 22, 2024
dfd4f76
Bump the golang-x group with 2 updates
dependabot[bot] Jan 22, 2024
9b77dcf
Merge pull request #771 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Jan 23, 2024
1a34090
Merge pull request #775 from kubernetes-sigs/dependabot/docker/golang…
k8s-ci-robot Jan 23, 2024
a14b207
Bump the github-google group with 1 update
dependabot[bot] Jan 29, 2024
27eba12
Bump the google-golang group with 2 updates
dependabot[bot] Jan 29, 2024
ca3fe2d
Merge pull request #783 from kubernetes-sigs/dependabot/go_modules/gi…
k8s-ci-robot Jan 30, 2024
c4f4c55
Merge pull request #784 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Jan 31, 2024
7facada
Bump the onsi group with 1 update
dependabot[bot] Feb 5, 2024
ea84105
Merge pull request #781 from kubernetes-sigs/dependabot/go_modules/on…
k8s-ci-robot Feb 6, 2024
14bbed1
Update supported tiers documentation
hsadoyan Feb 8, 2024
c526eea
Bump golang from 1.21.6 to 1.22.0 in /cmd/webhook
dependabot[bot] Feb 12, 2024
d36313a
Bump the google-golang group with 2 updates
dependabot[bot] Feb 12, 2024
7c7b2b9
Bump golang from 1.21.6 to 1.22.0
dependabot[bot] Feb 12, 2024
aaf944a
Merge pull request #792 from kubernetes-sigs/dependabot/docker/golang…
k8s-ci-robot Feb 13, 2024
f6a6fc0
Merge pull request #788 from kubernetes-sigs/dependabot/docker/cmd/we…
k8s-ci-robot Feb 13, 2024
1d17bd3
Merge pull request #789 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Feb 13, 2024
6701ce8
Bump the golang-x group with 5 updates
dependabot[bot] Feb 13, 2024
d79519a
Merge pull request #790 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Feb 21, 2024
3b68449
bump base image from bullseye to bookworm for CVE fixes
amacaskill Feb 21, 2024
a80d134
Merge pull request #798 from amacaskill/base-image-bump
k8s-ci-robot Feb 23, 2024
593104f
Release notes for 1.6.13, 1.5.17, and update stable rc
amacaskill Feb 24, 2024
f096ed4
Add changelog for 1.6.13,
amacaskill Feb 24, 2024
75ba9e1
Add changelog for 1.5.17,
amacaskill Feb 24, 2024
8a2d787
Merge pull request #802 from amacaskill/changelog
k8s-ci-robot Feb 24, 2024
ca75c43
update stable master to v1.6.13
amacaskill Feb 25, 2024
7bd15ef
Merge pull request #803 from amacaskill/stable-master
k8s-ci-robot Feb 26, 2024
0f86dcc
Bump the golang-x group with 5 updates
dependabot[bot] Mar 11, 2024
c56dbf4
Bump golang from 1.22.0 to 1.22.1 in /cmd/webhook
dependabot[bot] Mar 11, 2024
c95dcd6
Bump golang from 1.22.0 to 1.22.1
dependabot[bot] Mar 11, 2024
15ea3ce
CVE-2024-24786: bump google.golang.org/protobuf to v1.33.0
dobsonj Mar 12, 2024
6d82469
Merge pull request #815 from kubernetes-sigs/dependabot/docker/golang…
k8s-ci-robot Mar 18, 2024
e6c214d
Merge pull request #812 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Mar 18, 2024
7b4c7e9
Merge pull request #816 from dobsonj/CVE-2024-24786-origin-master
k8s-ci-robot Mar 18, 2024
8c34a55
Bump the github-google group with 1 update
dependabot[bot] Mar 18, 2024
347926d
Bump the onsi group with 1 update
dependabot[bot] Mar 18, 2024
fe35e75
Merge pull request #817 from kubernetes-sigs/dependabot/go_modules/gi…
k8s-ci-robot Mar 19, 2024
a4bf5d1
Merge pull request #814 from kubernetes-sigs/dependabot/docker/cmd/we…
k8s-ci-robot Mar 19, 2024
3a0db2b
Merge pull request #821 from kubernetes-sigs/dependabot/go_modules/on…
k8s-ci-robot Mar 19, 2024
618d64e
Bump the google-golang group with 3 updates
dependabot[bot] Mar 25, 2024
2ff2b06
Merge pull request #823 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Mar 26, 2024
641c805
Bump the google-golang group with 2 updates
dependabot[bot] Apr 1, 2024
573a716
Merge pull request #827 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Apr 4, 2024
04771ec
issue-639: Add labels from command line option to filestore backup re…
bharath-b-rh Apr 5, 2024
920732b
Bump golang from 1.22.1 to 1.22.2
dependabot[bot] Apr 8, 2024
e99831e
Bump golang from 1.22.1 to 1.22.2 in /cmd/webhook
dependabot[bot] Apr 8, 2024
17578a7
Merge pull request #640 from bharath-b-rh/issue-639
k8s-ci-robot Apr 15, 2024
b5ccb9d
Bump the golang-x group with 5 updates
dependabot[bot] Apr 15, 2024
d6cb1c1
Merge pull request #828 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Apr 16, 2024
0ec517e
Bump google.golang.org/grpc in the google-golang group
dependabot[bot] Apr 16, 2024
dd01419
fix CVE-2024-28085
dannawang0221 Apr 18, 2024
3443782
Merge pull request #834 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Apr 19, 2024
c29f8b6
Merge pull request #836 from dannawang0221/fix-CVE-2024-28085
tyuchn Apr 19, 2024
5523c77
Merge pull request #833 from kubernetes-sigs/dependabot/docker/cmd/we…
k8s-ci-robot Apr 20, 2024
87eb205
Merge pull request #832 from kubernetes-sigs/dependabot/docker/golang…
tyuchn Apr 22, 2024
af212ef
Bump the google-golang group with 2 updates
dependabot[bot] Apr 22, 2024
af3a058
Bump github.com/onsi/gomega from 1.32.0 to 1.33.0 in the onsi group
dependabot[bot] Apr 22, 2024
abd3cf5
Add dannawang0221 to OWNERS
dannawang0221 Apr 23, 2024
d859fa2
Merge pull request #842 from dannawang0221/add-to-owner
k8s-ci-robot Apr 23, 2024
2159d1e
Merge pull request #839 from kubernetes-sigs/dependabot/go_modules/go…
k8s-ci-robot Apr 24, 2024
4b31b81
Merge pull request #840 from kubernetes-sigs/dependabot/go_modules/on…
k8s-ci-robot Apr 24, 2024
a57c057
issue-567: go mod changes with packages required for GCP tags
bharath-b-rh Apr 24, 2024
fecf27d
issue-567: Support to add ResoureManagerTags to GCP Filestore resources
bharath-b-rh Apr 24, 2024
4136f7e
Merge pull request #630 from bharath-b-rh/master
k8s-ci-robot Apr 29, 2024
2d910a8
CFE-1022: Rebase to latest upstream master
bharath-b-rh Apr 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
25 changes: 14 additions & 11 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# limitations under the License.

# Build driver go binary
FROM --platform=$BUILDPLATFORM golang:1.20.12 as builder
FROM --platform=$BUILDPLATFORM golang:1.22.2 as builder

ARG STAGINGVERSION
ARG TARGETPLATFORM
Expand All @@ -25,7 +25,7 @@ RUN GOARCH=$(echo $TARGETPLATFORM | cut -f2 -d '/') make driver BINDIR=/bin GCP_
# Install nfs packages
# Note that the newer debian bullseye image does not work with nfs-common; I
# believe that libcap needs extra configuration.
FROM gke.gcr.io/debian-base:bullseye-v1.4.3-gke.5 as deps
FROM gke.gcr.io/debian-base:bookworm-v1.0.2-gke.0 as deps
ENV DEBIAN_FRONTEND noninteractive

# The netbase package is needed to get rpcbind to work correctly,
Expand All @@ -51,6 +51,8 @@ ENV DEBIAN_FRONTEND noninteractive
# Now in `nfs_services_start.sh` we call rpcbind start, this tries to source the `/lib/lsb/init-functions` file. This needs to be installed from the lsb-base package. In the debian-base image the lsb package is deleted (https://github.com/kubernetes/release/blob/v0.15.0/images/build/debian-base/bullseye/Dockerfile.build#L90). Hence using `apt-get install --reinstall` fixes the problem.
RUN apt-get update && apt-get dist-upgrade -y && apt-mark unhold libcap2 && apt-get install --reinstall -y --no-install-recommends \
lsb-base \
# New depenency of lsb-base in bookworm
sysvinit-utils \
mount \
rpcbind \
netbase \
Expand All @@ -62,14 +64,14 @@ RUN apt-get update && apt-get dist-upgrade -y && apt-mark unhold libcap2 && apt-
RUN mkdir /run/sendsigs.omit.d

# Hold required packages to avoid breaking the installation of packages
RUN apt-mark hold apt gnupg adduser passwd libsemanage1 libcap2 mount nfs-common init
RUN apt-mark hold apt gnupg adduser passwd libsemanage2 libcap2 mount nfs-common init

# Clean up unnecessary packages
# This list is copied from
# https://github.com/kubernetes/kubernetes/blob/master/build/debian-base/Dockerfile.build
# and modified to keep nfs dependencies
RUN echo "Yes, do as I say!" | apt-get purge \
# bash \
# We don't need to remove the packages that are already removed from the base image:
# https://github.com/kubernetes/release/blob/78ecea5a708046ee2d4e71be5dc73393b8d7d7cc/images/build/debian-base/bookworm/Dockerfile.build#L44-L54.
# The commented out packages are nfs dependencies, and should not be removed.
RUN echo "Yes, do as I say!" | apt-get purge -y --allow-remove-essential \
# bash \
e2fslibs \
e2fsprogs \
# init \
Expand All @@ -79,13 +81,14 @@ RUN echo "Yes, do as I say!" | apt-get purge \
# libsmartcols1 \
# libudev1 \
# libblkid1 \
libncursesw5 \
# Not able to be removed even though I don't think this is needed, but removing it causes:
# "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages."
# libncursesw6 \
libss2 \
ncurses-base \
ncurses-bin \
ncurses-bin
# systemd \
# systemd-sysv \
tzdata

# Cleanup cached and unnecessary files.
RUN apt-get autoremove -y && \
Expand Down
75 changes: 25 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,64 +14,19 @@ dynamically created and mounted by workloads.
## Project Status
Status: GA

Latest image: `registry.k8s.io/cloud-provider-gcp/gcp-filestore-csi-driver:v1.5.3`
Latest image: `registry.k8s.io/cloud-provider-gcp/gcp-filestore-csi-driver:v1.6.13`

Also see [known issues](KNOWN_ISSUES.md) and [CHANGELOG](CHANGELOG.md).

### CSI Compatibility
This plugin is compatible with CSI version 1.3.0.

### Kubernetes Compatibility
The following table captures the compatibility matrix of the core filestore driver binary
`registry.k8s.io/cloud-provider-gcp/gcp-filestore-csi-driver`

| Filestore CSI Driver\Kubernetes Version | 1.16 | 1.17+ |
| --------------------------------------- | ---- | ----- |
| v0.2.0 (alpha) | no | no |
| v0.3.1 (beta) | yes | yes |
| v0.4.0 (beta) | yes | yes |
| v0.5.0 (beta) | yes | yes |
| v0.6.0 (beta) | yes | yes |
| v0.6.1 (beta) | yes | yes |
| v1.0.0 (GA) | yes | yes |
| v1.1.1 (GA) | yes | yes |
| v1.1.2 (GA) | yes | yes |
| v1.1.3 (GA) | yes | yes |
| v1.1.4 (GA) | yes | yes |
| v1.2.0 (GA) | yes | yes |
| v1.2.1 (GA) | yes | yes |
| v1.2.2 (GA) | yes | yes |
| v1.2.3 (GA) | yes | yes |
| v1.2.4 (GA) | yes | yes |
| v1.2.5 (GA) | yes | yes |
| v1.2.7 (GA) | yes | yes |
| v1.3.0 (GA) | yes | yes |
| v1.3.1 (GA) | yes | yes |
| v1.3.2 (GA) | yes | yes |
| v1.3.4 (GA) | yes | yes |
| v1.3.5 (GA) | yes | yes |
| v1.3.9 (GA) | yes | yes |
| v1.3.10 (GA) | yes | yes |
| v1.3.11 (GA) | yes | yes |
| v1.3.12 (GA) | yes | yes |
| v1.3.13 (GA) | yes | yes |
| v1.3.14 (GA) | yes | yes |
| v1.4.1 (GA) | yes | yes |
| v1.4.2 (GA) | yes | yes |
| v1.4.3 (GA) | yes | yes |
| v1.4.4 (GA) | yes | yes |
| v1.4.5 (GA) | yes | yes |
| v1.5.0 (GA) | yes | yes |
| v1.5.2 (GA) | yes | yes |
| v1.5.3 (GA) | yes | yes |
| master | yes | yes |

The manifest bundle which captures all the driver components (driver pod which includes the containers csi-external-provisioner, csi-external-resizer, csi-external-snapshotter, gcp-filestore-driver, csi-driver-registrar, csi driver object, rbacs, pod security policies etc) can be picked up from the master branch [overlays](deploy/kubernetes/overlays) directory. We structure the overlays directory per minor version of kubernetes because not all driver components can be used with all kubernetes versions. For example volume snapshots are supported 1.17+ kubernetes versions thus [stable-1-16](deploy/kubernetes/overlays/stable-1-16) driver manifests does not contain the snapshotter sidecar. Read more about overlays [here](docs/release/overlays.md).

Example:
`stable-1-19` overlays bundle can be used to deploy all the components of the driver on kubernetes 1.19.
`stable-master` overlays bundle can be used to deploy all the components of the driver on kubernetes master.

### CSI Compatibility
This plugin is compatible with CSI version 1.3.0.

## Plugin Features

### Supported CreateVolume parameters
Expand All @@ -80,7 +35,7 @@ volume. Customizable parameters for volume creation include:

| Parameter | Values | Default | Description |
| --------------- | ----------------------- |----------- | ----------- |
| tier | "standard"<br>"premium"<br>"enterprise" | "standard" | storage performance tier |
| tier | "standard"/"basic_hdd"<br>"premium"/"basic_ssd"<br>"enterprise"<br>"high_scale_ssd"/"zonal" | "standard" | storage performance tier |
| network | string | "default" | VPC name.<br>When using "PRIVATE_SERVICE_ACCESS" connect-mode, network needs to be the full VPC name. |
| reserved-ipv4-cidr| string | "" | CIDR range to allocate Filestore IP Ranges from.<br>The CIDR must be large enough to accommodate multiple Filestore IP Ranges of /29 each, /26 if enterprise tier is used. |
| reserved-ip-range | string | "" | IP range to allocate Filestore IP Ranges from.<br>This flag is used instead of "reserved-ipv4-cidr" when "connect-mode" is set to "PRIVATE_SERVICE_ACCESS" and the value must be an [allocated IP address range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address).<br>The IP range must be large enough to accommodate multiple Filestore IP Ranges of /29 each, /26 if enterprise tier is used. |
Expand Down Expand Up @@ -113,6 +68,9 @@ Note that non-default networks require extra [firewall setup](https://cloud.goog
* Volume Restore: The CSI driver supports out-of-place restore of new GCP Filestore instance from a given GCP Filestore Backup. See user-guide restore steps [here](docs/kubernetes/backup.md) and GCP Filestore Backup restore documentation [here](https://cloud.google.com/filestore/docs/backup-restore). This feature needs kubernetes 1.17+.
* Pre-provisioned Filestore instance: Pre-provisioned filestore instances can be leveraged and consumed by workloads by mapping a given filestore instance to a PersistentVolume and PersistentVolumeClaim. See user-guide [here](docs/kubernetes/pre-provisioned-pv.md) and filestore documentation [here](https://cloud.google.com/filestore/docs/accessing-fileshares)
* FsGroup: [CSIVolumeFSGroupPolicy](https://kubernetes-csi.github.io/docs/support-fsgroup.html) is a Kubernetes feature in Beta is 1.20, which allows CSI drivers to opt into FSGroup policies. The stable-master [overlay](deploy/kubernetes/overlays/stable-master) of Filestore CSI driver now supports this. See the user-guide [here](docs/kubernetes/fsgroup.md) on how to apply fsgroup to volumes backed by filestore instances. For a workaround to apply fsgroup on clusters 1.19 (with CSIVolumeFSGroupPolicy feature gate disabled), and clusters <= 1.18 see user-guide [here](docs/kubernetes/fsgroup-workaround.md)
* Resource Tags: Filestore supports resource tags for instance and backup resources, which is a map of key value pairs. Filestore CSI driver enables user defined tags to be attached to instance and backup resources created by the driver.
User can provide resource tags by using `resource-tags` key in StorageClass.parameters or using the `--resource-tags` command line option, and the tags should be defined as comma separated values of the form `<parent_id>/<tagKey_shortname>/<tagValue_shortname>` where, parentID is the ID of Organization or Project resource where tag key and tag value resources exist, tagKey_shortname is the shortName of the tag key resource, tagValue_shortname is the shortName of the tag value resource and a maximum of 50 tags can be attached to per resource. See https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing for more details.
Please see storage class [example](examples/kubernetes/sc-tags.yaml) to define resource tags to be attached to the Filestore instance resources.

## Future Features
* Non-root access: By default, GCFS instances are only writable by the root user
Expand Down Expand Up @@ -151,6 +109,23 @@ $ PROJECT=<your-gcp-project> GCFS_SA_DIR=<your-directory-to-store-credentials-by
testing, and the `dev` overlay is for driver development. `./deploy/kubernetes/cluster-setup.sh`
will install the driver pods, as well as necessary RBAC and resources.

* If deploying new changes in the master branch update the overlay file with a new custom tag to identify this image.
```
apiVersion: builtin
kind: ImageTagTransformer
metadata:
name: imagetag-gce-fs-driver
imageTag:
name: k8s.gcr.io/cloud-provider-gcp/gcp-filestore-csi-driver
newName: gcr.io/<your-project>/gcp-filestore-csi-driver # Add newName
newTag: "<your-custom-tag>" # Change to your custom tag
```
Make and build the image if desploying new master branch.

```
GCP_FS_CSI_STAGING_VERSION=<your-custom-tag> GCP_FS_CSI_STAGING_IMAGE=gcr.io/<your-project>/gcp-filestore-csi-driver make build-image-and-push
```
Once the image is pushed it can be verified by visiting `https://pantheon.corp.google.com/gcr/images/<your-project>/global/gcp-filestore-csi-driver`
```
$ PROJECT=<your-gcp-project> DEPLOY_VERSION=<your-overlay-choice> GCFS_SA_DIR=<your-directory-to-store-credentials-by-default-home-dir> ./deploy/kubernetes/cluster_setup.sh
```
Expand Down
19 changes: 18 additions & 1 deletion cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ var (
isRegional = flag.Bool("is-regional", false, "cluster is regional cluster")
gkeClusterName = flag.String("gke-cluster-name", "", "Cluster Name of the current GKE cluster driver is running on, required for multishare")
extraVolumeLabelsStr = flag.String("extra-labels", "", "Extra labels to attach to each volume created. It is a comma separated list of key value pairs like '<key1>=<value1>,<key2>=<value2>'. See https://cloud.google.com/compute/docs/labeling-resources for details")
resourceTagsStr = flag.String("resource-tags", "", "Resource tags to attach to each volume created. It is a comma separated list of tags of the form '<parentID_1>/<tagKey_1>/<tagValue_1>...<parentID_N>/<tagKey_N>/<tagValue_N>' where, parentID is the ID of Organization or Project resource where tag key and value resources exist, tagKey is the shortName of the tag key resource, tagValue is the shortName of the tag value resource. See https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing for more details.")

// Feature lock release specific parameters, only take effect when feature-lock-release is set to true.
featureLockRelease = flag.Bool("feature-lock-release", false, "if set to true, the node driver will support Filestore lock release.")
Expand All @@ -61,7 +62,8 @@ var (
coreInformerResyncPeriod = flag.Duration("core-informer-resync-repriod", 15*time.Minute, "Core informer resync period.")

// Feature multishare backups enabled
featureMultishareBackups = flag.Bool("feature-multishare-backups", false, "if set to true, the multishare backups will be enabled. enable-multishare must be set to true as well")
featureMultishareBackups = flag.Bool("feature-multishare-backups", false, "if set to true, the multishare backups will be enabled. enable-multishare must be set to true as well")
featureNFSExportOptionsOnCreate = flag.Bool("feature-nfs-export-options", false, "if set to true, the driver will accpet nfs-export-options-on-create parameter and configure IP Access rules")

// Feature stateful CSI driver specific parameters
featureStateful = flag.Bool("feature-stateful-multishare", false, "if set to true, the controller will run stateful multishare controller, if set to true, enable-multishare must be set to true as well")
Expand Down Expand Up @@ -94,6 +96,7 @@ func main() {
var meta metadata.Service
var mm *metrics.MetricsManager
var extraVolumeLabels map[string]string
var tagMgr cloud.TagService
if *runController {
if *httpEndpoint != "" && metrics.IsGKEComponentVersionAvailable() {
mm = metrics.NewMetricsManager()
Expand All @@ -114,13 +117,23 @@ func main() {
}

provider, err = cloud.NewCloud(ctx, version, *cloudConfigFilePath, *primaryFilestoreServiceEndpoint, *testFilestoreServiceEndpoint)

tagMgr = cloud.NewTagManager(provider)
tags, err := tagMgr.ValidateResourceTags(ctx, "command line", *resourceTagsStr)
if err != nil {
klog.Fatalf("failed to parse resource tags provided in command line: %v", err)
}
tagMgr.SetResourceTags(tags)
} else {
if *nodeID == "" {
klog.Fatalf("nodeid cannot be empty for node service")
}
if len(*extraVolumeLabelsStr) > 0 {
klog.Fatalf("Extra volume labels provided but not running controller")
}
if len(*resourceTagsStr) > 0 {
klog.Fatalf("Resource tags provided but not running controller")
}

meta, err = metadataservice.NewMetadataService()
if err != nil {
Expand Down Expand Up @@ -183,6 +196,9 @@ func main() {
FeatureMultishareBackups: &driver.FeatureMultishareBackups{
Enabled: *featureMultishareBackups,
},
FeatureNFSExportOptionsOnCreate: &driver.FeatureNFSExportOptionsOnCreate{
Enabled: *featureNFSExportOptionsOnCreate,
},
}

mounter := mount.New("")
Expand All @@ -202,6 +218,7 @@ func main() {
ClusterName: *gkeClusterName,
FeatureOptions: featureOptions,
ExtraVolumeLabels: extraVolumeLabels,
TagManager: tagMgr,
}

gcfsDriver, err := driver.NewGCFSDriver(config)
Expand Down
2 changes: 1 addition & 1 deletion cmd/webhook/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

FROM --platform=$BUILDPLATFORM golang:1.20.12 as builder
FROM --platform=$BUILDPLATFORM golang:1.22.2 as builder

ARG TARGETPLATFORM

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,5 @@ metadata:
imageTag:
name: registry.k8s.io/cloud-provider-gcp/gcp-filestore-csi-driver
newName: gcr.io/k8s-staging-cloud-provider-gcp/gcp-filestore-csi-driver
newTag: "v1.5.6-rc1"
newTag: "v1.6.13-rc1"
---
2 changes: 1 addition & 1 deletion deploy/kubernetes/images/stable-master/image.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,5 @@ metadata:
name: imagetag-gce-fs-driver
imageTag:
name: registry.k8s.io/cloud-provider-gcp/gcp-filestore-csi-driver
newTag: "v1.5.3"
newTag: "v1.6.13"
---
3 changes: 1 addition & 2 deletions docs/kubernetes/backup.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Filestore Backups User Guide (Beta)
# Filestore Backups User Guide

>**Attention:** Filestore Backup relies on CSI VolumeSnapshot which is a Beta feature in k8s enabled by default in
Kubernetes 1.17+. CSI VolumeSnapshot should not be confused with Filestore Backups. Filestore CSI driver leverages CSI VolumeSnapshot capability to support Filestore Backups by specifying a `type` parameter in the VolumeSnapshotClass object.
Expand Down Expand Up @@ -31,7 +31,6 @@ The [CSI Snapshot](https://github.com/container-storage-interface/spec/blob/mast
name: csi-filestore
provisioner: filestore.csi.storage.gke.io
parameters:
tier: enterprise
network: <network name> # Change this network as per the deployment
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
Expand Down
2 changes: 0 additions & 2 deletions examples/kubernetes/backups-restore/sc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ kind: StorageClass
metadata:
name: csi-filestore
provisioner: filestore.csi.storage.gke.io
parameters:
tier: enterprise
volumeBindingMode: WaitForFirstConsumer
reclaimPolicy: Delete
allowVolumeExpansion: true
9 changes: 9 additions & 0 deletions examples/kubernetes/sc-tags.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: csi-filestore
provisioner: filestore.csi.storage.gke.io
parameters:
resource-tags: parent1/tagKey1/tagValue1,parent2/tagKey2/tagValue2,...,parentN/tagKeyN/tagValueN
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
Loading