Skip to content
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

Cannot make k8s:helm-lint work with either 1.16.0 or 1.17-SNAPSHOT #2726

Closed
ajeans opened this issue Feb 23, 2024 · 8 comments · Fixed by #2732 or #2735
Closed

Cannot make k8s:helm-lint work with either 1.16.0 or 1.17-SNAPSHOT #2726

ajeans opened this issue Feb 23, 2024 · 8 comments · Fixed by #2732 or #2735
Labels
bug Something isn't working
Milestone

Comments

@ajeans
Copy link

ajeans commented Feb 23, 2024

Describe the bug

Looking at the release notes for 1.16.0 and its support for helm linting #2613 .

My previous build script was:

./mvnw -pl microservice-app k8s:resource k8s:helm
helm lint microservice-app/target/jkube/helm/microservice-app/kubernetes/microservice-app-0.0.1-SNAPSHOT.tar.gz

Which I tried to replace with

./mvnw -pl microservice-app k8s:resource k8s:helm k8s:helm-lint

With zero change to the project (no pom change, nothing).

While the standard call to helm lint works fine, the maven goal fails with the following output:

[INFO] --- k8s:1.16.0:helm-lint (default-cli) @ microservice-app ---
[INFO] k8s: Linting microservice-app 0.0.1-SNAPSHOT
[INFO] k8s: Using packaged file: /Volumes/Workspace/b2c/template-springboot-microservice/microservice-app/target/jkube/helm/microservice-app/kubernetes/microservice-app-0.0.1-SNAPSHOT.tar.gz
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.340 s
[INFO] Finished at: 2024-02-23T14:45:39+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.eclipse.jkube:kubernetes-maven-plugin:1.16.0:helm-lint (default-cli) on project microservice-app: Execution default-cli of goal org.eclipse.jkube:kubernetes-maven-plugin:1.16.0:helm-lint failed: An API incompatibility was encountered while executing org.eclipse.jkube:kubernetes-maven-plugin:1.16.0:helm-lint: java.lang.ExceptionInInitializerError: null
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.eclipse.jkube:kubernetes-maven-plugin:1.16.0
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/Users/arnaud.jeansen/.m2/repository/org/eclipse/jkube/kubernetes-maven-plugin/1.16.0/kubernetes-maven-plugin-1.16.0.jar
[ERROR] urls[1] = file:/Users/arnaud.jeansen/.m2/repository/org/eclipse/jkube/jkube-kit-config-service/1.16.0/jkube-kit-config-service-1.16.0.jar
[ERROR] urls[2] = file:/Users/arnaud.jeansen/.m2/repository/org/eclipse/jkube/jkube-kit-config-resource/1.16.0/jkube-kit-config-resource-1.16.0.jar
[ERROR] urls[3] = file:/Users/arnaud.jeansen/.m2/repository/org/eclipse/jkube/jkube-kit-build-service-docker/1.16.0/jkube-kit-build-service-docker-1.16.0.jar
[ERROR] urls[4] = file:/Users/arnaud.jeansen/.m2/repository/org/eclipse/jkube/jkube-kit-build-api/1.16.0/jkube-kit-build-api-1.16.0.jar
[ERROR] urls[5] = file:/Users/arnaud.jeansen/.m2/repository/org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14.jar
[ERROR] urls[6] = file:/Users/arnaud.jeansen/.m2/repository/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar
[... snip ...]
[ERROR] urls[156] = file:/Users/arnaud.jeansen/.m2/repository/org/eclipse/jkube/jkube-kit-watcher-standard/1.16.0/jkube-kit-watcher-standard-1.16.0.jar
[ERROR] urls[157] = file:/Users/arnaud.jeansen/.m2/repository/org/eclipse/jkube/jkube-kit-remote-dev/1.16.0/jkube-kit-remote-dev-1.16.0.jar
[ERROR] urls[158] = file:/Users/arnaud.jeansen/.m2/repository/org/apache/sshd/sshd-core/2.9.2/sshd-core-2.9.2.jar
[ERROR] urls[159] = file:/Users/arnaud.jeansen/.m2/repository/org/apache/sshd/sshd-common/2.9.2/sshd-common-2.9.2.jar
[ERROR] urls[160] = file:/Users/arnaud.jeansen/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.32/jcl-over-slf4j-1.7.32.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR] 
[ERROR] -----------------------------------------------------
[ERROR] : No NativeLibrary implementation found, please add one of the supported dependencies to your project
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException

Same error with both 1.16.0 and today's snapshot. This is with mvn 3.9.5 (ticket drop-down doesn't contain it).

Do you have an idea where this could come from? Note that I have an ARM Macbook, thought I would mention it when I saw the "NativeLibrary" message.

Thanks!

Eclipse JKube version

SNAPSHOT

Component

Kubernetes Maven Plugin

Apache Maven version

other (please specify in additional context)

Gradle version

None

Steps to reproduce

  1. Run ./mvnw -pl microservice-app k8s:resource k8s:helm k8s:helm-lint

Expected behavior

Helm lint happening

Runtime

other (please specify in additional context)

Kubernetes API Server version

other (please specify in additional context)

Environment

macOS

Eclipse JKube Logs

No response

Sample Reproducer Project

No response

Additional context

No response

@ajeans ajeans added the bug Something isn't working label Feb 23, 2024
@manusa
Copy link
Member

manusa commented Feb 23, 2024

The upstream helm-java library is unable to download the suitable native implementation for your platform:

No NativeLibrary implementation found, please add one of the supported dependencies to your project

Could you please provide the output of both mvn -v and ./mvnw -v (also see if running without the wrapper works).

helm-java does several tricks under the hood to detect your platform and architecture (both macOS arm64 and amd64 should be supported). For some reason this is not working as expected.

@ajeans
Copy link
Author

ajeans commented Feb 23, 2024

Hello @manusa

That makes sense, here it is:

mvn -v
Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
Maven home: /opt/homebrew/Cellar/maven/3.9.4/libexec
Java version: 21.0.1, vendor: Homebrew, runtime: /opt/homebrew/Cellar/openjdk/21.0.1/libexec/openjdk.jdk/Contents/Home
Default locale: en_FR, platform encoding: UTF-8
OS name: "mac os x", version: "13.6.4", arch: "aarch64", family: "mac"
./mvnw -v
Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
Maven home: /Users/arnaud.jeansen/.m2/wrapper/dists/apache-maven-3.9.5-bin/32db9c34/apache-maven-3.9.5
Java version: 21.0.1, vendor: Homebrew, runtime: /opt/homebrew/Cellar/openjdk/21.0.1/libexec/openjdk.jdk/Contents/Home
Default locale: en_FR, platform encoding: UTF-8
OS name: "mac os x", version: "13.6.4", arch: "aarch64", family: "mac"

@manusa
Copy link
Member

manusa commented Feb 23, 2024

OK, aarch64 is not being considered. I'll try to provide a fix early next week, see if it resolves your problem.

@manusa manusa added this to the 1.17.0 milestone Feb 26, 2024
@manusa manusa reopened this Feb 26, 2024
@manusa
Copy link
Member

manusa commented Feb 26, 2024

I just merged #2732 which should fix the issue.
Could you please try with tomorrow's snapshot and see of the new helm-lint goal works as expected.

@manusa manusa added the Waiting on feedback Issues that require feedback from User/Other community members label Feb 26, 2024
@ajeans
Copy link
Author

ajeans commented Feb 26, 2024

Sure @manusa

Will test in the coming days and report back. Thanks for the swift replies and fixes.

@ajeans
Copy link
Author

ajeans commented Feb 27, 2024

Hello @manusa

I can happily report that helm-lintnow works fine on my machine. 👏

[INFO] --- k8s:1.17-SNAPSHOT:helm (default-cli) @ microservice-app ---
[INFO] k8s: Creating Helm Chart "microservice-app" for Kubernetes
[INFO] 
[INFO] --- k8s:1.17-SNAPSHOT:helm-lint (default-cli) @ microservice-app ---
[INFO] k8s: Linting microservice-app 0.0.1-SNAPSHOT
[INFO] k8s: Using packaged file: /Volumes/Workspace/b2c/template-springboot-microservice/microservice-app/target/jkube/helm/microservice-app/kubernetes/microservice-app-0.0.1-SNAPSHOT.tar.gz
[INFO] k8s: Linting successful

Thanks a lot for the very quick fix.

@manusa
Copy link
Member

manusa commented Feb 27, 2024

Awesome, thanks for reporting back.

@manusa manusa added changelog_missing and removed Waiting on feedback Issues that require feedback from User/Other community members labels Feb 27, 2024
manusa added a commit to manusa/jkube that referenced this issue Feb 27, 2024
Signed-off-by: Marc Nuri <marc@marcnuri.com>
@manusa manusa modified the milestones: 1.17.0, 1.16.1 Feb 27, 2024
manusa added a commit that referenced this issue Feb 27, 2024
Signed-off-by: Marc Nuri <marc@marcnuri.com>
@manusa
Copy link
Member

manusa commented Feb 27, 2024

Just FYI we just released v1.16.1 with the fix, you should now be able to use the stable release instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
2 participants