Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 .github/workflows/delete.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@ jobs:
run: |
BRANCH=$(echo -n ${BRANCH} | tr -c '[:alnum:]._-' '-')
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${DOCKER_USER}'", "password": "'${DOCKER_PASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
images=("${BRANCH}-latest" "${BRANCH}-runtime" "${BRANCH}-tools" "${BRANCH}-tests-1.31" "${BRANCH}-tests-1.30" "${BRANCH}-tests-1.29" "${BRANCH}-tests-1.28" "${BRANCH}-builder")
images=("${BRANCH}-latest" "${BRANCH}-runtime" "${BRANCH}-tools" "${BRANCH}-tests-1.32" "${BRANCH}-tests-1.31" "${BRANCH}-tests-1.30" "${BRANCH}-tests-1.29" "${BRANCH}-builder")
for i in ${images[*]}; do curl --fail -sS -X DELETE -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/digitalocean/k8s-e2e-test-runner/tags/$i/; done
curl --fail -sS -X DELETE -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/digitalocean/do-csi-plugin-dev/tags/${BRANCH}/
4 changes: 2 additions & 2 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:

steps:
- name: checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 1

Expand All @@ -49,7 +49,7 @@ jobs:
DOCKER_REPO=${DOCKER_ORG}/do-csi-plugin make publish

- name: create Github release
uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8
uses: softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v2.1.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ jobs:

steps:
- name: checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 1

- name: Go setup
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with:
go-version-file: go.mod

Expand All @@ -55,7 +55,7 @@ jobs:

steps:
- name: checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 1

Expand Down Expand Up @@ -93,16 +93,16 @@ jobs:
strategy:
fail-fast: false
matrix:
kube-release: ['1.31', '1.30', '1.29']
kube-release: ['1.32', '1.31', '1.30', '1.29']

steps:
- name: checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 1

- name: Go setup
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with:
go-version-file: go.mod

Expand Down Expand Up @@ -145,7 +145,7 @@ jobs:

steps:
- name: checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 1

Expand Down
48 changes: 24 additions & 24 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ ifneq ($(VERSION),)
else
VERSION ?= $(shell cat VERSION)
endif
KUBERNETES_VERSION ?= 1.31.0
KUBERNETES_VERSION ?= 1.32.0
DOCKER_REPO ?= digitalocean/do-csi-plugin
CANONICAL_RUNNER_IMAGE = digitalocean/k8s-e2e-test-runner
RUNNER_IMAGE ?= $(CANONICAL_RUNNER_IMAGE)
Expand Down Expand Up @@ -130,14 +130,14 @@ runner-build:
@echo "pulling cache images"
@docker pull $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)builder || true
@docker pull $(CANONICAL_RUNNER_IMAGE):builder || true
@docker pull $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.32 || true
@docker pull $(CANONICAL_RUNNER_IMAGE):tests-1.32 || true
@docker pull $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.31 || true
@docker pull $(CANONICAL_RUNNER_IMAGE):tests-1.31 || true
@docker pull $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.30 || true
@docker pull $(CANONICAL_RUNNER_IMAGE):tests-1.30 || true
@docker pull $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.29 || true
@docker pull $(CANONICAL_RUNNER_IMAGE):tests-1.29 || true
@docker pull $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.28 || true
@docker pull $(CANONICAL_RUNNER_IMAGE):tests-1.28 || true
@docker pull $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tools || true
@docker pull $(CANONICAL_RUNNER_IMAGE):tools || true
@docker pull $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)runtime || true
Expand All @@ -151,10 +151,20 @@ runner-build:
--cache-from $(CANONICAL_RUNNER_IMAGE):builder \
-t $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)builder -f test/e2e/Dockerfile test/e2e

@echo "building target tests-1.32"
@docker build --target tests-1.32 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)builder \
--cache-from $(CANONICAL_RUNNER_IMAGE):builder \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.32 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.32 \
-t $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.32 -f test/e2e/Dockerfile test/e2e

@echo "building target tests-1.31"
@docker build --target tests-1.31 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)builder \
--cache-from $(CANONICAL_RUNNER_IMAGE):builder \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.32 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.32 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.31 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.31 \
-t $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.31 -f test/e2e/Dockerfile test/e2e
Expand All @@ -163,6 +173,8 @@ runner-build:
@docker build --target tests-1.30 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)builder \
--cache-from $(CANONICAL_RUNNER_IMAGE):builder \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.32 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.32 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.31 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.31 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.30 \
Expand All @@ -173,6 +185,8 @@ runner-build:
@docker build --target tests-1.29 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)builder \
--cache-from $(CANONICAL_RUNNER_IMAGE):builder \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.32 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.32 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.31 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.31 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.30 \
Expand All @@ -181,32 +195,18 @@ runner-build:
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.29 \
-t $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.29 -f test/e2e/Dockerfile test/e2e

@echo "building target tests-1.28"
@docker build --target tests-1.28 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)builder \
--cache-from $(CANONICAL_RUNNER_IMAGE):builder \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.31 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.31 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.30 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.30 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.29 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.29 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.28 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.28 \
-t $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.28 -f test/e2e/Dockerfile test/e2e

@echo "building target tools"
@docker build --target tools \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)builder \
--cache-from $(CANONICAL_RUNNER_IMAGE):builder \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.32 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.32 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.31 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.31 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.30 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.30 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.29 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.29 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.28 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.28 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tools \
--cache-from $(CANONICAL_RUNNER_IMAGE):tools \
-t $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tools -f test/e2e/Dockerfile test/e2e
Expand All @@ -215,14 +215,14 @@ runner-build:
@docker build --target runtime \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)builder \
--cache-from $(CANONICAL_RUNNER_IMAGE):builder \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.32 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.32 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.31 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.31 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.30 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.30 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.29 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.29 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.28 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.28 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tools \
--cache-from $(CANONICAL_RUNNER_IMAGE):tools \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)runtime \
Expand All @@ -233,14 +233,14 @@ runner-build:
@docker build \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)builder \
--cache-from $(CANONICAL_RUNNER_IMAGE):builder \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.32 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.32 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.31 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.31 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.30 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.30 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.29 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.29 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.28 \
--cache-from $(CANONICAL_RUNNER_IMAGE):tests-1.28 \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tools \
--cache-from $(CANONICAL_RUNNER_IMAGE):tools \
--cache-from $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)runtime \
Expand All @@ -251,10 +251,10 @@ runner-build:

runner-push: runner-build
@docker push $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)builder
@docker push $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.32
@docker push $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.31
@docker push $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.30
@docker push $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.29
@docker push $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tests-1.28
@docker push $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)tools
@docker push $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)runtime
@docker push $(RUNNER_IMAGE):$(RUNNER_IMAGE_TAG_PREFIX)latest
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ The following table describes the required DigitalOcean CSI driver version per s
| 1.29 | v4.8.0+ |
| 1.30 | v4.9.0+ |
| 1.31 | v4.12.0+ |
| 1.32 | v4.13.0+ |

---
**Note:**
Expand Down Expand Up @@ -330,7 +331,7 @@ fully attached which can be misinterpreted by the CSI implementation causing a f

Requirements:

* Go at the version specified in `.github/workflows/test.yaml`
* Go at the version specified in `go.mod`
* Docker (for building via the Makefile, post-unit testing, and publishing)

Dependencies are managed via [Go modules](https://github.com/golang/go/wiki/Modules).
Expand Down
11 changes: 5 additions & 6 deletions deploy/kubernetes/releases/csi-digitalocean-dev/driver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ spec:
serviceAccount: csi-do-controller-sa
containers:
- name: csi-provisioner
image: registry.k8s.io/sig-storage/csi-provisioner:v5.0.2
image: registry.k8s.io/sig-storage/csi-provisioner:v5.1.0
args:
- "--csi-address=$(ADDRESS)"
- "--default-fstype=ext4"
Expand All @@ -124,7 +124,7 @@ spec:
- name: socket-dir
mountPath: /var/lib/csi/sockets/pluginproxy/
- name: csi-attacher
image: registry.k8s.io/sig-storage/csi-attacher:v4.6.1
image: registry.k8s.io/sig-storage/csi-attacher:v4.8.0
args:
- "--csi-address=$(ADDRESS)"
- "--v=5"
Expand All @@ -138,7 +138,7 @@ spec:
- name: socket-dir
mountPath: /var/lib/csi/sockets/pluginproxy/
- name: csi-snapshotter
image: registry.k8s.io/sig-storage/csi-snapshotter:v8.0.1
image: registry.k8s.io/sig-storage/csi-snapshotter:v8.2.0
args:
- "--csi-address=$(ADDRESS)"
- "--v=5"
Expand All @@ -150,12 +150,11 @@ spec:
- name: socket-dir
mountPath: /var/lib/csi/sockets/pluginproxy/
- name: csi-resizer
image: registry.k8s.io/sig-storage/csi-resizer:v1.11.2
image: registry.k8s.io/sig-storage/csi-resizer:v1.12.0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The latest version is actually 1.13.1, but in 1.13.1, RecoverVolumeExpansionFailure featuregate is enabled, and something about that feature isn't working with DO's csi. Investigating and fixing it will be a separate task.

args:
- "--csi-address=$(ADDRESS)"
- "--timeout=30s"
- "--v=5"
# DO volumes support online resize.
- "--handle-volume-inuse-error=false"
env:
- name: ADDRESS
Expand Down Expand Up @@ -398,7 +397,7 @@ spec:
mountPath: /etc/udev/rules.d/
containers:
- name: csi-node-driver-registrar
image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.11.1
image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
args:
- "--v=5"
- "--csi-address=$(ADDRESS)"
Expand Down
49 changes: 2 additions & 47 deletions driver/driver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -378,18 +378,9 @@ func (f *fakeStorageActionsDriver) Resize(ctx context.Context, volumeID string,

type fakeDropletsDriver struct {
droplets map[int]*godo.Droplet
}

func (f *fakeDropletsDriver) List(context.Context, *godo.ListOptions) ([]godo.Droplet, *godo.Response, error) {
panic("not implemented")
}

func (f *fakeDropletsDriver) ListByName(context.Context, string, *godo.ListOptions) ([]godo.Droplet, *godo.Response, error) {
panic("not implemented")
}

func (f *fakeDropletsDriver) ListByTag(context.Context, string, *godo.ListOptions) ([]godo.Droplet, *godo.Response, error) {
panic("not implemented")
// satisfy interface for unimplemented methods
godo.DropletsService
}

func (f *fakeDropletsDriver) Get(ctx context.Context, dropletID int) (*godo.Droplet, *godo.Response, error) {
Expand All @@ -405,42 +396,6 @@ func (f *fakeDropletsDriver) Get(ctx context.Context, dropletID int) (*godo.Drop
return droplet, godoResponse(), nil
}

func (f *fakeDropletsDriver) Create(context.Context, *godo.DropletCreateRequest) (*godo.Droplet, *godo.Response, error) {
panic("not implemented")
}

func (f *fakeDropletsDriver) CreateMultiple(context.Context, *godo.DropletMultiCreateRequest) ([]godo.Droplet, *godo.Response, error) {
panic("not implemented")
}

func (f *fakeDropletsDriver) Delete(context.Context, int) (*godo.Response, error) {
panic("not implemented")
}

func (f *fakeDropletsDriver) DeleteByTag(context.Context, string) (*godo.Response, error) {
panic("not implemented")
}

func (f *fakeDropletsDriver) Kernels(context.Context, int, *godo.ListOptions) ([]godo.Kernel, *godo.Response, error) {
panic("not implemented")
}

func (f *fakeDropletsDriver) Snapshots(context.Context, int, *godo.ListOptions) ([]godo.Image, *godo.Response, error) {
panic("not implemented")
}

func (f *fakeDropletsDriver) Backups(context.Context, int, *godo.ListOptions) ([]godo.Image, *godo.Response, error) {
panic("not implemented")
}

func (f *fakeDropletsDriver) Actions(context.Context, int, *godo.ListOptions) ([]godo.Action, *godo.Response, error) {
panic("not implemented")
}

func (f *fakeDropletsDriver) Neighbors(context.Context, int) ([]godo.Droplet, *godo.Response, error) {
panic("not implemented")
}

type fakeSnapshotsDriver struct {
snapshots map[string]*godo.Snapshot
getSnapshotErr error
Expand Down
Loading
Loading