mirror of
https://github.com/hanzoai/s3-csi.git
synced 2026-09-30 23:52:32 +00:00
fix: repair references the rename broke; pin s3 v1.0.2
The seaweedfs->s3 sweep rewrote third-party names it had no business
touching, turning working references into ones that resolve to nothing:
- deploy manifests and helm values asked for chrislusf/s3-csi and
chrislusf/s3-mount. Neither exists (Docker Hub 404s; upstream's real name
is chrislusf/seaweedfs-csi-driver). Pointed them at the images our own CI
publishes instead — ghcr.io/hanzoai/s3-{csi,mount} — which is what #1
moved us to and what the static manifest should have said all along.
- README linked github.com/s3/s3, s3.github.io/s3-csi-driver/helm and
chrislusf/s3-csi-driver badges. Restored the genuine upstream where we
cite upstream, and pointed our own links at hanzoai/s3-csi. Also fixed a
path that named a file we do not have.
- sync-s3.yaml grepped go.mod for github.com/s3/s3 and would `go get -u`
that module. Our module is github.com/hanzoai/s3, so the grep matched
nothing and the fetch could only fail. Deleted rather than repaired: it
syncs from an upstream this fork has deliberately left behind, and
pulling it forward would put gRPC back under a ZAP driver.
Also pins github.com/hanzoai/s3 v1.0.2 in place of the pseudo-version, now
that s3 tags its own v1 line (its 4.34.x/v2026.x tags were never resolvable
— the module has no major suffix, so only v1.x.x can be required), and moves
the integration test onto v1.0.2. That pin matters: 4.34.6 predates the ZAP
filer entirely, so the test was pointing a ZAP driver at a gRPC filer, and
v1.0.2 is the first build without the promise-ID deadlock on concurrent
filer calls.
Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
@@ -65,11 +65,11 @@ jobs:
|
||||
# the rollout. Retry the docker pull a few times to ride through
|
||||
# transient registry hiccups.
|
||||
for i in 1 2 3; do
|
||||
docker pull ghcr.io/hanzoai/s3:4.34.6 && break
|
||||
docker pull ghcr.io/hanzoai/s3:v1.0.2 && break
|
||||
echo "docker pull attempt $i failed, retrying..."
|
||||
sleep 10
|
||||
done
|
||||
kind load docker-image ghcr.io/hanzoai/s3:4.34.6 --name csi-test
|
||||
kind load docker-image ghcr.io/hanzoai/s3:v1.0.2 --name csi-test
|
||||
|
||||
- name: Deploy S3
|
||||
run: |
|
||||
@@ -117,7 +117,7 @@ jobs:
|
||||
spec:
|
||||
containers:
|
||||
- name: s3
|
||||
image: ghcr.io/hanzoai/s3:4.34.6
|
||||
image: ghcr.io/hanzoai/s3:v1.0.2
|
||||
# Use the image preloaded into kind by the workflow so we
|
||||
# do not re-pull from Docker Hub (anonymous rate limits
|
||||
# have caused ImagePullBackOff in CI).
|
||||
@@ -172,12 +172,12 @@ jobs:
|
||||
# The s3-csi.yaml is rendered from the helm chart and pins
|
||||
# the released image tag (e.g. ghcr.io/hanzoai/s3-csi:v1.4.5),
|
||||
# so we rewrite *any* ghcr.io/hanzoai/s3-csi:* and
|
||||
# chrislusf/s3-mount:* reference to the test images we
|
||||
# ghcr.io/hanzoai/s3-mount:* reference to the test images we
|
||||
# kind-loaded in the previous step. This guarantees CI is exercising
|
||||
# the code in this PR, not whatever the helm chart happens to pin.
|
||||
cat deploy/kubernetes/s3-csi.yaml | \
|
||||
sed -E 's|ghcr.io/hanzoai/s3-csi:[^[:space:]]+|s3-csi:test|g' | \
|
||||
sed -E 's|chrislusf/s3-mount:[^[:space:]]+|s3-mount:test|g' | \
|
||||
sed -E 's|ghcr.io/hanzoai/s3-mount:[^[:space:]]+|s3-mount:test|g' | \
|
||||
sed 's|S3_FILER:8888|s3.s3.svc.cluster.local:8888|g' | \
|
||||
kubectl apply -f -
|
||||
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
name: Sync S3 Dependency
|
||||
|
||||
on:
|
||||
# Run weekly on Friday at 11 PM UTC
|
||||
schedule:
|
||||
- cron: '0 23 * * 5'
|
||||
|
||||
# Allow manual trigger
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
force_update:
|
||||
description: 'Force update even if no changes detected'
|
||||
required: false
|
||||
default: 'false'
|
||||
type: boolean
|
||||
|
||||
jobs:
|
||||
sync:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.24'
|
||||
|
||||
- name: Get current S3 version
|
||||
id: current_version
|
||||
run: |
|
||||
CURRENT=$(grep 'github.com/s3/s3' go.mod | grep -v module | awk '{print $2}')
|
||||
echo "version=$CURRENT" >> $GITHUB_OUTPUT
|
||||
echo "Current S3 version: $CURRENT"
|
||||
|
||||
- name: Update S3 dependency
|
||||
run: |
|
||||
go get -u github.com/s3/s3@latest
|
||||
go mod tidy
|
||||
|
||||
- name: Get new S3 version
|
||||
id: new_version
|
||||
run: |
|
||||
NEW=$(grep 'github.com/s3/s3' go.mod | grep -v module | awk '{print $2}')
|
||||
echo "version=$NEW" >> $GITHUB_OUTPUT
|
||||
echo "New S3 version: $NEW"
|
||||
|
||||
# Extract commit hash (last part after the final dash)
|
||||
COMMIT_HASH=$(echo "$NEW" | sed 's/.*-//')
|
||||
echo "commit=$COMMIT_HASH" >> $GITHUB_OUTPUT
|
||||
echo "Commit hash: $COMMIT_HASH"
|
||||
|
||||
- name: Update Dockerfile commit hashes
|
||||
run: |
|
||||
COMMIT="${{ steps.new_version.outputs.commit }}"
|
||||
echo "Updating Dockerfiles to commit: $COMMIT"
|
||||
|
||||
# Update both Dockerfiles with the new commit hash
|
||||
sed -i "s/^ARG S3_COMMIT=.*/ARG S3_COMMIT=$COMMIT/" cmd/s3-mount/Dockerfile
|
||||
sed -i "s/^ARG S3_COMMIT=.*/ARG S3_COMMIT=$COMMIT/" cmd/s3-mount/Dockerfile.dev
|
||||
|
||||
# Show the changes
|
||||
grep "ARG S3_COMMIT" cmd/s3-mount/Dockerfile cmd/s3-mount/Dockerfile.dev
|
||||
|
||||
- name: Check for changes
|
||||
id: check_changes
|
||||
run: |
|
||||
if git diff --quiet go.mod go.sum cmd/s3-mount/Dockerfile cmd/s3-mount/Dockerfile.dev; then
|
||||
echo "changed=false" >> $GITHUB_OUTPUT
|
||||
echo "No changes detected"
|
||||
else
|
||||
echo "changed=true" >> $GITHUB_OUTPUT
|
||||
echo "Changes detected:"
|
||||
git diff --stat
|
||||
fi
|
||||
|
||||
- name: Run tests
|
||||
if: steps.check_changes.outputs.changed == 'true' || github.event.inputs.force_update == 'true'
|
||||
id: run_tests
|
||||
run: |
|
||||
echo "Validating compilation and running tests"
|
||||
go version
|
||||
go test ./... -v
|
||||
|
||||
- name: Create Pull Request
|
||||
if: (steps.check_changes.outputs.changed == 'true' || github.event.inputs.force_update == 'true') && steps.run_tests.outcome == 'success'
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
commit-message: |
|
||||
chore: sync s3 dependency to latest
|
||||
|
||||
Updated from ${{ steps.current_version.outputs.version }}
|
||||
to ${{ steps.new_version.outputs.version }}
|
||||
|
||||
See changes: https://github.com/s3/s3/compare/${{ steps.current_version.outputs.version }}...${{ steps.new_version.outputs.version }}
|
||||
branch: auto-sync-s3
|
||||
delete-branch: true
|
||||
title: 'chore: sync s3 dependency to latest'
|
||||
body: |
|
||||
## Automated S3 Dependency Update
|
||||
|
||||
This PR was automatically created by the sync workflow.
|
||||
|
||||
### Changes
|
||||
- **From:** `${{ steps.current_version.outputs.version }}`
|
||||
- **To:** `${{ steps.new_version.outputs.version }}`
|
||||
|
||||
### S3 Changelog
|
||||
[View changes on GitHub](https://github.com/s3/s3/compare/${{ steps.current_version.outputs.version }}...${{ steps.new_version.outputs.version }})
|
||||
|
||||
### Next Steps
|
||||
After merging, the dev Docker images will be automatically rebuilt with the latest S3 code.
|
||||
|
||||
---
|
||||
*This PR was auto-generated by [sync-s3.yaml](.github/workflows/sync-s3.yaml)*
|
||||
labels: |
|
||||
dependencies
|
||||
automated
|
||||
reviewers: chrislusf
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# Container Storage Interface (CSI) for S3
|
||||
|
||||
[](https://hub.docker.com/r/chrislusf/s3-csi-driver/)
|
||||
[](https://artifacthub.io/packages/search?repo=s3-csi-driver)
|
||||
[](https://hub.docker.com/r/chrislusf/seaweedfs-csi-driver/)
|
||||
[](https://artifacthub.io/packages/search?repo=seaweedfs-csi-driver)
|
||||
|
||||
[Container storage interface](https://kubernetes-csi.github.io/docs/) is an [industry standard](https://github.com/container-storage-interface/spec/blob/master/spec.md) that enables storage vendors to develop a plugin once and have it work across a number of container orchestration systems.
|
||||
|
||||
[S3](https://github.com/s3/s3) is a simple and highly scalable distributed file system, to store and serve billions of files fast!
|
||||
[S3](https://github.com/hanzoai/s3) is a simple and highly scalable distributed file system, to store and serve billions of files fast!
|
||||
|
||||
<br>
|
||||
|
||||
@@ -34,16 +34,16 @@
|
||||
1. Add the helm repo;
|
||||
|
||||
```sh
|
||||
helm repo add s3-csi-driver https://s3.github.io/s3-csi-driver/helm
|
||||
helm repo add s3-csi https://hanzoai.github.io/s3-csi/helm
|
||||
```
|
||||
|
||||
2. Check versions by `helm repo update s3-csi-driver` and `helm search repo s3-csi-driver`
|
||||
2. Check versions by `helm repo update s3-csi` and `helm search repo s3-csi`
|
||||
|
||||
#### Source
|
||||
|
||||
1. Clone this repository
|
||||
```sh
|
||||
git clone https://github.com/s3/s3-csi-driver.git
|
||||
git clone https://github.com/hanzoai/s3-csi.git
|
||||
```
|
||||
|
||||
2. Adjust your S3 Filer address via variable S3_FILER in `deploy/kubernetes/s3-csi.yaml` (2 places)
|
||||
@@ -53,7 +53,7 @@ git clone https://github.com/s3/s3-csi-driver.git
|
||||
### To generate an up to date manifest from the helm chart, do:
|
||||
|
||||
```
|
||||
$ helm template s3 ./deploy/helm/s3-csi-driver > deploy/kubernetes/s3-csi.yaml
|
||||
$ helm template s3 ./deploy/helm/s3-csi > deploy/kubernetes/s3-csi.yaml
|
||||
```
|
||||
Check the kubelet root directory ,Execute the following command
|
||||
```
|
||||
@@ -89,15 +89,15 @@ $ kubectl delete -f deploy/kubernetes/s3-csi.yaml
|
||||
|
||||
1. Clone project
|
||||
```bash
|
||||
git clone https://github.com/s3/s3-csi-driver.git
|
||||
git clone https://github.com/hanzoai/s3-csi.git
|
||||
```
|
||||
2. Edit `./deploy/helm/s3-csi-driver/values.yaml` if required and Install
|
||||
2. Edit `./deploy/helm/s3-csi/values.yaml` if required and Install
|
||||
```bash
|
||||
helm install --set s3Filer=<filerHost:port> s3-csi-driver ./deploy/helm/s3-csi-driver
|
||||
helm install --set s3Filer=<filerHost:port> s3-csi-driver ./deploy/helm/s3-csi
|
||||
```
|
||||
Example with multiple filers :
|
||||
```bash
|
||||
helm install s3-csi-driver ./deploy/helm/s3-csi-driver/ \
|
||||
helm install s3-csi-driver ./deploy/helm/s3-csi/ \
|
||||
--namespace s3-csi-driver \
|
||||
--set s3Filer="<filerHost:port>\,<filerHost:port>\,<filerHost:port>\,<filerHost:port>\,<filerHost:port>"
|
||||
```
|
||||
|
||||
@@ -91,7 +91,7 @@ csiLivenessProbe:
|
||||
resources: {}
|
||||
|
||||
s3CsiPlugin:
|
||||
image: chrislusf/s3-csi
|
||||
image: ghcr.io/hanzoai/s3-csi
|
||||
# tag defaults to Chart.appVersion when not set
|
||||
securityContext:
|
||||
privileged: true
|
||||
@@ -108,7 +108,7 @@ s3CsiPlugin:
|
||||
mountService:
|
||||
# Must be enabled for the CSI driver node component to mount volumes
|
||||
enabled: true
|
||||
image: chrislusf/s3-mount
|
||||
image: ghcr.io/hanzoai/s3-mount
|
||||
# tag defaults to Chart.appVersion when not set
|
||||
# Endpoint for communication between CSI driver and mount service
|
||||
endpoint: unix:///var/lib/s3-mount/s3-mount.sock
|
||||
|
||||
@@ -299,7 +299,7 @@ spec:
|
||||
mountPath: /var/lib/csi/sockets/pluginproxy/
|
||||
# S3 Plugin
|
||||
- name: s3-csi-plugin
|
||||
image: chrislusf/s3-csi:latest
|
||||
image: ghcr.io/hanzoai/s3-csi:latest
|
||||
args :
|
||||
- "--endpoint=$(CSI_ENDPOINT)"
|
||||
- "--filer=$(S3_FILER)"
|
||||
@@ -379,7 +379,7 @@ spec:
|
||||
capabilities:
|
||||
add: ["SYS_ADMIN"]
|
||||
allowPrivilegeEscalation: true
|
||||
image: chrislusf/s3-csi:latest
|
||||
image: ghcr.io/hanzoai/s3-csi:latest
|
||||
args :
|
||||
- "--endpoint=$(CSI_ENDPOINT)"
|
||||
- "--filer=$(S3_FILER)"
|
||||
|
||||
@@ -215,7 +215,7 @@ spec:
|
||||
add:
|
||||
- SYS_ADMIN
|
||||
privileged: true
|
||||
image: chrislusf/s3-mount:v1.4.5
|
||||
image: ghcr.io/hanzoai/s3-mount:v1.4.5
|
||||
imagePullPolicy: IfNotPresent
|
||||
args:
|
||||
- --endpoint=$(MOUNT_ENDPOINT)
|
||||
@@ -289,7 +289,7 @@ spec:
|
||||
add:
|
||||
- SYS_ADMIN
|
||||
privileged: true
|
||||
image: chrislusf/s3-csi:v1.4.5
|
||||
image: ghcr.io/hanzoai/s3-csi:v1.4.5
|
||||
imagePullPolicy: IfNotPresent
|
||||
args:
|
||||
- --endpoint=$(CSI_ENDPOINT)
|
||||
@@ -450,7 +450,7 @@ spec:
|
||||
containers:
|
||||
# S3 Plugin (controller)
|
||||
- name: s3-csi-plugin
|
||||
image: chrislusf/s3-csi:v1.4.5
|
||||
image: ghcr.io/hanzoai/s3-csi:v1.4.5
|
||||
imagePullPolicy: IfNotPresent
|
||||
args :
|
||||
- --endpoint=$(CSI_ENDPOINT)
|
||||
|
||||
@@ -10,7 +10,7 @@ require (
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/hanzoai/s3 v1.0.2-0.20260727225537-6dda4e4d6bca
|
||||
github.com/hanzoai/s3 v1.0.2
|
||||
golang.org/x/sys v0.47.0
|
||||
k8s.io/api v0.32.0
|
||||
k8s.io/apimachinery v0.32.0
|
||||
|
||||
@@ -61,6 +61,8 @@ github.com/hanzoai/goexif v1.0.4 h1:ttNObsfiO3z8A4jA91l3YtMELGAXyMfVr8ckgNm9AwE=
|
||||
github.com/hanzoai/goexif v1.0.4/go.mod h1:eZsa4Rlv4Vqf/hGAjq5kRGBQTDDiZdkqsw6vEXTs3p4=
|
||||
github.com/hanzoai/s3 v1.0.2-0.20260727225537-6dda4e4d6bca h1:6VGjgNyfCA2zGAijeCVxNnHD9arp2t6jqs7WU3JE2oQ=
|
||||
github.com/hanzoai/s3 v1.0.2-0.20260727225537-6dda4e4d6bca/go.mod h1:lXS9m0Ba+tV7PCtAYuEeJnf58j6cSWmkmV5JxVR1LBY=
|
||||
github.com/hanzoai/s3 v1.0.2 h1:9QLf/WVV0V7ykPOcgkSaDyMOWl3LEmULGEKNU0xW/XA=
|
||||
github.com/hanzoai/s3 v1.0.2/go.mod h1:lXS9m0Ba+tV7PCtAYuEeJnf58j6cSWmkmV5JxVR1LBY=
|
||||
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
|
||||
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
|
||||
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
|
||||
|
||||
Reference in New Issue
Block a user