Skip to content

Commit f7b9cf0

Browse files
authored
Merge branch 'main' into add-retry-for-new-eks-pod-identity-association-test
2 parents 8f5ae8d + 08ee3c6 commit f7b9cf0

65 files changed

Lines changed: 1756 additions & 368 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/matrix.yaml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,13 @@ matrix:
1313
"Ubuntu2404",
1414
]
1515
kubernetes-version:
16-
["1.29.8", "1.30.4", "1.31.0", "1.32.1", "1.33.2", "1.34.1", "1.35.0"]
16+
["1.30.4", "1.31.0", "1.32.1", "1.33.2", "1.34.1", "1.35.0"]
1717
include:
18-
# Ubuntu2004 is only supported on EKS <= 1.29.
19-
# See https://eksctl.io/usage/custom-ami-support/?h=ubuntu#setting-the-node-ami-family.
20-
- cluster-type: "eksctl"
21-
arch: "arm"
22-
family: "Ubuntu2004"
23-
kubernetes-version: "1.29.8"
2418
# Enable enforcing mode for SELinux in AL2023, it's easier to list it in "include"
2519
# field rather than trying to exclude all other variants.
2620
- family: "AmazonLinux2023"
2721
selinux-mode: "enforcing"
2822
exclude:
29-
- cluster-type: "eksctl"
30-
arch: "arm"
31-
family: "Bottlerocket"
3223
# AL2 is not supported by Kubernetes 1.33.
3324
- cluster-type: "eksctl"
3425
family: "AmazonLinux2"
@@ -54,9 +45,6 @@ matrix:
5445
kubernetes-version: "1.35.0"
5546
# Ubuntu2404 is only supported on EKS >= 1.31.
5647
# See https://eksctl.io/usage/custom-ami-support/?h=ubuntu#setting-the-node-ami-family.
57-
- cluster-type: "eksctl"
58-
family: "Ubuntu2404"
59-
kubernetes-version: "1.29.8"
6048
- cluster-type: "eksctl"
6149
family: "Ubuntu2404"
6250
kubernetes-version: "1.30.4"
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Cleanup Old Test Buckets
2+
3+
on:
4+
schedule:
5+
# Run every Wednesday at 6:00 AM UTC (cron: minute hour day-of-month month day-of-week)
6+
- cron: '0 6 * * 3'
7+
workflow_dispatch:
8+
inputs:
9+
days_old:
10+
description: Number of days old for buckets to be deleted
11+
required: false
12+
default: 7
13+
type: number
14+
15+
jobs:
16+
cleanup-old-buckets:
17+
runs-on: ubuntu-latest
18+
# this is to prevent the job to run at forked projects
19+
if: ${{ ! github.repository.fork }}
20+
strategy:
21+
matrix:
22+
environment: [trusted, untrusted, rosa-trusted, rosa-untrusted]
23+
environment: ${{ matrix.environment }}
24+
permissions:
25+
id-token: write # Required for OIDC authentication with AWS
26+
contents: read
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v6
30+
with:
31+
persist-credentials: false
32+
33+
- name: Configure AWS Credentials
34+
uses: aws-actions/configure-aws-credentials@v6
35+
with:
36+
role-to-assume: ${{ vars.IAM_ROLE }}
37+
aws-region: ${{ vars.AWS_REGION }}
38+
role-duration-seconds: 3600 # 1 hour should be sufficient for cleanup
39+
40+
- name: Install uv
41+
uses: astral-sh/setup-uv@v7
42+
43+
- name: Delete Old Test Buckets
44+
env:
45+
AWS_REGION: ${{ vars.AWS_REGION }}
46+
run: |
47+
tests/e2e-kubernetes/scripts/bucket-cleanup.py cleanup \
48+
--days-old ${{ github.event.inputs.days_old || '7' }}

.github/workflows/controller-tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ on:
44
push:
55
branches: ["main", "feature/*"]
66
pull_request:
7-
branches: ["main", "feature/*"]
87
merge_group:
98
types: ["checks_requested"]
109

@@ -41,6 +40,7 @@ jobs:
4140
make e2e-controller
4241
4342
post_test:
43+
name: "Controller Post Test"
4444
if: always()
4545
needs:
4646
- controller_test

.github/workflows/delete-cluster.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ jobs:
1717
build_matrix:
1818
name: Build Matrix
1919
uses: ./.github/workflows/build_matrix.yaml
20+
permissions:
21+
contents: read
2022
delete_cluster:
2123
needs: ["build_matrix"]
2224
strategy:

.github/workflows/e2e-rosa-tests.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969
- name: Checkout
7070
uses: actions/checkout@v6
7171
with:
72-
ref: ${{ github.ref }}
72+
ref: ${{ inputs.ref }}
7373
persist-credentials: false
7474
- name: Set up Go
7575
uses: actions/setup-go@v6
@@ -168,6 +168,7 @@ jobs:
168168
OPENSHIFT_CREDS,s3-csi-${{ inputs.environment }}-openshift-credentials
169169
parse-json-secrets: true
170170
- name: Login to OpenShift
171+
id: openshift_login
171172
uses: redhat-actions/oc-login@v1
172173
with:
173174
openshift_server_url: ${{ env.OPENSHIFT_CREDS_CLUSTER_API_URL }}
@@ -190,7 +191,8 @@ jobs:
190191
ACTION: "e2e_cleanup"
191192
run: tests/e2e-kubernetes/scripts/run.sh
192193
- name: Uninstall the driver
193-
if: always()
194+
# Skip uninstall if OpenShift login did not succeed - no cluster access
195+
if: ${{ always() && steps.openshift_login.conclusion == 'success' }}
194196
env:
195197
ACTION: "uninstall_driver"
196198
run: tests/e2e-kubernetes/scripts/run.sh

.github/workflows/e2e-tests.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ jobs:
3636
build_matrix:
3737
name: Build Matrix
3838
uses: ./.github/workflows/build_matrix.yaml
39+
permissions:
40+
contents: read
3941
build:
4042
runs-on: ubuntu-22.04 # FIXME - https://github.com/actions/runner-images/issues/11471
4143
environment: ${{ inputs.environment }}
@@ -116,6 +118,7 @@ jobs:
116118
run: |
117119
tests/e2e-kubernetes/scripts/run.sh
118120
- name: Create cluster
121+
id: create_cluster
119122
env:
120123
ACTION: "create_cluster"
121124
run: |
@@ -142,7 +145,8 @@ jobs:
142145
run: |
143146
tests/e2e-kubernetes/scripts/run.sh
144147
- name: Uninstall the driver
145-
if: always()
148+
# Skip uninstall if cluster creation did not succeed - no cluster to communicate with
149+
if: ${{ always() && steps.create_cluster.conclusion == 'success' }}
146150
env:
147151
ACTION: "uninstall_driver"
148152
run: |

.github/workflows/helm-publish.yaml

Lines changed: 50 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
11
name: Helm publish
22

33
on:
4+
# This job is manually dispatched for now, since we do not have image build fully automated yet.
45
workflow_dispatch:
56
inputs:
67
tag:
7-
description: "Tag referencing commit to create release from"
8+
description: "Release tag (e.g. v2.0.0)"
9+
required: true
10+
dry-run:
11+
description: "Skip publishing Helm chart"
12+
type: boolean
813
required: true
14+
default: true
915

1016
jobs:
11-
# This job is manually dispatched for now, since we do not have image build fully automated yet.
12-
helm:
17+
verify-helm-chart:
1318
runs-on: ubuntu-latest
1419
permissions:
15-
contents: write
16-
# Ensure only the latest version of the workflow can run, as this is global for the project
17-
if: ${{ github.ref == 'refs/heads/main' }}
20+
id-token: write
21+
environment: "trusted"
1822
steps:
1923
- name: Checkout tag
2024
uses: actions/checkout@v6
@@ -29,10 +33,6 @@ jobs:
2933
sparse-checkout: |
3034
scripts/verify-helm-images.sh
3135
sparse-checkout-cone-mode: false
32-
- name: Configure Git
33-
run: |
34-
git config user.name "$GITHUB_ACTOR"
35-
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
3636
- name: Install crane
3737
run: |
3838
cd /tmp
@@ -41,8 +41,48 @@ jobs:
4141
sudo mv crane /usr/local/bin/crane
4242
sudo chmod +x /usr/local/bin/crane
4343
crane version
44+
- name: Configure AWS Credentials
45+
uses: aws-actions/configure-aws-credentials@v6
46+
with:
47+
role-to-assume: ${{ vars.IAM_ROLE }}
48+
aws-region: ${{ vars.AWS_REGION }}
49+
inline-session-policy: >-
50+
{
51+
"Version": "2012-10-17",
52+
"Statement": [
53+
{
54+
"Sid":"AllowECRAuth",
55+
"Effect":"Allow",
56+
"Action":"ecr:GetAuthorizationToken",
57+
"Resource":"*"
58+
},
59+
{
60+
"Sid":"AllowECRRead",
61+
"Effect": "Allow",
62+
"Action": "ecr:BatchGetImage",
63+
"Resource": "arn:aws:ecr:us-east-1:602401143452:repository/eks/*"
64+
}
65+
]
66+
}
4467
- name: Verify all images exist before publishing
4568
run: ./main-branch/scripts/verify-helm-images.sh
69+
publish-helm-chart:
70+
runs-on: ubuntu-latest
71+
permissions:
72+
contents: write
73+
needs: [verify-helm-chart]
74+
# Ensure only the latest version of this job on main can run for publishing, as this is global for the project
75+
if: ${{ github.ref == 'refs/heads/main' && !inputs.dry-run }}
76+
steps:
77+
- name: Checkout tag
78+
uses: actions/checkout@v6
79+
with:
80+
ref: ${{ inputs.tag }}
81+
fetch-depth: 0
82+
- name: Configure Git
83+
run: |
84+
git config user.name "$GITHUB_ACTOR"
85+
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
4686
- name: Run chart-releaser
4787
uses: helm/chart-releaser-action@v1.7.0
4888
env:

.github/workflows/unit-tests.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ on:
44
push:
55
branches: [ "main", "feature/*" ]
66
pull_request:
7-
branches: [ "main", "feature/*" ]
87
merge_group:
98
types: [ "checks_requested" ]
109

@@ -45,7 +44,7 @@ jobs:
4544
run: make cover
4645

4746
- name: Upload report
48-
uses: actions/upload-artifact@v6
47+
uses: actions/upload-artifact@v7
4948
id: uploaded-report
5049
with:
5150
name: cover

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,30 @@
11
# Unreleased
22

3+
# v2.5.0
4+
5+
[Documentation](https://github.com/awslabs/mountpoint-s3-csi-driver/blob/v2.5.0/README.md)
6+
37
### Notable changes
48
* Add graceful pod eviction to ensure proper termination order. Mountpoint pods now remain active until all workload pods using the volume have terminated, preventing "Transport endpoint is not connected" errors. ([#693](https://github.com/awslabs/mountpoint-s3-csi-driver/pull/693))
9+
* Forward `CacheEmptyDirSizeLimit` to Mountpoint as `--max-cache-size` when using `emptyDir` cache with the default storage medium. This fixes issues where Mountpoint cache usage would go over `CacheEmptyDirSizeLimit` and cause eviction of the Mountpoint pod. ([#743](https://github.com/awslabs/mountpoint-s3-csi-driver/pull/743))
10+
* Add `cluster-autoscaler.kubernetes.io/daemonset-pod: "true"` annotation to Mountpoint Pods to prevent Cluster Autoscaler scale-down blocking. This resolves an issue where Cluster Autoscaler treated MP pods as non-replicated singleton pods, preventing node scale-down. ([#675](https://github.com/awslabs/mountpoint-s3-csi-driver/issues/675))
11+
* Drop support for Kubernetes 1.29. ([#721](https://github.com/awslabs/mountpoint-s3-csi-driver/pull/721))
12+
* Add `podLabels` configuration to Helm chart values. ([#714](https://github.com/awslabs/mountpoint-s3-csi-driver/pull/714))
13+
* Add fallback logic for SA tokens via CSI secrets field. ([#728](https://github.com/awslabs/mountpoint-s3-csi-driver/pull/728))
14+
* Headroom: Prevent premature workload pod ungating when PVC is unbound. ([#708](https://github.com/awslabs/mountpoint-s3-csi-driver/pull/708))
15+
* Use hard-coded kubelet path for s3-plugin container. ([#656](https://github.com/awslabs/mountpoint-s3-csi-driver/pull/656))
16+
* Support Mountpoint [version 1.22.2](https://github.com/awslabs/mountpoint-s3/releases/tag/mountpoint-s3-1.22.2) ([#755](https://github.com/awslabs/mountpoint-s3-csi-driver/pull/755))
17+
* Update the internal S3 client to use the latest release of the AWS Common Runtime (CRT) libraries. ([#1778](https://github.com/awslabs/mountpoint-s3/pull/1778))
18+
19+
# v2.4.1
20+
21+
[Documentation](https://github.com/awslabs/mountpoint-s3-csi-driver/blob/v2.4.1/README.md)
22+
23+
* Support Mountpoint [version 1.22.1](https://github.com/awslabs/mountpoint-s3/releases/tag/mountpoint-s3-1.22.1) ([#733](https://github.com/awslabs/mountpoint-s3-csi-driver/pull/733))
24+
* Fix a race condition where concurrent operations after closing a truncated file could result in I/O errors on subsequent reads. The issue was introduced in v1.22.0. ([#1781](https://github.com/awslabs/mountpoint-s3/pull/1781))
25+
* Fix incorrect validation of default data cache limit which would cause Mountpoint to preserve less than 5% of available space ([#1779](https://github.com/awslabs/mountpoint-s3/pull/1779))
26+
* Update go to 1.26.0 and run go fix ([#731](https://github.com/awslabs/mountpoint-s3-csi-driver/pull/731))
27+
* Update csi-node-driver-registrar and livenessprobe sidecar versions for release 2.4 branch ([#739](https://github.com/awslabs/mountpoint-s3-csi-driver/pull/739))
528

629
# v2.4.0
730

Dockerfile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#See the License for the specific language governing permissions and
1313
#limitations under the License.
1414

15-
ARG MOUNTPOINT_VERSION=1.22.0
15+
ARG MOUNTPOINT_VERSION=1.22.2
1616

1717
# Download the mountpoint tarball and produce an installable directory
1818
# Building on Amazon Linux 2 because it has an old libc version. libfuse from the os
@@ -30,9 +30,10 @@ RUN MP_ARCH=`echo ${TARGETARCH} | sed s/amd64/x86_64/` && \
3030
wget -q "https://s3.amazonaws.com/mountpoint-s3-release/${MOUNTPOINT_VERSION}/$MP_ARCH/mount-s3-${MOUNTPOINT_VERSION}-$MP_ARCH.tar.gz.asc" && \
3131
wget -q https://s3.amazonaws.com/mountpoint-s3-release/public_keys/KEYS
3232

33-
# Import the key and validate it has the fingerprint we expect
33+
# Import the key and validate it has the fingerprints we expect
3434
RUN gpg --import KEYS && \
35-
(gpg --fingerprint mountpoint-s3@amazon.com | grep "673F E406 1506 BB46 9A0E F857 BE39 7A52 B086 DA5A")
35+
(gpg --fingerprint mountpoint-s3@amazon.com | grep "8AEF E705 EBE3 29C0 948C 75A6 6F1C 3B3A EF4B 030B") && \
36+
(gpg --fingerprint mountpoint-s3@amazon.com | grep "673F E406 1506 BB46 9A0E F857 BE39 7A52 B086 DA5A") # older key
3637

3738
# Verify the downloaded tarball, extract it, and fixup the binary
3839
RUN MP_ARCH=`echo ${TARGETARCH} | sed s/amd64/x86_64/` && \
@@ -43,7 +44,7 @@ RUN MP_ARCH=`echo ${TARGETARCH} | sed s/amd64/x86_64/` && \
4344
patchelf --set-rpath '$ORIGIN' /mountpoint-s3/bin/mount-s3
4445

4546
# Build driver. Use BUILDPLATFORM not TARGETPLATFORM for cross compilation
46-
FROM --platform=$BUILDPLATFORM public.ecr.aws/eks-distro-build-tooling/golang:1.25.6 as builder
47+
FROM --platform=$BUILDPLATFORM public.ecr.aws/eks-distro-build-tooling/golang:1.26.1 as builder
4748
ARG TARGETARCH
4849

4950
WORKDIR /go/src/github.com/awslabs/mountpoint-s3-csi-driver

0 commit comments

Comments
 (0)