-
Notifications
You must be signed in to change notification settings - Fork 99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(provisioning): extra format options (mkfs
) added
#335
base: develop
Are you sure you want to change the base?
Conversation
e931f2c
to
de805a6
Compare
6a46aef
to
6fc3b35
Compare
2cf836e
to
3c59634
Compare
How is the new formatOptions going to be set by user? via storageclass? There is no mkfsOptions unlike mountOptions as provided by storageclass. |
I think |
Hi
So, It will work if you add it to storageclass |
Also there is no test for the mounter itself |
|
You can run this manually and document here the steps to set formatOptions. |
It's my first time that I'm contributing to this project so I just looked for where mountOptions is handled to handle formatOptions too |
Hello again I'm using NixOS, and I can't run |
I checked out more and I saw that we have to put this on where we are mounting volume for the first time, So there is no need to add this into |
3c59634
to
a699854
Compare
Signed-off-by: Muhammed Hussein Karimi <[email protected]>
…ction I had to upgrade some packages and switched to newer mount utils (currently used lib is depricated) Signed-off-by: Muhammed Hussein Karimi <[email protected]>
Signed-off-by: Muhammed Hussein Karimi <[email protected]>
Signed-off-by: Muhammed Hussein Karimi <[email protected]>
Signed-off-by: Muhammed Hussein Karimi <[email protected]>
a699854
to
72528d1
Compare
go.mod
Outdated
@@ -1,6 +1,8 @@ | |||
module github.com/openebs/lvm-localpv | |||
|
|||
go 1.19 | |||
go 1.22.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is causing github actions to fail. Let's not update this until we uniformly upgrade to golang 1.22 throughout.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will revert that
My go version was the cause of this, That's why I have contributed for Nix Shell :)
@mhkarimi1383 |
golint-ci returns error
I think to update to |
Signed-off-by: Muhammed Hussein Karimi <[email protected]>
Would you like to do that as part of this PR? or instead try using a |
I can do both, whatever is Ok :) |
Thanks, I'd say then try using a compatible |
Ok, I will revert my changes to go.mod, etc. And will change the package again |
Signed-off-by: Muhammed Hussein Karimi <[email protected]>
Signed-off-by: Muhammed Hussein Karimi <[email protected]>
I have fixed package versions and switched to a correct version of mount utils And I was able to build project successfully and tests passed |
Also why in |
Codecov ReportAll modified and coverable lines are covered by tests ✅
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## develop #335 +/- ##
===========================================
- Coverage 98.66% 97.22% -1.44%
===========================================
Files 2 2
Lines 673 902 +229
===========================================
+ Hits 664 877 +213
- Misses 5 18 +13
- Partials 4 7 +3
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Also getting
after building and running built image Both with sudo and without sudo while building... |
I think this is due to some shared libs As I understood that's because of my Operating System (NixOS), since it has different type of packaging/paths |
Perhaps because Podman is pretty new compared to Docker, when this Makefile was written. We may want to change that at some point. |
@mhkarimi1383 Did you see this comment yet? |
Yes, But since I'm a bit new to this project I need to run the project locally on my minikube setup |
It is OK to remove |
Why is static builds required? Isn't having all required inputs in the nix-shell enough? |
Paths are different there and I think because of that /usr/local/bin/lvm-driver: No such file or directory While running the built image I think making builds static will make the binary file work everywhere :) Just guessing :) |
After trying to do static link some libs are missing again, getting
|
I can't test this project when using NixOS, Using docker for build is a good option too |
For me problem solved by these changes If it's OK, I will create a new PR to apply them (I don't know if you are Ok with using musl) diff --git a/Makefile b/Makefile
index dda7432..27501c3 100644
--- a/Makefile
+++ b/Makefile
@@ -222,7 +222,7 @@ lvm-driver-image: lvm-driver
@echo "+ Generating ${CSI_DRIVER} image"
@echo "--------------------------------"
@cp bin/${CSI_DRIVER}/${CSI_DRIVER} buildscripts/${CSI_DRIVER}/
- cd buildscripts/${CSI_DRIVER} && sudo docker build -t ${IMAGE_ORG}/${CSI_DRIVER}:${IMAGE_TAG} ${DBUILD_ARGS} . && sudo docker tag ${IMAGE_ORG}/${CSI_DRIVER}:${IMAGE_TAG} quay.io/${IMAGE_ORG}/${CSI_DRIVER}:${IMAGE_TAG}
+ cd buildscripts/${CSI_DRIVER} && docker build -t ${IMAGE_ORG}/${CSI_DRIVER}:${IMAGE_TAG} ${DBUILD_ARGS} . && docker tag ${IMAGE_ORG}/${CSI_DRIVER}:${IMAGE_TAG} quay.io/${IMAGE_ORG}/${CSI_DRIVER}:${IMAGE_TAG}
@rm buildscripts/${CSI_DRIVER}/${CSI_DRIVER}
.PHONY: ansible-runner-image
@@ -230,7 +230,7 @@ ansible-runner-image:
@echo "------------------"
@echo "--> Build ansible-runner image for lvm-localpv e2e-tests"
@echo "------------------"
- sudo docker build . -f e2e-tests/Dockerfile -t ${IMAGE_ORG}/lvm-localpv-e2e:ci
+ docker build . -f e2e-tests/Dockerfile -t ${IMAGE_ORG}/lvm-localpv-e2e:ci
.PHONY: ci
ci:
diff --git a/buildscripts/build.sh b/buildscripts/build.sh
index a6e7be5..9b3374e 100755
--- a/buildscripts/build.sh
+++ b/buildscripts/build.sh
@@ -100,8 +100,9 @@ env GOOS=$GOOS GOARCH=$GOARCH go build -ldflags \
"-X github.com/openebs/lvm-localpv/pkg/version.GitCommit=${GIT_COMMIT} \
-X main.CtlName='${CTLNAME}' \
-X github.com/openebs/lvm-localpv/pkg/version.Version=${VERSION} \
- -X github.com/openebs/lvm-localpv/pkg/version.VersionMeta=${VERSION_META}"\
- -o $output_name\
+ -X github.com/openebs/lvm-localpv/pkg/version.VersionMeta=${VERSION_META} \
+ -linkmode external -w -extldflags '-static'"\
+ -a -o $output_name\
./cmd
echo ""
diff --git a/shell.nix b/shell.nix
index d070f65..58acd8d 100644
--- a/shell.nix
+++ b/shell.nix
@@ -4,7 +4,9 @@ let
in
pkgs.mkShell {
name = "scripts-shell";
+
buildInputs = with pkgs; [
+ nix-ld # Enable nix-ld linker
chart-testing
ginkgo
git
@@ -16,7 +18,14 @@ pkgs.mkShell {
minikube
semver-tool
yq-go
+ musl # Musl for static linking
+ gcc
+ binutils
+ gdb
+ coreutils
+ stdenv.cc.cc
];
+
shellHook = ''
export HOME=${builtins.getEnv "HOME"}
export GOPATH=$(pwd)/nix/.go |
I would say if above changes to build let you test things locally, you can go ahead and make only functional changes in this PR and let the build remain as is for now. |
Pull Request template
Please, go through these steps before you submit a PR.
Why is this PR required? What issue does it fix?:
adding extra format (
mkfs
) options to newly created Volumesalso switched from deprecated
utils/monut
tomount-utils
to be able to add this feature and moving from an old package to a maintained oneWhat this PR does?:
Refactor to new mount utils package and change format and mount function
Does this PR require any upgrade changes?:
No, But requires document updates for StorageClasses
If the changes in this PR are manually verified, list down the scenarios covered::
Any additional information for your reviewer? :
Mention if this PR is part of any design or a continuation of previous PRs
Checklist:
<type>(<scope>): <subject>