I've been using jKube for a while now to deploy Spring Boot (3.1.6 on Java 17.0.9) applications to Openshift. For this purpose we use Azure Devops and its Maven command task to execute the jKube commands like oc:build, oc:resource & oc:apply. I have been 'stuck' on version 1.4.0 because higher versions failed for me. Since 1.4.0 is quite old I decided to upgrade and try a newer version (1.16.0 is currently the latest). When I run my project with the latest version the build fails with the following:
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.eclipse.jkube:openshift-maven-plugin:1.16.0:build (default-cli) on project my-component: Failed to execute the build
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.eclipse.jkube:openshift-maven-plugin:1.16.0:build (default-cli) on project signaleringen-api: Failed to execute the build
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)
...
Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to execute the build
at org.eclipse.jkube.maven.plugin.mojo.build.AbstractDockerMojo.buildAndTag (AbstractDockerMojo.java:541)
...
Caused by: org.eclipse.jkube.kit.config.service.JKubeServiceException: Unable to create the build archive
at org.eclipse.jkube.kit.config.service.openshift.OpenShiftBuildServiceUtils.createBuildArchive (OpenShiftBuildServiceUtils.java:67)
...
Caused by: java.nio.file.FileSystemException: /azp/agent/2/s/my-component-namespace/target/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78/build/deployments/classes/com/example/integration/camel/aggregator/MyComponentAggregationStrategy.class: File name too long
at sun.nio.fs.UnixException.translateToIOException (UnixException.java:100)
As you can see it seems to produces excessively long file paths for the target classes, too long to be able to be processed. It looks to be repeating a certain part of the path (/build/deployments/docker/my-component/4.0.0.7f9e0aca5b38efa9503e7cafd6b2bc426ff8cf78) over 40 times. I've tried simpler versions and shorter file names, all to no avail.
This only seems to happen in jKube 1.14 and higher. jKube 1.13 is fine. Any ideas on how to fix this?