Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
195 commits
Select commit Hold shift + click to select a range
e1aed30
Bump golang from 1.21.5 to 1.21.6
dependabot[bot] Jan 15, 2024
b680ee6
release 1.13 testing and changelog
mattcary Jan 19, 2024
3982e57
Merge pull request #1572 from mattcary/test-release1.13
mattcary Jan 19, 2024
e005a6e
Release 1.13 doc and image update
mattcary Jan 19, 2024
18cee75
Merge pull request #1573 from mattcary/r13.0-docs
mattcary Jan 19, 2024
ddf3fc8
Add changelog for 1.12.7
mattcary Jan 19, 2024
61e24d3
Merge pull request #1574 from mattcary/changelog
mattcary Jan 19, 2024
0aa9e5c
Bump the golang-x group with 1 update
dependabot[bot] Jan 22, 2024
e7e82d9
Bump the google-golang group with 1 update
dependabot[bot] Jan 22, 2024
2cd285d
Bump the onsi group with 2 updates
dependabot[bot] Jan 22, 2024
9a6002e
Merge pull request #1570 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Jan 22, 2024
44f8d56
Merge pull request #1569 from kubernetes-sigs/dependabot/docker/golan…
k8s-ci-robot Jan 23, 2024
f383cf2
Merge pull request #1576 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Jan 23, 2024
616c9a6
Merge pull request #1577 from kubernetes-sigs/dependabot/go_modules/o…
k8s-ci-robot Jan 23, 2024
0bda8e8
update klog version to latest. change %w unwrap to %v
leiyiz Jan 22, 2024
dd1bd02
Add changelog for 1.9.16
mattcary Jan 23, 2024
55c7721
Add changelog for 1.8.19
mattcary Jan 23, 2024
afff184
Merge pull request #1582 from mattcary/changelog
mattcary Jan 23, 2024
091a259
Merge pull request #1579 from leiyiz/pollError
k8s-ci-robot Jan 24, 2024
adde7e2
Bump the google-golang group with 2 updates
dependabot[bot] Jan 29, 2024
b7bee67
Bump the k8s-dependencies group with 1 update
dependabot[bot] Jan 29, 2024
950d946
Merge pull request #1583 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Jan 29, 2024
e75b9a3
Merge pull request #1584 from kubernetes-sigs/dependabot/go_modules/k…
k8s-ci-robot Jan 29, 2024
f5071fa
update driver to support staging compute
Sneha-at Feb 1, 2024
5006820
Bump the google-golang group with 1 update
dependabot[bot] Feb 5, 2024
70099be
Merge pull request #1588 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Feb 6, 2024
bc0ff7d
Bump the cloud-go group with 3 updates
dependabot[bot] Feb 6, 2024
35ab159
Merge pull request #1587 from kubernetes-sigs/dependabot/go_modules/c…
k8s-ci-robot Feb 6, 2024
4d931b6
add logs for testing
Sneha-at Feb 6, 2024
6aae7d2
add logs for PID
Sneha-at Feb 6, 2024
08d22b0
Bump golang from 1.21.6 to 1.22.0
dependabot[bot] Feb 12, 2024
0b43e57
Bump the golang-x group with 6 updates
dependabot[bot] Feb 12, 2024
2b66e8d
Bump the k8s-dependencies group with 1 update
dependabot[bot] Feb 12, 2024
c206916
Changelog updates
mattcary Feb 13, 2024
87c2e45
Map UNSUPPORTED_OPERATION GCE operation error codes to Invalid Argument
amacaskill Feb 13, 2024
ce810c4
Add checks for compute environment flags and url checks
Sneha-at Feb 9, 2024
db3f3d9
add unit test
Sneha-at Feb 14, 2024
097e5b9
Cleaning up some added debug log
Sneha-at Feb 14, 2024
46ad7e7
fail on incorrect endpoint
Sneha-at Feb 14, 2024
13f981e
remove invalid compute endpoint testcase as updated logic causes cras…
Sneha-at Feb 15, 2024
a569fcb
Merge pull request #1606 from amacaskill/unsupported-op
k8s-ci-robot Feb 15, 2024
5a6795e
Merge pull request #1605 from mattcary/changelog-orphaned
k8s-ci-robot Feb 15, 2024
81485ea
Add url check during initialization
Sneha-at Feb 15, 2024
afe6c38
Update flag to use pointers
Sneha-at Feb 15, 2024
05d893a
Merge pull request #1586 from Sneha-at/add_staging_support
k8s-ci-robot Feb 16, 2024
70148a9
Add support for a multi-zone volumeHandle
pwschuurman Feb 8, 2024
e741fa9
Merge pull request #1595 from kubernetes-sigs/dependabot/docker/golan…
k8s-ci-robot Feb 16, 2024
32067eb
Merge pull request #1596 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Feb 16, 2024
ed8ce6c
Bump the cloud-go group with 2 updates
dependabot[bot] Feb 16, 2024
d69610c
Merge pull request #1593 from pwschuurman/hdml-support-upstream
k8s-ci-robot Feb 16, 2024
3de7dd0
fix pointer issue for GCE staging support
Sneha-at Feb 16, 2024
a911ecd
Merge pull request #1599 from kubernetes-sigs/dependabot/go_modules/k…
k8s-ci-robot Feb 16, 2024
36edaac
Merge pull request #1607 from kubernetes-sigs/dependabot/go_modules/c…
k8s-ci-robot Feb 17, 2024
55091b9
Merge pull request #1609 from Sneha-at/add_staging_support
k8s-ci-robot Feb 17, 2024
ecd8f7f
Bump the k8s-dependencies group with 1 update
dependabot[bot] Feb 19, 2024
82f859a
Bump the google-golang group with 3 updates
dependabot[bot] Feb 19, 2024
91d6729
Merge pull request #1611 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Feb 20, 2024
1234643
Bump the golang-x group with 1 update
dependabot[bot] Feb 20, 2024
fa42f89
Merge pull request #1612 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Feb 21, 2024
6a1a3de
Merge pull request #1613 from kubernetes-sigs/dependabot/go_modules/k…
k8s-ci-robot Feb 21, 2024
52ecb88
Add changelog for 1.13.1
amacaskill Feb 21, 2024
26b6ba8
Merge pull request #1618 from amacaskill/changelog
k8s-ci-robot Feb 21, 2024
ba5a34c
Update stable-master with v1.13.1
amacaskill Feb 22, 2024
eda80f1
Merge pull request #1619 from amacaskill/update-stable-image
k8s-ci-robot Feb 22, 2024
7358870
Update to handle when no compute endpoint is passed
Sneha-at Feb 22, 2024
13b8eb9
Merge pull request #1620 from Sneha-at/add_staging_support
amacaskill Feb 23, 2024
9629ffe
1.13.2 Changelog, update rc image
amacaskill Feb 23, 2024
fda4862
release-1.13 cut details for 1.13.2
amacaskill Feb 23, 2024
f634cc9
Merge pull request #1623 from amacaskill/1.13.2-release-notes
k8s-ci-robot Feb 23, 2024
f40f750
Merge pull request #1624 from amacaskill/1.13.2-stable-master
k8s-ci-robot Feb 24, 2024
68e8cdd
Add flag to toggle instances.get over disks.get compute API on Contro…
pwschuurman Mar 2, 2024
7d2ac76
Merge pull request #1626 from pwschuurman/use-instance-api-controller…
k8s-ci-robot Mar 4, 2024
de3b3d1
Add support for read_ahead_kb mount flag
pwschuurman Mar 3, 2024
d6b1856
Merge pull request #1627 from pwschuurman/add-readahead-support
k8s-ci-robot Mar 5, 2024
26b805e
Add 1.13.3 Changelog, update rc image to v1.13.3-rc1
pwschuurman Mar 5, 2024
d3e3251
Merge pull request #1632 from pwschuurman/changelog-rc-13-3
pwschuurman Mar 5, 2024
e19fa90
Fix nvme path filtering logic for udevadm trigger
pwschuurman Mar 7, 2024
dec1fe5
Merge pull request #1633 from pwschuurman/fix-nvme-pattern
k8s-ci-robot Mar 7, 2024
a76d732
Update CHANGELOG-1.13.md for v1.13.4
pwschuurman Mar 7, 2024
825bc59
Merge pull request #1635 from pwschuurman/update-changelog-r13
k8s-ci-robot Mar 8, 2024
ac65c68
Bump the golang-x group with 7 updates
dependabot[bot] Mar 11, 2024
d8da8f2
Bump the k8s-dependencies group with 1 update
dependabot[bot] Mar 11, 2024
33c2867
Bump the onsi group with 1 update
dependabot[bot] Mar 11, 2024
f8e3e57
Bump golang from 1.22.0 to 1.22.1
dependabot[bot] Mar 11, 2024
c6cc542
CVE-2024-24786: bump google.golang.org/protobuf to v1.33.0
dobsonj Mar 12, 2024
a17b6dc
Merge pull request #1642 from dobsonj/CVE-2024-24786-origin-master
k8s-ci-robot Mar 18, 2024
c858e86
Merge pull request #1629 from kubernetes-sigs/dependabot/go_modules/k…
k8s-ci-robot Mar 18, 2024
8e7f82a
Merge pull request #1637 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Mar 18, 2024
e1b119e
Merge pull request #1640 from kubernetes-sigs/dependabot/go_modules/o…
k8s-ci-robot Mar 18, 2024
f196974
Merge pull request #1641 from kubernetes-sigs/dependabot/docker/golan…
k8s-ci-robot Mar 18, 2024
099edf8
Bump the google-golang group with 4 updates
dependabot[bot] Mar 18, 2024
8a3720c
Bump the k8s-dependencies group with 1 update
dependabot[bot] Mar 18, 2024
24b59f4
Merge pull request #1645 from kubernetes-sigs/dependabot/go_modules/k…
k8s-ci-robot Mar 18, 2024
e3a4680
Merge pull request #1643 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Mar 20, 2024
c2eb220
Bump the cloud-go group with 3 updates
dependabot[bot] Mar 20, 2024
ece8e05
Merge pull request #1644 from kubernetes-sigs/dependabot/go_modules/c…
k8s-ci-robot Mar 21, 2024
6ac0e7d
Bump the onsi group with 2 updates
dependabot[bot] Mar 25, 2024
449f360
Bump the google-golang group with 2 updates
dependabot[bot] Apr 1, 2024
cde24e7
Bump the k8s-dependencies group with 1 update
dependabot[bot] Apr 1, 2024
2db8ef4
Update isVolumePathMounted log message
songjiaxun Apr 3, 2024
256a2a0
Merge pull request #1654 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Apr 3, 2024
5f953a6
Merge pull request #1649 from kubernetes-sigs/dependabot/go_modules/o…
k8s-ci-robot Apr 4, 2024
ac499d1
Add support for checking if a device is being used by a filesystem
pwschuurman Apr 4, 2024
cb041f3
Merge pull request #1655 from kubernetes-sigs/dependabot/go_modules/k…
k8s-ci-robot Apr 4, 2024
856d26b
Add link to Hyperdisk documentation for provisioned-throughput-on-create
pwschuurman Apr 5, 2024
d81bfcc
Merge pull request #1660 from kubernetes-sigs/pwschuurman-hd-document…
k8s-ci-robot Apr 5, 2024
b5066d9
Bump golang from 1.22.1 to 1.22.2
dependabot[bot] Apr 8, 2024
8de08cb
Bump google.golang.org/grpc in the google-golang group
dependabot[bot] Apr 15, 2024
deee156
migrate hyperdisk/chd/storagepools to GCE v1 disk API
amacaskill Apr 13, 2024
f038ec0
Merge pull request #1666 from amacaskill/migrate-sp-beta
k8s-ci-robot Apr 16, 2024
53cf99a
remove support for GCE Alpha Disks
amacaskill Apr 16, 2024
1055c3c
Merge pull request #1667 from amacaskill/remove-alpha
amacaskill Apr 16, 2024
1be92ef
Record original error code to operation_errors metric for temporary e…
amacaskill Apr 8, 2024
2359a89
Change k8s version from stable->master to stay up to date with cos ch…
amacaskill Apr 17, 2024
89be22e
Merge pull request #1670 from amacaskill/fix-integration-test
amacaskill Apr 17, 2024
28591b6
Merge pull request #1664 from amacaskill/temporary-slo-fix
k8s-ci-robot Apr 18, 2024
d1af651
Remove short variable declaration from validateStoragePools to allow …
amacaskill Apr 18, 2024
d0825e5
Merge pull request #1673 from amacaskill/fix-storage-pools-metric
amacaskill Apr 18, 2024
b67b1eb
Merge pull request #1665 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Apr 19, 2024
9abc400
Bump the golang-x group with 8 updates
dependabot[bot] Apr 19, 2024
33389c1
Merge pull request #1662 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Apr 19, 2024
3c4464b
Merge pull request #1656 from kubernetes-sigs/songjiaxun-patch-1
k8s-ci-robot Apr 19, 2024
e26e399
Merge pull request #1658 from pwschuurman/disk-fs-check-at-unstage
k8s-ci-robot Apr 19, 2024
407448c
Fix CVE-2023-45288
dannawang0221 Apr 23, 2024
25246b8
update go version
dannawang0221 Apr 23, 2024
14869fa
update modules.txt
dannawang0221 Apr 23, 2024
71d58f7
update k8s.io/mount-utils to not use alpha version
dannawang0221 Apr 23, 2024
529a643
Merge pull request #1680 from dannawang0221/fix-CVE-2023-45288-1
k8s-ci-robot Apr 23, 2024
8c27a51
Bump cloud.google.com/go/compute/metadata in the cloud-go group
dependabot[bot] Apr 23, 2024
f3f12d6
Merge pull request #1661 from kubernetes-sigs/dependabot/docker/golan…
tyuchn Apr 24, 2024
2fde6e7
Merge pull request #1675 from kubernetes-sigs/dependabot/go_modules/c…
k8s-ci-robot Apr 24, 2024
e703794
Add support for addition of ResoureManagerTags to GCP Compute Disk, I…
arkadeepsen Apr 23, 2024
52d3ebb
Remove device disable call
mattcary Apr 24, 2024
78ef53b
Merge pull request #1377 from arkadeepsen/resource-manager-tags
k8s-ci-robot Apr 25, 2024
abaaf5c
Fix e2e tests to run on cloudtop
mattcary Apr 29, 2024
9cb6caf
Merge pull request #1692 from mattcary/cloudtop
k8s-ci-robot Apr 29, 2024
17e261e
Merge pull request #1689 from mattcary/disable
k8s-ci-robot May 1, 2024
1b6ee7a
Remove unused DisableDevice
mattcary May 2, 2024
4c607b5
Bump the golang-x group with 4 updates
dependabot[bot] May 6, 2024
0e9c9ad
Bump the google-golang group across 1 directory with 4 updates
dependabot[bot] May 6, 2024
b4bf17d
Bump the onsi group across 1 directory with 2 updates
dependabot[bot] May 6, 2024
eead51b
Merge pull request #1695 from mattcary/nodisable
k8s-ci-robot May 6, 2024
8874215
Use instances.list instead of instances.get API to determine Publishe…
pwschuurman May 3, 2024
e131d98
Merge pull request #1696 from pwschuurman/list-volumes-instances-api
k8s-ci-robot May 9, 2024
131ed14
Merge pull request #1691 from kubernetes-sigs/dependabot/go_modules/o…
k8s-ci-robot May 9, 2024
158f3f6
Merge pull request #1697 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot May 9, 2024
586f6c8
Merge pull request #1698 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot May 9, 2024
b119b3c
Bump golang from 1.22.2 to 1.22.3
dependabot[bot] May 13, 2024
8aec1f5
reassign error returned from validateStoragePools so InvalidArgument …
amacaskill May 15, 2024
3137bf0
improve error messages for multi-PV ControllerExpandVolume/CreateSnap…
hungnguyen243 May 21, 2024
015dede
move error logging for multi-zone PV from createPdSnapshot into Creat…
hungnguyen243 May 22, 2024
629ddec
Merge pull request #1710 from amacaskill/operation-error-code-internal
k8s-ci-robot May 23, 2024
094cfbd
return Unavailable for connection reset by peer errors
amacaskill May 23, 2024
a72836c
update error status code and add test cases
hungnguyen243 May 24, 2024
eb3e6eb
add volume ID to CreateSnapshot error message
hungnguyen243 May 24, 2024
6a7146b
correct typo in test case func
hungnguyen243 May 24, 2024
ca857cc
Bump k8s.io/mount-utils in the k8s-dependencies group
dependabot[bot] May 27, 2024
f3f566e
Merge pull request #1720 from amacaskill/filter-out-connection-reset
k8s-ci-robot May 28, 2024
82c6deb
Merge pull request #1718 from hungnguyen243/master
k8s-ci-robot May 28, 2024
384acf8
Properly unwrap gce-compute error code.
hime May 28, 2024
4b2711b
Merge pull request #1708 from hime/master
k8s-ci-robot May 29, 2024
af4bba0
Upgrade google.golang.org/api to 182.0
pwschuurman May 30, 2024
936e59a
Merge pull request #1725 from pwschuurman/upgrade-google-golang-api-182
k8s-ci-robot May 30, 2024
07f60e0
Bump golang.org/x/tools in the golang-x group across 1 directory
dependabot[bot] May 30, 2024
b93203f
Bump the onsi group across 1 directory with 2 updates
dependabot[bot] May 30, 2024
8d1948c
Bump the cloud-go group across 1 directory with 5 updates
dependabot[bot] May 30, 2024
de311d5
install golang version inside run-k8s-integration-ci.sh script
amacaskill May 31, 2024
2733c69
Merge pull request #1728 from amacaskill/log-go-version
k8s-ci-robot May 31, 2024
110df5b
Merge pull request #1707 from kubernetes-sigs/dependabot/docker/golan…
k8s-ci-robot Jun 2, 2024
2fa76df
Merge pull request #1714 from kubernetes-sigs/dependabot/go_modules/k…
k8s-ci-robot Jun 2, 2024
db7e551
Merge pull request #1722 from kubernetes-sigs/dependabot/go_modules/o…
k8s-ci-robot Jun 2, 2024
e7dba91
Merge pull request #1726 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Jun 2, 2024
4004cd7
Merge pull request #1727 from kubernetes-sigs/dependabot/go_modules/c…
k8s-ci-robot Jun 2, 2024
c6f1a4a
Improve enum and string list flag parse handling
pwschuurman Jun 3, 2024
3bd8fd7
fix CVEs CVE-2024-33600 CVE-2024-33602 CVE-2024-2961 CVE-2024-33601 C…
Sneha-at Jun 4, 2024
34d0297
Merge pull request #1730 from pwschuurman/update-enum-flag-strings
k8s-ci-robot Jun 4, 2024
9a5b915
Some e2e test improvements
pwschuurman Jun 4, 2024
6d2a1b2
Merge pull request #1694 from Sneha-at/cve_fixes
Sneha-at Jun 4, 2024
4d6be71
Merge pull request #1732 from pwschuurman/add-extra-flags-param
k8s-ci-robot Jun 4, 2024
26e6f03
Bump cloud.google.com/go/auth from 0.5.0 to 0.5.1 in the cloud-go group
dependabot[bot] Jun 10, 2024
55eead3
Bump the google-golang group with 4 updates
dependabot[bot] Jun 10, 2024
00455e0
Bump golang from 1.22.3 to 1.22.4
dependabot[bot] Jun 10, 2024
b732bc5
Merge pull request #1742 from kubernetes-sigs/dependabot/docker/golan…
k8s-ci-robot Jun 10, 2024
ce70bfe
Merge pull request #1729 from kubernetes-sigs/dependabot/go_modules/c…
k8s-ci-robot Jun 11, 2024
a3a33ab
Merge pull request #1741 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Jun 11, 2024
b64fad3
Bump the golang-x group across 1 directory with 7 updates
dependabot[bot] Jun 11, 2024
cc6957f
Add support for multi-zone provisioning
pwschuurman Jun 4, 2024
bf3736f
Merge pull request #1733 from pwschuurman/multi-zone-provisioning
k8s-ci-robot Jun 12, 2024
b192b9b
Merge pull request #1744 from kubernetes-sigs/dependabot/go_modules/g…
k8s-ci-robot Jun 13, 2024
dbd381f
release-1.14 changelog
pwschuurman Jun 13, 2024
bd8f128
Merge pull request #1747 from pwschuurman/update-changelog-1.14
pwschuurman Jun 13, 2024
09028b7
Adding missing libgpg-error.so.0 required by nvme-cli
pwschuurman Jun 25, 2024
4ea3e06
Merge pull request #1765 from k8s-infra-cherrypick-robot/cherry-pick-…
k8s-ci-robot Jun 26, 2024
21fbcfc
Merge remote-tracking branch 'openshift/master' into rebase-1.14.1
dfajmon Jul 2, 2024
4bfdae3
UPSTREAM: <carry>: Add OpenShift files
jsafrane Nov 8, 2023
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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .ci-operator.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
build_root_image:
name: release
namespace: openshift
tag: rhel-9-release-golang-1.21-openshift-4.16
tag: rhel-9-release-golang-1.22-openshift-4.17
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
See the [1.13 changelog in the master branch](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/blob/master/CHANGELOG/CHANGELOG-1.13.md).
See the [1.14 changelog in the master branch](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/blob/master/CHANGELOG/CHANGELOG-1.14.md).
33 changes: 24 additions & 9 deletions 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.21.5 as builder
FROM --platform=$BUILDPLATFORM golang:1.22.4 as builder

ARG STAGINGVERSION
ARG TARGETPLATFORM
Expand All @@ -22,13 +22,15 @@ ADD . .
RUN GOARCH=$(echo $TARGETPLATFORM | cut -f2 -d '/') GCE_PD_CSI_STAGING_VERSION=$STAGINGVERSION make gce-pd-driver

# Start from Kubernetes Debian base.
FROM gke.gcr.io/debian-base:bullseye-v1.4.3-gke.5 as debian

FROM gke.gcr.io/debian-base:bookworm-v1.0.3-gke.0 as debian

# Install necessary dependencies
# google_nvme_id script depends on the following packages: nvme-cli, xxd, bash
RUN clean-install util-linux e2fsprogs mount ca-certificates udev xfsprogs nvme-cli xxd bash

# Since we're leveraging apt to pull in dependencies, we use `gcr.io/distroless/base` because it includes glibc.
FROM gcr.io/distroless/base-debian11 as distroless-base
FROM gcr.io/distroless/base-debian12 as distroless-base

# The distroless amd64 image has a target triplet of x86_64
FROM distroless-base AS distroless-amd64
Expand Down Expand Up @@ -72,8 +74,7 @@ COPY --from=debian /bin/ln /bin/ln
COPY --from=debian /bin/udevadm /bin/udevadm

# Copy shared libraries into distroless base.
COPY --from=debian /lib/${LIB_DIR_PREFIX}-linux-gnu/libpcre.so.3 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libselinux.so.1 \
COPY --from=debian /lib/${LIB_DIR_PREFIX}-linux-gnu/libselinux.so.1 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libtinfo.so.6 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libe2p.so.2 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libcom_err.so.2 \
Expand All @@ -82,7 +83,21 @@ COPY --from=debian /lib/${LIB_DIR_PREFIX}-linux-gnu/libpcre.so.3 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libgcc_s.so.1 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/liblzma.so.5 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libreadline.so.8 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libz.so.1 /lib/${LIB_DIR_PREFIX}-linux-gnu/
/lib/${LIB_DIR_PREFIX}-linux-gnu/libz.so.1 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libc.so.6 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/liburcu.so.8 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libcap.so.2 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libcrypto.so.3 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libdbus-1.so.3 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libgcrypt.so.20 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libjson-c.so.5 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/liblz4.so.1 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libm.so.6 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libnvme-mi.so.1 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libnvme.so.1 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libsystemd.so.0 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libgpg-error.so.0 \
/lib/${LIB_DIR_PREFIX}-linux-gnu/libzstd.so.1 /lib/${LIB_DIR_PREFIX}-linux-gnu/

COPY --from=debian /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libblkid.so.1 \
/usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libbsd.so.0 \
Expand All @@ -93,9 +108,9 @@ COPY --from=debian /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libblkid.so.1 \
/usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libacl.so.1 \
/usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libattr.so.1 \
/usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libedit.so.2 \
/usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libicudata.so.67 \
/usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libicui18n.so.67 \
/usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libicuuc.so.67 \
/usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libicudata.so.72 \
/usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libicui18n.so.72 \
/usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libicuuc.so.72 \
/usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libkmod.so.2 \
/usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libmd.so.0 \
/usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libpcre2-8.so.0 \
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.Windows
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# limitations under the License.

ARG BASE_IMAGE
FROM --platform=$BUILDPLATFORM golang:1.21.5 AS builder
FROM --platform=$BUILDPLATFORM golang:1.22.4 AS builder

ARG TARGETPLATFORM
ARG STAGINGVERSION
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.debug
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 golang:1.21.5 as builder
FROM golang:1.22.4 as builder
WORKDIR /go/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver
ADD . .

Expand Down
4 changes: 2 additions & 2 deletions Dockerfile.openshift
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
FROM registry.ci.openshift.org/ocp/builder:rhel-9-golang-1.21-openshift-4.16 AS builder
FROM registry.ci.openshift.org/ocp/builder:rhel-9-golang-1.22-openshift-4.17 AS builder
WORKDIR /go/src/github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver
COPY . .
# Skip Windows driver build
RUN make gce-pd-driver

FROM registry.ci.openshift.org/ocp/4.16:base-rhel9
FROM registry.ci.openshift.org/ocp/4.17:base-rhel9

# Get all deps
# nvme-cli and /usr/bin/xxd are deps of google_nvme_id
Expand Down
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ lifecycle of Google Compute Engine Persistent Disks.
## Project Status

Status: GA
Latest stable image: `registry.k8s.io/cloud-provider-gcp/gcp-compute-persistent-disk-csi-driver:v1.10.1`
Latest stable image: `registry.k8s.io/cloud-provider-gcp/gcp-compute-persistent-disk-csi-driver:v1.13.2`

### Test Status

Expand All @@ -35,10 +35,10 @@ versions.

| Kubernetes Version | PD CSI Driver Version |
|--------------------|-----------------------|
| HEAD | v1.10.x |
| HEAD | v1.13.x |
| 1.29 | v1.12.x |
| 1.28 | v1.12.x |
| 1.27 | v1.10.x |
| 1.26 | v1.9.x |
| 1.25 | v1.8.x |

The manifest bundle which captures all the driver components (driver pod which includes the containers csi-provisioner, csi-resizer, csi-snapshotter, gce-pd-driver, csi-driver-registrar;
csi driver object, rbacs, pod security policies etc) for the lastest stable
Expand All @@ -59,7 +59,8 @@ See Github [Issues](https://github.com/kubernetes-sigs/gcp-compute-persistent-di
| disk-encryption-kms-key | Fully qualified resource identifier for the key to use to encrypt new disks. | Empty string. | Encrypt disk using Customer Managed Encryption Key (CMEK). See [GKE Docs](https://cloud.google.com/kubernetes-engine/docs/how-to/using-cmek#create_a_cmek_protected_attached_disk) for details. |
| labels | `key1=value1,key2=value2` | | Labels allow you to assign custom [GCE Disk labels](https://cloud.google.com/compute/docs/labeling-resources). |
| provisioned-iops-on-create | string (int64 format). Values typically between 10,000 and 120,000 | | Indicates how many IOPS to provision for the disk. See the [Extreme persistent disk documentation](https://cloud.google.com/compute/docs/disks/extreme-persistent-disk) for details, including valid ranges for IOPS. |
| provisioned-throughput-on-create | string (int64 format). Values typically between 1 and 7,124 mb per second | | Indicates how much throughput to provision for the disk. See the [hyperdisk documentation](TBD) for details, including valid ranges for throughput. |
| provisioned-throughput-on-create | string (int64 format). Values typically between 1 and 7,124 mb per second | | Indicates how much throughput to provision for the disk. See the [hyperdisk documentation]([TBD](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/hyperdisk#create)) for details, including valid ranges for throughput. |
| resource-tags | `<parent_id1>/<tag_key1>/<tag_value1>,<parent_id2>/<tag_key2>/<tag_value2>` | | Resource tags allow you to attach user-defined tags to each Compute Disk, Image and Snapshot. See [Tags overview](https://cloud.google.com/resource-manager/docs/tags/tags-overview), [Creating and managing tags](https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing). |

### Topology

Expand Down
122 changes: 114 additions & 8 deletions cmd/gce-pd-csi-driver/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,18 @@ package main

import (
"context"
"errors"
"flag"
"fmt"
"math/rand"
"net/url"
"os"
"runtime"
"strings"
"time"

"k8s.io/klog/v2"
"k8s.io/utils/strings/slices"

"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/common"
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/deviceutils"
Expand All @@ -38,7 +42,6 @@ import (
var (
cloudConfigFilePath = flag.String("cloud-config", "", "Path to GCE cloud provider config")
endpoint = flag.String("endpoint", "unix:/tmp/csi.sock", "CSI endpoint")
computeEndpoint = flag.String("compute-endpoint", "", "If set, used as the endpoint for the GCE API.")
runControllerService = flag.Bool("run-controller-service", true, "If set to false then the CSI driver does not activate its controller service (default: true)")
runNodeService = flag.Bool("run-node-service", true, "If set to false then the CSI driver does not activate its node service (default: true)")
httpEndpoint = flag.String("http-endpoint", "", "The TCP network address where the prometheus metrics endpoint will listen (example: `:8080`). The default is empty string, which means metrics endpoint is disabled.")
Expand Down Expand Up @@ -67,10 +70,21 @@ var (

maxConcurrentFormatAndMount = flag.Int("max-concurrent-format-and-mount", 1, "If set then format and mount operations are serialized on each node. This is stronger than max-concurrent-format as it includes fsck and other mount operations")
formatAndMountTimeout = flag.Duration("format-and-mount-timeout", 1*time.Minute, "The maximum duration of a format and mount operation before another such operation will be started. Used only if --serialize-format-and-mount")
fallbackRequisiteZonesFlag = flag.String("fallback-requisite-zones", "", "Comma separated list of requisite zones that will be used if there are not sufficient zones present in requisite topologies when provisioning a disk")
enableStoragePoolsFlag = flag.Bool("enable-storage-pools", false, "If set to true, the CSI Driver will allow volumes to be provisioned in Storage Pools")

fallbackRequisiteZonesFlag = flag.String("fallback-requisite-zones", "", "Comma separated list of requisite zones that will be used if there are not sufficient zones present in requisite topologies when provisioning a disk")
multiZoneVolumeHandleDiskTypesFlag = flag.String("multi-zone-volume-handle-disk-types", "", "Comma separated list of allowed disk types that can use the multi-zone volumeHandle. Used only if --multi-zone-volume-handle-enable")
multiZoneVolumeHandleEnableFlag = flag.Bool("multi-zone-volume-handle-enable", false, "If set to true, the multi-zone volumeHandle feature will be enabled")

enableStoragePoolsFlag = flag.Bool("enable-storage-pools", false, "If set to true, the CSI Driver will allow volumes to be provisioned in Storage Pools")
computeEnvironment gce.Environment = gce.EnvironmentProduction
computeEndpoint *url.URL
allowedComputeEnvironment = []gce.Environment{gce.EnvironmentStaging, gce.EnvironmentProduction}

useInstanceAPIOnWaitForAttachDiskTypesFlag = flag.String("use-instance-api-to-poll-attachment-disk-types", "", "Comma separated list of disk types that should use instances.get API when polling for disk attach during ControllerPublish")
useInstanceAPIForListVolumesPublishedNodesFlag = flag.Bool("use-instance-api-to-list-volumes-published-nodes", false, "Enables using the instances.list API to determine published_node_ids in ListVolumes. When false (default), the disks.list API is used")
instancesListFiltersFlag = flag.String("instances-list-filters", "", "Comma separated list of filters to use when calling the instances.list API. By default instances.list fetches all instances in a region")

extraTagsStr = flag.String("extra-tags", "", "Extra tags to attach to each Compute Disk, Image, Snapshot created. It is a comma separated list of parent id, key and value like '<parent_id1>/<tag_key1>/<tag_value1>,...,<parent_idN>/<tag_keyN>/<tag_valueN>'. parent_id is the Organization or the Project ID or Project name where the tag key and the tag value resources exist. A maximum of 50 tags bindings is allowed for a resource. See https://cloud.google.com/resource-manager/docs/tags/tags-overview, https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing for details")

version string
)
Expand All @@ -85,13 +99,16 @@ func init() {
// Use V(4) for general debug information logging
// Use V(5) for GCE Cloud Provider Call informational logging
// Use V(6) for extra repeated/polling information
stringEnumFlag(&computeEnvironment, "compute-environment", allowedComputeEnvironment, "Operating compute environment")
urlFlag(&computeEndpoint, "compute-endpoint", "Compute endpoint")
klog.InitFlags(flag.CommandLine)
flag.Set("logtostderr", "true")
}

func main() {
flag.Parse()
rand.Seed(time.Now().UnixNano())
klog.Infof("Operating compute environment set to: %s and computeEndpoint is set to: %v", computeEnvironment, computeEndpoint)
handle()
os.Exit(0)
}
Expand Down Expand Up @@ -141,6 +158,14 @@ func handle() {
klog.Fatalf("Bad extra volume labels: %v", err.Error())
}

if len(*extraTagsStr) > 0 && !*runControllerService {
klog.Fatalf("Extra tags provided but not running controller")
}
extraTags, err := common.ConvertTagsStringToMap(*extraTagsStr)
if err != nil {
klog.Fatalf("Bad extra tags: %v", err.Error())
}

ctx, cancel := context.WithCancel(context.Background())
defer cancel()

Expand All @@ -150,19 +175,41 @@ func handle() {
// Initialize identity server
identityServer := driver.NewIdentityServer(gceDriver)

// Initilaize requisite zones
fallbackRequisiteZones := strings.Split(*fallbackRequisiteZonesFlag, ",")
// Initialize requisite zones
fallbackRequisiteZones := parseCSVFlag(*fallbackRequisiteZonesFlag)

// Initialize multi-zone disk types
multiZoneVolumeHandleDiskTypes := parseCSVFlag(*multiZoneVolumeHandleDiskTypesFlag)
multiZoneVolumeHandleConfig := driver.MultiZoneVolumeHandleConfig{
Enable: *multiZoneVolumeHandleEnableFlag,
DiskTypes: multiZoneVolumeHandleDiskTypes,
}

// Initialize waitForAttach config
useInstanceAPIOnWaitForAttachDiskTypes := parseCSVFlag(*useInstanceAPIOnWaitForAttachDiskTypesFlag)
waitForAttachConfig := gce.WaitForAttachConfig{
UseInstancesAPIForDiskTypes: useInstanceAPIOnWaitForAttachDiskTypes,
}

// Initialize listVolumes config
instancesListFilters := parseCSVFlag(*instancesListFiltersFlag)
listInstancesConfig := gce.ListInstancesConfig{
Filters: instancesListFilters,
}
listVolumesConfig := driver.ListVolumesConfig{
UseInstancesAPIForPublishedNodes: *useInstanceAPIForListVolumesPublishedNodesFlag,
}

// Initialize requirements for the controller service
var controllerServer *driver.GCEControllerServer
if *runControllerService {
cloudProvider, err := gce.CreateCloudProvider(ctx, version, *cloudConfigFilePath, *computeEndpoint)
cloudProvider, err := gce.CreateCloudProvider(ctx, version, *cloudConfigFilePath, computeEndpoint, computeEnvironment, waitForAttachConfig, listInstancesConfig)
if err != nil {
klog.Fatalf("Failed to get cloud provider: %v", err.Error())
}
initialBackoffDuration := time.Duration(*errorBackoffInitialDurationMs) * time.Millisecond
maxBackoffDuration := time.Duration(*errorBackoffMaxDurationMs) * time.Millisecond
controllerServer = driver.NewControllerServer(gceDriver, cloudProvider, initialBackoffDuration, maxBackoffDuration, fallbackRequisiteZones, *enableStoragePoolsFlag)
controllerServer = driver.NewControllerServer(gceDriver, cloudProvider, initialBackoffDuration, maxBackoffDuration, fallbackRequisiteZones, *enableStoragePoolsFlag, multiZoneVolumeHandleConfig, listVolumesConfig)
} else if *cloudConfigFilePath != "" {
klog.Warningf("controller service is disabled but cloud config given - it has no effect")
}
Expand All @@ -186,7 +233,7 @@ func handle() {
}
}

err = gceDriver.SetupGCEDriver(driverName, version, extraVolumeLabels, identityServer, controllerServer, nodeServer)
err = gceDriver.SetupGCEDriver(driverName, version, extraVolumeLabels, extraTags, identityServer, controllerServer, nodeServer)
if err != nil {
klog.Fatalf("Failed to initialize GCE CSI Driver: %v", err.Error())
}
Expand All @@ -205,3 +252,62 @@ func handle() {

gceDriver.Run(*endpoint, *grpcLogCharCap, *enableOtelTracing)
}

func notEmpty(v string) bool {
return v != ""
}

func parseCSVFlag(list string) []string {
return slices.Filter(nil, strings.Split(list, ","), notEmpty)
}

type enumConverter[T any] interface {
convert(v string) (T, error)
eq(a, b T) bool
}

type stringConverter[T ~string] struct{}

func (s stringConverter[T]) convert(v string) (T, error) {
return T(v), nil
}

func (s stringConverter[T]) eq(a, b T) bool {
return a == b
}

func stringEnumFlag[T ~string](target *T, name string, allowed []T, usage string) {
enumFlag(target, name, stringConverter[T]{}, allowed, usage)
}

func enumFlag[T any](target *T, name string, converter enumConverter[T], allowed []T, usage string) {
flag.Func(name, usage, func(flagValue string) error {
tValue, err := converter.convert(flagValue)
if err != nil {
return err
}
for _, allowedValue := range allowed {
if converter.eq(allowedValue, tValue) {
*target = tValue
return nil
}
}
errMsg := fmt.Sprintf(`must be one of %v`, allowedComputeEnvironment)
return errors.New(errMsg)
})
}

func urlFlag(target **url.URL, name string, usage string) {
flag.Func(name, usage, func(flagValue string) error {
if flagValue == "" {
return nil
}
computeURL, err := url.ParseRequestURI(flagValue)
if err == nil {
*target = computeURL
return nil
}
klog.Errorf("Error parsing endpoint compute endpoint %v", err)
return err
})
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,6 @@ metadata:
imageTag:
name: registry.k8s.io/cloud-provider-gcp/gcp-compute-persistent-disk-csi-driver
newName: gcr.io/k8s-staging-cloud-provider-gcp/gcp-compute-persistent-disk-csi-driver
newTag: "v1.12.0-rc1"
newTag: "v1.13.3-rc1"
---

Loading