diff options
| -rw-r--r-- | .github/workflows/dev.yaml | 35 | ||||
| -rw-r--r-- | .github/workflows/release.yaml | 35 | ||||
| -rw-r--r-- | .github/workflows/versioned_release.yaml | 35 | ||||
| -rw-r--r-- | Makefile | 54 | ||||
| -rw-r--r-- | cmd/seaweedfs-csi-driver/Dockerfile | 4 | ||||
| -rw-r--r-- | cmd/seaweedfs-mount/Dockerfile | 7 | ||||
| -rw-r--r-- | cmd/seaweedfs-mount/Dockerfile.dev | 20 | ||||
| -rw-r--r-- | deploy/helm/seaweedfs-csi-driver/values.yaml | 2 | ||||
| -rw-r--r-- | deploy/kubernetes/seaweedfs-csi.yaml | 6 |
9 files changed, 158 insertions, 40 deletions
diff --git a/.github/workflows/dev.yaml b/.github/workflows/dev.yaml index c570fd1..b117abe 100644 --- a/.github/workflows/dev.yaml +++ b/.github/workflows/dev.yaml @@ -17,8 +17,8 @@ jobs: - name: Checkout uses: actions/checkout@v2 - - name: Docker meta - id: docker_meta + - name: Docker meta (csi-driver) + id: docker_meta_csi uses: docker/metadata-action@v3 with: images: | @@ -32,6 +32,21 @@ jobs: org.opencontainers.image.description=SeaweedFS is a distributed storage system for blobs, objects, files, and data lake, to store and serve billions of files fast! org.opencontainers.image.vendor=Chris Lu + - name: Docker meta (mount-service) + id: docker_meta_mount + uses: docker/metadata-action@v3 + with: + images: | + chrislusf/seaweedfs-mount + tags: | + type=raw,value=dev + flavor: | + latest=true + labels: | + org.opencontainers.image.title=seaweedfs-mount + org.opencontainers.image.description=SeaweedFS CSI mount helper service + org.opencontainers.image.vendor=Chris Lu + - name: Fetch history run: git fetch --prune --unshallow @@ -59,7 +74,7 @@ jobs: username: chrislusf password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build + - name: Build csi-driver image # if: ${{ startsWith(github.ref, 'refs/tags/') }} uses: docker/build-push-action@v2 with: @@ -67,8 +82,18 @@ jobs: push: ${{ github.event_name != 'pull_request' }} file: ./cmd/seaweedfs-csi-driver/Dockerfile platforms: linux/amd64, linux/arm, linux/arm64, linux/386 - tags: ${{ steps.docker_meta.outputs.tags }} - labels: ${{ steps.docker_meta.outputs.labels }} + tags: ${{ steps.docker_meta_csi.outputs.tags }} + labels: ${{ steps.docker_meta_csi.outputs.labels }} + + - name: Build mount-service image + uses: docker/build-push-action@v2 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + file: ./cmd/seaweedfs-mount/Dockerfile + platforms: linux/amd64, linux/arm, linux/arm64, linux/386 + tags: ${{ steps.docker_meta_mount.outputs.tags }} + labels: ${{ steps.docker_meta_mount.outputs.labels }} helm: runs-on: ubuntu-latest steps: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index e162fb2..dc7f5b4 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -18,8 +18,8 @@ jobs: - name: Checkout uses: actions/checkout@v2 - - name: Docker meta - id: docker_meta + - name: Docker meta (csi-driver) + id: docker_meta_csi uses: docker/metadata-action@v3 with: images: | @@ -33,6 +33,21 @@ jobs: org.opencontainers.image.description=SeaweedFS is a distributed storage system for blobs, objects, files, and data lake, to store and serve billions of files fast! org.opencontainers.image.vendor=Chris Lu + - name: Docker meta (mount-service) + id: docker_meta_mount + uses: docker/metadata-action@v3 + with: + images: | + chrislusf/seaweedfs-mount + tags: | + type=raw,value=latest + flavor: | + latest=true + labels: | + org.opencontainers.image.title=seaweedfs-mount + org.opencontainers.image.description=SeaweedFS CSI mount helper service + org.opencontainers.image.vendor=Chris Lu + - name: Fetch history run: git fetch --prune --unshallow @@ -60,7 +75,7 @@ jobs: username: chrislusf password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build + - name: Build csi-driver image # if: ${{ startsWith(github.ref, 'refs/tags/') }} uses: docker/build-push-action@v2 with: @@ -68,5 +83,15 @@ jobs: push: ${{ github.event_name != 'pull_request' }} file: ./cmd/seaweedfs-csi-driver/Dockerfile platforms: linux/amd64, linux/arm, linux/arm64, linux/386 - tags: ${{ steps.docker_meta.outputs.tags }} - labels: ${{ steps.docker_meta.outputs.labels }} + tags: ${{ steps.docker_meta_csi.outputs.tags }} + labels: ${{ steps.docker_meta_csi.outputs.labels }} + + - name: Build mount-service image + uses: docker/build-push-action@v2 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + file: ./cmd/seaweedfs-mount/Dockerfile + platforms: linux/amd64, linux/arm, linux/arm64, linux/386 + tags: ${{ steps.docker_meta_mount.outputs.tags }} + labels: ${{ steps.docker_meta_mount.outputs.labels }} diff --git a/.github/workflows/versioned_release.yaml b/.github/workflows/versioned_release.yaml index 4db3ed1..91e8241 100644 --- a/.github/workflows/versioned_release.yaml +++ b/.github/workflows/versioned_release.yaml @@ -18,8 +18,8 @@ jobs: - name: Checkout uses: actions/checkout@v2 - - name: Docker meta - id: docker_meta + - name: Docker meta (csi-driver) + id: docker_meta_csi uses: docker/metadata-action@v3 with: images: | @@ -33,6 +33,21 @@ jobs: org.opencontainers.image.description=SeaweedFS is a distributed storage system for blobs, objects, files, and data lake, to store and serve billions of files fast! org.opencontainers.image.vendor=Chris Lu + - name: Docker meta (mount-service) + id: docker_meta_mount + uses: docker/metadata-action@v3 + with: + images: | + chrislusf/seaweedfs-mount + tags: | + type=ref,event=tag + flavor: | + latest=false + labels: | + org.opencontainers.image.title=seaweedfs-mount + org.opencontainers.image.description=SeaweedFS CSI mount helper service + org.opencontainers.image.vendor=Chris Lu + - name: Fetch history run: git fetch --prune --unshallow @@ -60,7 +75,7 @@ jobs: username: chrislusf password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build + - name: Build csi-driver image # if: ${{ startsWith(github.ref, 'refs/tags/') }} uses: docker/build-push-action@v2 with: @@ -68,5 +83,15 @@ jobs: push: ${{ github.event_name != 'pull_request' }} file: ./cmd/seaweedfs-csi-driver/Dockerfile platforms: linux/amd64, linux/arm, linux/arm64, linux/386 - tags: ${{ steps.docker_meta.outputs.tags }} - labels: ${{ steps.docker_meta.outputs.labels }} + tags: ${{ steps.docker_meta_csi.outputs.tags }} + labels: ${{ steps.docker_meta_csi.outputs.labels }} + + - name: Build mount-service image + uses: docker/build-push-action@v2 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + file: ./cmd/seaweedfs-mount/Dockerfile + platforms: linux/amd64, linux/arm, linux/arm64, linux/386 + tags: ${{ steps.docker_meta_mount.outputs.tags }} + labels: ${{ steps.docker_meta_mount.outputs.labels }} @@ -1,22 +1,50 @@ # VERSION=latest make push -.PHONY: build container clean +.PHONY: build container container-csi container-mount push push-csi push-mount clean deps -REGISTRY_NAME=chrislusf -IMAGE_NAME=seaweedfs-csi-driver +REGISTRY_NAME ?= chrislusf +DRIVER_IMAGE_NAME ?= seaweedfs-csi-driver +MOUNT_IMAGE_NAME ?= seaweedfs-mount VERSION ?= dev -IMAGE_TAG=$(REGISTRY_NAME)/$(IMAGE_NAME):$(VERSION) COMMIT ?= $(shell git rev-parse --short HEAD) LDFLAGS ?= -s -w -X github.com/seaweedfs/seaweedfs-csi-driver/pkg/driver.gitCommit=${COMMIT} +OUTPUT_DIR := _output +DRIVER_BINARY := $(OUTPUT_DIR)/seaweedfs-csi-driver +MOUNT_BINARY := $(OUTPUT_DIR)/seaweedfs-mount + +DRIVER_IMAGE_TAG := $(REGISTRY_NAME)/$(DRIVER_IMAGE_NAME):$(VERSION) +MOUNT_IMAGE_TAG := $(REGISTRY_NAME)/$(MOUNT_IMAGE_NAME):$(VERSION) + deps: - pushd cmd/seaweedfs-csi-driver; go get -u; popd - pushd cmd/seaweedfs-csi-driver; go mod tidy; popd -build: - CGO_ENABLED=0 GOOS=linux go build -a -ldflags '$(LDFLAGS)' -o _output/seaweedfs-csi-driver ./cmd/seaweedfs-csi-driver/main.go -container: build - docker build -t $(IMAGE_TAG) -f cmd/seaweedfs-csi-driver/Dockerfile.dev . -push: container - docker push $(IMAGE_TAG) + go mod tidy + +build: $(DRIVER_BINARY) $(MOUNT_BINARY) + +$(OUTPUT_DIR): + mkdir -p $@ + +$(DRIVER_BINARY): | $(OUTPUT_DIR) + CGO_ENABLED=0 GOOS=linux go build -a -ldflags '$(LDFLAGS)' -o $@ ./cmd/seaweedfs-csi-driver/main.go + +$(MOUNT_BINARY): | $(OUTPUT_DIR) + CGO_ENABLED=0 GOOS=linux go build -a -ldflags '$(LDFLAGS)' -o $@ ./cmd/seaweedfs-mount/main.go + +container: container-csi container-mount + +container-csi: $(DRIVER_BINARY) + docker build -t $(DRIVER_IMAGE_TAG) -f cmd/seaweedfs-csi-driver/Dockerfile.dev . + +container-mount: $(MOUNT_BINARY) + docker build -t $(MOUNT_IMAGE_TAG) -f cmd/seaweedfs-mount/Dockerfile.dev . + +push: push-csi push-mount + +push-csi: container-csi + docker push $(DRIVER_IMAGE_TAG) + +push-mount: container-mount + docker push $(MOUNT_IMAGE_TAG) + clean: go clean -r -x - -rm -rf _output + -rm -rf $(OUTPUT_DIR) diff --git a/cmd/seaweedfs-csi-driver/Dockerfile b/cmd/seaweedfs-csi-driver/Dockerfile index f779b05..81cb507 100644 --- a/cmd/seaweedfs-csi-driver/Dockerfile +++ b/cmd/seaweedfs-csi-driver/Dockerfile @@ -3,10 +3,6 @@ FROM golang:1.24-alpine as builder RUN apk add git g++ RUN mkdir -p /go/src/github.com/seaweedfs/ -RUN git clone https://github.com/seaweedfs/seaweedfs /go/src/github.com/seaweedfs/seaweedfs -RUN cd /go/src/github.com/seaweedfs/seaweedfs/weed && go install && go clean -cache -modcache - -RUN mkdir -p /go/src/github.com/seaweedfs/ RUN git clone https://github.com/seaweedfs/seaweedfs-csi-driver /go/src/github.com/seaweedfs/seaweedfs-csi-driver RUN cd /go/src/github.com/seaweedfs/seaweedfs-csi-driver && go build -ldflags="-s -w" -o /seaweedfs-csi-driver ./cmd/seaweedfs-csi-driver/main.go && go clean -cache -modcache diff --git a/cmd/seaweedfs-mount/Dockerfile b/cmd/seaweedfs-mount/Dockerfile index 99ccea3..55cdd76 100644 --- a/cmd/seaweedfs-mount/Dockerfile +++ b/cmd/seaweedfs-mount/Dockerfile @@ -1,14 +1,13 @@ FROM golang:1.24-alpine AS builder -RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories RUN apk add git g++ RUN mkdir -p /go/src/github.com/seaweedfs/ RUN git clone https://github.com/seaweedfs/seaweedfs /go/src/github.com/seaweedfs/seaweedfs RUN cd /go/src/github.com/seaweedfs/seaweedfs/weed && go install -RUN mkdir -p /go/src/github.com/zemul/ -RUN git clone https://github.com/zemul/seaweedfs-csi-driver /go/src/github.com/zemul/seaweedfs-csi-driver -RUN cd /go/src/github.com/zemul/seaweedfs-csi-driver && \ +RUN mkdir -p /go/src/github.com/seaweedfs/ +RUN git clone https://github.com/seaweedfs/seaweedfs-csi-driver /go/src/github.com/seaweedfs/seaweedfs-csi-driver +RUN cd /go/src/github.com/seaweedfs/seaweedfs-csi-driver && \ go build -ldflags="-s -w" -o /seaweedfs-mount ./cmd/seaweedfs-mount/main.go FROM alpine AS final diff --git a/cmd/seaweedfs-mount/Dockerfile.dev b/cmd/seaweedfs-mount/Dockerfile.dev new file mode 100644 index 0000000..99ccea3 --- /dev/null +++ b/cmd/seaweedfs-mount/Dockerfile.dev @@ -0,0 +1,20 @@ +FROM golang:1.24-alpine AS builder +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories +RUN apk add git g++ + +RUN mkdir -p /go/src/github.com/seaweedfs/ +RUN git clone https://github.com/seaweedfs/seaweedfs /go/src/github.com/seaweedfs/seaweedfs +RUN cd /go/src/github.com/seaweedfs/seaweedfs/weed && go install + +RUN mkdir -p /go/src/github.com/zemul/ +RUN git clone https://github.com/zemul/seaweedfs-csi-driver /go/src/github.com/zemul/seaweedfs-csi-driver +RUN cd /go/src/github.com/zemul/seaweedfs-csi-driver && \ + go build -ldflags="-s -w" -o /seaweedfs-mount ./cmd/seaweedfs-mount/main.go + +FROM alpine AS final +RUN apk add fuse +COPY --from=builder /go/bin/weed /usr/bin/ +COPY --from=builder /seaweedfs-mount / + +RUN chmod +x /seaweedfs-mount +ENTRYPOINT ["/seaweedfs-mount"]
\ No newline at end of file diff --git a/deploy/helm/seaweedfs-csi-driver/values.yaml b/deploy/helm/seaweedfs-csi-driver/values.yaml index 15325ec..224a169 100644 --- a/deploy/helm/seaweedfs-csi-driver/values.yaml +++ b/deploy/helm/seaweedfs-csi-driver/values.yaml @@ -73,7 +73,7 @@ seaweedfsCsiPlugin: mountService: enabled: true - image: zemiaozhou/seaweedfs-mount:latest + image: chrislusf/seaweedfs-mount:latest endpoint: unix:///var/lib/seaweedfs-mount/seaweedfs-mount.sock hostPath: /var/lib/seaweedfs-mount socketDir: /var/lib/seaweedfs-mount diff --git a/deploy/kubernetes/seaweedfs-csi.yaml b/deploy/kubernetes/seaweedfs-csi.yaml index ed1060b..2fc4f9b 100644 --- a/deploy/kubernetes/seaweedfs-csi.yaml +++ b/deploy/kubernetes/seaweedfs-csi.yaml @@ -216,7 +216,7 @@ spec: add: - SYS_ADMIN privileged: true - image: zemiaozhou/seaweedfs-csi-driver:latest + image: chrislusf/seaweedfs-csi-driver:latest imagePullPolicy: IfNotPresent args: - --endpoint=$(CSI_ENDPOINT) @@ -375,7 +375,7 @@ spec: add: - SYS_ADMIN privileged: true - image: zemiaozhou/seaweedfs-mount:latest + image: chrislusf/seaweedfs-mount:latest imagePullPolicy: IfNotPresent args: - --endpoint=$(MOUNT_ENDPOINT) @@ -444,7 +444,7 @@ spec: containers: # SeaweedFs Plugin (controller) - name: seaweedfs-csi-plugin - image: zemiaozhou/seaweedfs-csi-driver:latest + image: chrislusf/seaweedfs-csi-driver:latest imagePullPolicy: IfNotPresent args : - --endpoint=$(CSI_ENDPOINT) |
