From 311b1a051af94f0f6414da3c00a398a5b84a230a Mon Sep 17 00:00:00 2001 From: Ashima-Ashima1 Date: Wed, 2 Jul 2025 10:36:32 +0530 Subject: [PATCH 1/4] rpm pkg support Signed-off-by: Ashima-Ashima1 --- .github/workflows/release.yml | 10 +++---- .secrets.baseline | 2 +- cos-csi-mounter/Makefile | 55 +++++++++++++++++++++++++++++++++-- go.mod | 4 +-- go.sum | 8 ++--- 5 files changed, 65 insertions(+), 14 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6ac82bc5..640bf5e2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,7 +3,7 @@ name: Release on: push: branches: - - main + - rpm-pkg jobs: release: @@ -34,7 +34,7 @@ jobs: - name: Run Unit Tests for cos csi mounter run: sudo make ut-coverage -C ${{ matrix.package_dir }} - - name: Build Debian Package for cos csi mounter container + - name: Build Debian and RPM Packagesfor cos csi mounter container run: | cd ${{ matrix.package_dir }} make packages @@ -61,9 +61,9 @@ jobs: files: | /home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.deb.tar.gz /home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.deb.tar.gz.sha256 - tag_name: v1.0.1 - name: v1.0.1 - body: Generate debian package + tag_name: v0.5.4 + name: v0.5.4 + body: Generate debian and rpm packages prerelease: ${{ env.IS_LATEST_RELEASE != 'true' }} - name: Perform CodeQL Analysis diff --git a/.secrets.baseline b/.secrets.baseline index 18ec30c7..b3ed007a 100644 --- a/.secrets.baseline +++ b/.secrets.baseline @@ -3,7 +3,7 @@ "files": "go.sum|^.secrets.baseline$", "lines": null }, - "generated_at": "2025-07-01T12:50:32Z", + "generated_at": "2025-07-02T04:40:23Z", "plugins_used": [ { "name": "AWSKeyDetector" diff --git a/cos-csi-mounter/Makefile b/cos-csi-mounter/Makefile index 00e6c744..d21d36de 100644 --- a/cos-csi-mounter/Makefile +++ b/cos-csi-mounter/Makefile @@ -11,6 +11,11 @@ DESCRIPTION := "IBM cos-csi-mounter service" INSTALL_TAR_FILE := "$(NAME)-$(APP_VERSION).deb.tar.gz" CHECKSUM_FILE := "$(INSTALL_TAR_FILE).sha256" +LICENSE := "IBM" +RPM_ARCH := x86_64 +RPM_RELEASE_NUM := 1 +REDHAT_SPEC := $(BUILD_DIR)/red-hat.spec + test: go test -v -timeout 1800s -coverprofile=cover.out ./... go tool cover -html=cover.out -o=cover.html @@ -43,19 +48,65 @@ deb-build: build-linux dpkg-deb --build $(BUILD_DIR) rm -rf $(BUILD_DIR) +rpm-build: +rpm-build: build-linux + rm -rf $(BUILD_DIR) + mkdir -p $(BUILD_DIR)/ + mkdir -p $(BUILD_DIR)/rpm/SOURCES/usr/local/bin $(BUILD_DIR)/rpm/SOURCES/etc/systemd/system $(BUILD_DIR)/rpm/SOURCES/etc/ibmcloud + cp install/cos-csi-mounter.service $(BUILD_DIR)/rpm/SOURCES/etc/systemd/system + cp install/share.conf $(BUILD_DIR)/rpm/SOURCES/etc/ibmcloud + cp ${BIN_DIR}/cos-csi-mounter-server $(BUILD_DIR)/rpm/SOURCES/usr/local/bin + + echo "Name: $(NAME)" > $(REDHAT_SPEC) + echo "Version: $(APP_VERSION)" >> $(REDHAT_SPEC) + echo "Release: $(RPM_RELEASE_NUM)" >> $(REDHAT_SPEC) + echo "Summary: $(DESCRIPTION)" >> $(REDHAT_SPEC) + echo "License: $(LICENSE)" >> $(REDHAT_SPEC) + echo "BuildArch: $(RPM_ARCH)" >> $(REDHAT_SPEC) + echo "Requires: mount.ibmshare = 0.1.1" >> $(REDHAT_SPEC) + echo "%define _rpmfilename $(NAME)-$(APP_VERSION).rpm" >> $(REDHAT_SPEC) + echo "%build" >> $(REDHAT_SPEC) + + echo "%install" >> $(REDHAT_SPEC) + echo "rm -rf %{buildroot}" >> $(REDHAT_SPEC) + echo "mkdir -p %{buildroot}/etc/systemd/system/" >> $(REDHAT_SPEC) + echo "mkdir -p %{buildroot}/usr/local/bin/" >> $(REDHAT_SPEC) + echo "mkdir -p %{buildroot}/etc/ibmcloud/" >> $(REDHAT_SPEC) + echo "cp -r %{_sourcedir}/* %{buildroot}/" >> $(REDHAT_SPEC) + + echo "%description" >> $(REDHAT_SPEC) + echo "This package provides the IBM Mount Share helper container service." + + echo "%files" >> $(REDHAT_SPEC) + echo "/etc/systemd/system/cos-csi-mounter.service" >> $(REDHAT_SPEC) + echo "/usr/local/bin/cos-csi-mounter-server" >> $(REDHAT_SPEC) + echo "/etc/ibmcloud/share.conf" >> $(REDHAT_SPEC) + + echo "%post" >> $(REDHAT_SPEC) + echo "systemctl enable cos-csi-mounter.service" >> $(REDHAT_SPEC) + echo "systemctl start cos-csi-mounter.service" >> $(REDHAT_SPEC) + + echo "%preun" >> $(REDHAT_SPEC) + echo "systemctl stop cos-csi-mounter.service || true" >> $(REDHAT_SPEC) + echo "systemctl disable cos-csi-mounter.service || true" >> $(REDHAT_SPEC) + + rpmbuild -ba --build-in-place --define "_topdir $(PWD)/$(BUILD_DIR)/rpm" $(REDHAT_SPEC) + cp $(BUILD_DIR)/rpm/RPMS/* ./ + rm -rf $(BUILD_DIR) tar-package: tar-package: mkdir packages cp ${NAME}-* packages/ + ls packages/ cd packages && tar -czvf ../$(INSTALL_TAR_FILE) * sha256sum $(INSTALL_TAR_FILE) > $(CHECKSUM_FILE) @printf "Production - Install package created ok: $(INSTALL_TAR_FILE)\n" clean: rm -rf ${BIN_DIR} - rm *.deb + rm *.deb *.rpm rm -rf packages packages: -packages: deb-build tar-package clean \ No newline at end of file +packages: deb-build rpm-build tar-package clean \ No newline at end of file diff --git a/go.mod b/go.mod index 8f36d7fb..0eb40968 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/IBM/go-sdk-core/v5 v5.20.1 github.com/IBM/ibm-cos-sdk-go v1.12.2 github.com/IBM/ibm-cos-sdk-go-config/v2 v2.3.0 - github.com/IBM/ibm-csi-common v1.1.20 + github.com/IBM/ibm-csi-common v1.1.21 github.com/IBM/ibmcloud-volume-interface v1.2.20 github.com/aws/aws-sdk-go v1.55.7 github.com/container-storage-interface/spec v1.11.0 @@ -33,7 +33,7 @@ require ( require ( cel.dev/expr v0.23.0 // indirect github.com/BurntSushi/toml v1.0.0 // indirect - github.com/IBM/secret-utils-lib v1.1.13 // indirect + github.com/IBM/secret-utils-lib v1.1.14 // indirect github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/antlr4-go/antlr/v4 v4.13.0 // indirect diff --git a/go.sum b/go.sum index ecb7feb1..03bd71d6 100644 --- a/go.sum +++ b/go.sum @@ -8,12 +8,12 @@ github.com/IBM/ibm-cos-sdk-go v1.12.2 h1:71A4tDl8u6BZ548h71ecEe7fw5bBA7ECTVqYmeS github.com/IBM/ibm-cos-sdk-go v1.12.2/go.mod h1:ODYcmrmdpjo5hVguq9RbD6xmC8xb1XZMG7NefUbJNcc= github.com/IBM/ibm-cos-sdk-go-config/v2 v2.3.0 h1:956Nqk0eKI3lq+AkzWXZDid4UZHRz0wWh1LwkleBsWk= github.com/IBM/ibm-cos-sdk-go-config/v2 v2.3.0/go.mod h1:chnQxV+i38wD0aIi4KNU5bP2uzPtc7EHqB3/8Rhyjlg= -github.com/IBM/ibm-csi-common v1.1.20 h1:83tWmb+39G/Mm4E9nZwn5/EL0SMcyEyLJDN6hAS4eg4= -github.com/IBM/ibm-csi-common v1.1.20/go.mod h1:z9U3OmpKN92eUVdhhdbrr5kAT3MPRT9xwr6MVltLBFI= +github.com/IBM/ibm-csi-common v1.1.21 h1:/OmjpF+YgmkLmtehFmmfWp9kHGP9iMNkTU/KQDYXzrY= +github.com/IBM/ibm-csi-common v1.1.21/go.mod h1:AgjHhkYgDwYz1OmFGTgtOv+GCMsD67Yel+ZKsY90PYY= github.com/IBM/ibmcloud-volume-interface v1.2.20 h1:VZlP9fhFLX3evH9QlcXulYX4v4GNeTtbW7nl4Chg+ls= github.com/IBM/ibmcloud-volume-interface v1.2.20/go.mod h1:PMe4wOp+EEkVNwlo/iJahh+6/aIvjWo+nAdHB1oGBFE= -github.com/IBM/secret-utils-lib v1.1.13 h1:osQPjQh16fx8N0fZiPeZyXCyPYtuB1VoV/3HAxZ+Ep4= -github.com/IBM/secret-utils-lib v1.1.13/go.mod h1:oQLxbIMLCk8tVFxp0SEQqa80VTOyY52ZP10ZY2AuD98= +github.com/IBM/secret-utils-lib v1.1.14 h1:Gv5Ca2hZTQMr9+PkOq7AE2lUUnNEeQJ0uiKaxKT1Sdk= +github.com/IBM/secret-utils-lib v1.1.14/go.mod h1:wAAmS6JOrgcASOuyDkclmxWdKMcbVxshW5QWlMn21X8= github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab h1:UKkYhof1njT1/xq4SEg5z+VpTgjmNeHwPGRQl7takDI= github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= From e13483872b42f66b51704731f05993769adf46d5 Mon Sep 17 00:00:00 2001 From: Ashima-Ashima1 Date: Wed, 2 Jul 2025 15:53:08 +0530 Subject: [PATCH 2/4] publish test version Signed-off-by: Ashima-Ashima1 --- .github/workflows/release.yml | 2 ++ cos-csi-mounter/Makefile | 21 ++++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 640bf5e2..44819f87 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -61,6 +61,8 @@ jobs: files: | /home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.deb.tar.gz /home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.deb.tar.gz.sha256 + /home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.rpm.tar.gz + /home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.rpm.tar.gz.sha256 tag_name: v0.5.4 name: v0.5.4 body: Generate debian and rpm packages diff --git a/cos-csi-mounter/Makefile b/cos-csi-mounter/Makefile index d21d36de..ff0b2ea2 100644 --- a/cos-csi-mounter/Makefile +++ b/cos-csi-mounter/Makefile @@ -8,8 +8,10 @@ MAINTAINER := "IKS Storage" DEB_ARCH := all DESCRIPTION := "IBM cos-csi-mounter service" -INSTALL_TAR_FILE := "$(NAME)-$(APP_VERSION).deb.tar.gz" -CHECKSUM_FILE := "$(INSTALL_TAR_FILE).sha256" +INSTALL_TAR_FILE_DEB := "$(NAME)-$(APP_VERSION).deb.tar.gz" +INSTALL_TAR_FILE_RPM := "$(NAME)-$(APP_VERSION).rpm.tar.gz" +CHECKSUM_FILE_DEB := "$(INSTALL_TAR_FILE_DEB).sha256" +CHECKSUM_FILE_RPM := "$(INSTALL_TAR_FILE_RPM).sha256" LICENSE := "IBM" RPM_ARCH := x86_64 @@ -98,10 +100,12 @@ tar-package: tar-package: mkdir packages cp ${NAME}-* packages/ - ls packages/ - cd packages && tar -czvf ../$(INSTALL_TAR_FILE) * - sha256sum $(INSTALL_TAR_FILE) > $(CHECKSUM_FILE) - @printf "Production - Install package created ok: $(INSTALL_TAR_FILE)\n" + cd packages && \ + tar -czvf ../$(INSTALL_TAR_FILE_DEB) *.deb && \ + tar -czvf ../$(INSTALL_TAR_FILE_RPM) *.rpm + sha256sum $(INSTALL_TAR_FILE_DEB) > $(CHECKSUM_FILE_DEB) + sha256sum $(INSTALL_TAR_FILE_RPM) > $(CHECKSUM_FILE_RPM) + @printf "Production - Install package created ok: $(INSTALL_TAR_FILE_DEB) and $(INSTALL_TAR_FILE_RPM)\n" clean: rm -rf ${BIN_DIR} @@ -109,4 +113,7 @@ clean: rm -rf packages packages: -packages: deb-build rpm-build tar-package clean \ No newline at end of file +packages: deb-build rpm-build tar-package clean + +cos-csi-mounter-1.0.1.deb +cos-csi-mounter-1.0.1.rpm \ No newline at end of file From feece45eba0dbed40f4159c4287e304630f34ec7 Mon Sep 17 00:00:00 2001 From: Ashima-Ashima1 Date: Wed, 2 Jul 2025 15:54:20 +0530 Subject: [PATCH 3/4] publish test version Signed-off-by: Ashima-Ashima1 --- cos-csi-mounter/Makefile | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/cos-csi-mounter/Makefile b/cos-csi-mounter/Makefile index ff0b2ea2..52d17326 100644 --- a/cos-csi-mounter/Makefile +++ b/cos-csi-mounter/Makefile @@ -113,7 +113,4 @@ clean: rm -rf packages packages: -packages: deb-build rpm-build tar-package clean - -cos-csi-mounter-1.0.1.deb -cos-csi-mounter-1.0.1.rpm \ No newline at end of file +packages: deb-build rpm-build tar-package clean \ No newline at end of file From 8b14fd9e4b96ef39b9f00ab660990f56c686427c Mon Sep 17 00:00:00 2001 From: Mayank Sachan <34068620+mssachan@users.noreply.github.com> Date: Thu, 17 Jul 2025 18:45:41 +0530 Subject: [PATCH 4/4] Remove mount.share dependency to fix rpm package creation issue (#232) * Remove dependency from rpm package Signed-off-by: Mayank Sachan * Update package version Signed-off-by: Mayank Sachan * publish v0.6.1 Signed-off-by: Mayank Sachan * publish v0.6.1 Signed-off-by: Mayank Sachan * publish v0.6.2 Signed-off-by: Mayank Sachan * publish v0.6.2 and print files of rpm packages Signed-off-by: Mayank Sachan * publish v0.6.2 and print files of rpm packages Signed-off-by: Mayank Sachan * publish v0.6.3 and dsiable uild-id symlinks Signed-off-by: Mayank Sachan * revert package version Signed-off-by: Mayank Sachan --------- Signed-off-by: Mayank Sachan --- .github/workflows/release.yml | 10 +++++----- cos-csi-mounter/Makefile | 11 ++++++----- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 44819f87..c330b1b1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,7 +3,7 @@ name: Release on: push: branches: - - rpm-pkg + - main jobs: release: @@ -16,7 +16,7 @@ jobs: - cos-csi-mounter env: - IS_LATEST_RELEASE: 'true' + IS_LATEST_RELEASE: 'false' APP_VERSION: 1.0.1 steps: @@ -34,7 +34,7 @@ jobs: - name: Run Unit Tests for cos csi mounter run: sudo make ut-coverage -C ${{ matrix.package_dir }} - - name: Build Debian and RPM Packagesfor cos csi mounter container + - name: Build Debian and RPM packages for cos-csi-mounter systemd service run: | cd ${{ matrix.package_dir }} make packages @@ -63,8 +63,8 @@ jobs: /home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.deb.tar.gz.sha256 /home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.rpm.tar.gz /home/runner/work/ibm-object-csi-driver/ibm-object-csi-driver/cos-csi-mounter/cos-csi-mounter-${{ env.APP_VERSION }}.rpm.tar.gz.sha256 - tag_name: v0.5.4 - name: v0.5.4 + tag_name: v1.0.1 + name: v1.0.1 body: Generate debian and rpm packages prerelease: ${{ env.IS_LATEST_RELEASE != 'true' }} diff --git a/cos-csi-mounter/Makefile b/cos-csi-mounter/Makefile index 52d17326..ccfa779f 100644 --- a/cos-csi-mounter/Makefile +++ b/cos-csi-mounter/Makefile @@ -62,10 +62,10 @@ rpm-build: build-linux echo "Name: $(NAME)" > $(REDHAT_SPEC) echo "Version: $(APP_VERSION)" >> $(REDHAT_SPEC) echo "Release: $(RPM_RELEASE_NUM)" >> $(REDHAT_SPEC) - echo "Summary: $(DESCRIPTION)" >> $(REDHAT_SPEC) - echo "License: $(LICENSE)" >> $(REDHAT_SPEC) + echo 'Summary: $(DESCRIPTION)' >> $(REDHAT_SPEC) + echo 'License: $(LICENSE)' >> $(REDHAT_SPEC) echo "BuildArch: $(RPM_ARCH)" >> $(REDHAT_SPEC) - echo "Requires: mount.ibmshare = 0.1.1" >> $(REDHAT_SPEC) + echo "%global _build_id_links none" >> $(REDHAT_SPEC) echo "%define _rpmfilename $(NAME)-$(APP_VERSION).rpm" >> $(REDHAT_SPEC) echo "%build" >> $(REDHAT_SPEC) @@ -77,7 +77,7 @@ rpm-build: build-linux echo "cp -r %{_sourcedir}/* %{buildroot}/" >> $(REDHAT_SPEC) echo "%description" >> $(REDHAT_SPEC) - echo "This package provides the IBM Mount Share helper container service." + echo "This package provides the COS CSI Mounter service." >> $(REDHAT_SPEC) echo "%files" >> $(REDHAT_SPEC) echo "/etc/systemd/system/cos-csi-mounter.service" >> $(REDHAT_SPEC) @@ -106,6 +106,7 @@ tar-package: sha256sum $(INSTALL_TAR_FILE_DEB) > $(CHECKSUM_FILE_DEB) sha256sum $(INSTALL_TAR_FILE_RPM) > $(CHECKSUM_FILE_RPM) @printf "Production - Install package created ok: $(INSTALL_TAR_FILE_DEB) and $(INSTALL_TAR_FILE_RPM)\n" + rpm -qlp cos-csi-mounter-$(APP_VERSION).rpm clean: rm -rf ${BIN_DIR} @@ -113,4 +114,4 @@ clean: rm -rf packages packages: -packages: deb-build rpm-build tar-package clean \ No newline at end of file +packages: deb-build rpm-build tar-package clean