Skip to content

Conversation

@ash-thakur-rh
Copy link
Contributor

@ash-thakur-rh ash-thakur-rh commented Nov 26, 2025

Description

Fixes #3732

Adds AWS SDK v2 support for ECR authentication while maintaining backward compatibility with AWS SDK v1.

Changes

1. AWS SDK v2 Support

New Architecture:

  • Created AbstractAwsSdkHelper - Abstract base class with common AWS credential handling logic
  • Created AwsSdkHelperV1 - AWS SDK v1 implementation
  • Created AwsSdkHelperV2 - AWS SDK v2 implementation
  • Created AwsSdkAuthHelper interface - Contract for SDK version abstraction

Key Features:

  • Automatic SDK Detection: Dynamically detects which AWS SDK version is available on the classpath
  • Backward Compatible: Existing code using SDK v1 continues to work without changes
  • Credential Provider Support: Supports all standard AWS credential providers:
    • Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN)
    • Container credentials (AWS_CONTAINER_CREDENTIALS_RELATIVE_URI)
    • Default credential provider chain

2. LocalStack Support & Error Handling

LocalStack Registry Support for development and testing:

  • Added pattern recognition for LocalStack ECR registries: *.dkr.ecr.*.localhost.localstack.cloud:PORT
  • Added AWS_ENDPOINT_URL environment variable support for custom ECR endpoints. If set, uses custom ECR instead of real ECR for signing requests
  • Proper region and account ID extraction from LocalStack registry patterns

Enhanced Error Messages:

  • Previously: Generic "AWS authentication failure" message
  • Now: Detailed error with status code and full response body
    AWS authentication failure. Status: 400, Response: {"__type": "AccessDeniedException", "message": "User: arn:aws:iam::000000000000:user/ash is not authorized to perform: ecr:GetAuthorizationToken..."}

Fully backward compatible

  • Existing SDK v1 users: No changes required
  • Existing SDK v2 users: Automatically detected and used
  • Non-LocalStack users: No changes required
  • Configuration: No breaking changes

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • Feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change
  • Chore (non-breaking change which doesn't affect codebase;
    test, version modification, documentation, etc.)

Checklist

  • I have read the contributing guidelines
  • I signed-off my commit with a user that has signed the Eclipse Contributor Agreement
  • My code follows the style guidelines of this project
  • I Keep It Small and Simple: The smaller the PR is, the easier it is to review and have it merged
  • I use conventional commits in my commit messages
  • I have performed a self-review of my code
  • I Added CHANGELOG entry
  • No new bugs, code smells, etc. in SonarCloud report
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I tested my code in Kubernetes
  • I tested my code in OpenShift

@manusa
Copy link
Member

manusa commented Nov 26, 2025

Eclipse JKube CI Report

Started new GH workflow run for #3806 (2025-12-05T15:19:13Z)

⚙️ JKube E2E Tests (19933929469)

Test results

✔️ Test reports (Minikube v1.28.1-dockerfile)
[✓] DockerFileITCase - k8sBuild - k8s:build, should create image inferring contextDir from provided dockerFile configuration
[✓] ContextDirAndCustomAssemblyITCase - k8sBuild - k8s:build, should create image with docker file and files read from provided contextDir configuration (within Dockerfile, files are read from configured Assembly properties)
[✓] ContextDirAndDockerFileITCase - k8sBuild - k8s:build, should create image for configured special dockerFile with files added from provided contextDir
[✓] ContextDirITCase - k8sBuild - k8s:build, should create image with docker file and files read from provided contextDir configuration
[✓] SimpleK8sITCase - k8sBuild - k8s:build, should create image
[✓] SimpleK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] SimpleK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] SimpleK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] All tests (1) passed successfully!!!

✔️ Test reports (Minikube v1.25.13-dockerfile)
[✓] DockerFileITCase - k8sBuild - k8s:build, should create image inferring contextDir from provided dockerFile configuration
[✓] ContextDirITCase - k8sBuild - k8s:build, should create image with docker file and files read from provided contextDir configuration
[✓] ContextDirAndDockerFileITCase - k8sBuild - k8s:build, should create image for configured special dockerFile with files added from provided contextDir
[✓] ContextDirAndCustomAssemblyITCase - k8sBuild - k8s:build, should create image with docker file and files read from provided contextDir configuration (within Dockerfile, files are read from configured Assembly properties)
[✓] SimpleK8sITCase - k8sBuild - k8s:build, should create image
[✓] SimpleK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] SimpleK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] SimpleK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] All tests (1) passed successfully!!!

✔️ Test reports (Minikube v1.25.13-quarkus)
[✓] QuarkusK8sITCase - k8sBuild - k8s:build, should create image
[✓] QuarkusK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] QuarkusK8sITCase - k8sHelm - k8s:helm, should create Helm charts
[✓] QuarkusK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] QuarkusK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] All tests (5) passed successfully!!!

✔️ Test reports (Minikube v1.28.1-quarkus)
[✓] QuarkusK8sITCase - k8sBuild - k8s:build, should create image
[✓] QuarkusK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] QuarkusK8sITCase - k8sHelm - k8s:helm, should create Helm charts
[✓] QuarkusK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] QuarkusK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] All tests (5) passed successfully!!!

✔️ Test reports (Minikube v1.25.13-quarkus-native)
[✓] QuarkusNativeK8sITCase - k8sBuild - k8s:build, should create image
[✓] QuarkusNativeK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] QuarkusNativeK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] QuarkusNativeK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] All tests (4) passed successfully!!!

✔️ Test reports (Minikube v1.28.1-quarkus-native)
[✓] QuarkusNativeK8sITCase - k8sBuild - k8s:build, should create image
[✓] QuarkusNativeK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] QuarkusNativeK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] QuarkusNativeK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] All tests (4) passed successfully!!!

✔️ Test reports (Windows)
[✓] WindowsITCase - k8sBuild - k8s:build, should create image
[✓] WindowsITCase - k8sPush - k8s:push, should push image to remote registry
[✓] WindowsITCase - k8sResource - k8s:resource, should create manifests
[✓] WindowsITCase - ocResource - oc:resource, should create manifests
[✓] WindowsITCase - k8sHelm - k8s:helm, should create Helm charts
[✓] WindowsITCase - ocHelm - oc:helm, should create Helm charts
[✓] All tests (6) passed successfully!!!

✔️ Test reports (Minikube v1.25.13-springboot)
[✓] HelmConfigK8sITCase - k8sResource - k8s:resource, no specified profile, should create default resource manifests
[✓] CompleteDockerITCase - k8sBuild - k8s:build, should create image and assembly files
[✓] ZeroConfigFatJarK8sITCase - k8sBuild - k8s:build, should create fat jar image
[✓] CompleteK8sJibITCase - k8sBuild - k8s:build, should create JIB image
[✓] ZeroConfigK8sITCase - k8sBuild - k8s:build, should create layered jar image
[✓] CustomResourceK8sITCase - k8sBuild - k8s:build, should create image
[✓] CompleteK8sITCase - k8sBuild - k8s:build, should create image
[✓] HelmConfigK8sITCase - k8sHelm - k8s:helm, should create Helm charts
[✓] CompleteDockerITCase - k8sResource - k8s:resource, should create manifests in specific directory
[✓] ZeroConfigFatJarK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] HelmConfigK8sITCase - k8sHelmPush - k8s:helm-push, should push the charts
[✓] CompleteK8sJibITCase - k8sResource - k8s:resource, should create manifests
[✓] ZeroConfigK8sITCase - k8sPush - k8s:push, should push image to remote registry
[✓] CustomResourceK8sITCase - k8sPush - k8s:push, should push image to remote registry
[✓] CompleteDockerITCase - k8sApply - k8s:apply, should deploy pod and service form manifests in specific directory
[✓] HelmConfigK8sITCase - k8sHelmInstall - k8s:helm-install, should install the charts
[✓] CompleteK8sJibITCase - k8sPush - k8s:push, should push image to remote registry
[✓] CompleteK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] ZeroConfigK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] CompleteDockerITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] HelmConfigK8sITCase - k8sHelmUninstall - k8s:helm-uninstall, should uninstall the charts
[✓] CustomResourceK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] ZeroConfigFatJarK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] ZeroConfigK8sITCase - k8sHelm - k8s:helm, should create Helm charts
[✓] HelmConfigK8sITCase - k8sHelmUninstall_whenNoReleasePresent_thenErrorMessageDisplayed - k8s:helm-uninstall, no release present, display error message
[✓] ZeroConfigFatJarK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] CompleteK8sJibITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] ZeroConfigFatJarK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] ZeroConfigK8sGradleITCase - k8sBuild - k8sBuild, should create image
[✓] CompleteK8sJibITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] ZeroConfigK8sGradleITCase - k8sResource - k8sResource, should create manifests
[✓] ZeroConfigK8sGradleITCase - k8sHelm - k8sHelm, should create Helm charts
[✓] CompleteK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] CompleteK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] CustomResourceK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] ZeroConfigK8sGradleITCase - k8sPush - k8sPush, should push image to remote registry
[✓] CustomResourceK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] ZeroConfigK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] CustomResourceK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] ZeroConfigK8sGradleITCase - k8sApply - k8sApply, should deploy pod and service
[✓] ZeroConfigK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] ZeroConfigK8sGradleITCase - k8sLog - k8sLog, should retrieve log
[✓] ZeroConfigK8sGradleITCase - k8sUndeploy - k8sUndeploy, should delete all applied resources
[✓] ZeroConfigK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] All tests (6) passed successfully!!!

✔️ Test reports (Minikube v1.25.13-webapp)
[✓] ZeroConfigK8sITCase - k8sBuild - k8s:build, should create image
[✓] TomcatJavaeeK8sITCase - k8sBuild - k8s:build should display the Tomcat webapps dir hint by default
[✓] TomcatJakartaeeWithWebappsDirK8sITCase - k8sBuild - k8s:build, with jkube.generator.webapp.env should not display the Tomcat webapps dir hint
[✓] TomcatJavaeeWithWebappsDirK8sITCase - k8sBuild - k8s:build, with jkube.generator.webapp.env should not display the Tomcat webapps dir hint
[✓] TomcatJakartaeeK8sITCase - k8sBuild - k8s:build should display the Tomcat webapps dir hint by default
[✓] JettyK8sITCase - k8sBuild - k8s:build, should create image
[✓] WildFlyK8sITCase - k8sBuild - k8s:build, should create image
[✓] ZeroConfigK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] TomcatJakartaeeWithWebappsDirK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] TomcatJavaeeK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] TomcatJakartaeeK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] TomcatJavaeeWithWebappsDirK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] JettyK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] WildFlyK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] JettyK8sWatchCopyITCase - k8sWatchCopy - k8s:watch, with mode=copy, SHOULD hot deploy the application
[✓] JettyK8sWatchNoneITCase - k8sWatchNone - k8s:watch, with mode=none, SHOULD NOT hot deploy the application
[✓] JettyK8sWatchBothITCase - k8sWatchBuildAndRun - k8s:watch, with mode=both, SHOULD hot deploy the application
[✓] ZeroConfigK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] ZeroConfigK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] TomcatJakartaeeWithWebappsDirK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] ZeroConfigK8sITCase - testNodePortResponse - Service as NodePort response should return String
[✓] TomcatJavaeeK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] ZeroConfigK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] TomcatJakartaeeK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] TomcatJakartaeeK8sITCase - k8sLog - k8s:log, should retrieve log with migration notice
[✓] TomcatJakartaeeK8sITCase - testJakartaeeNodePortResponse - The JakartaEE servlet, exposed as a NodePort Service, should return a string and contain `Hello World`
[✓] TomcatJakartaeeK8sITCase - k8sUndeployJakartaEE - k8s:undeploy, should delete all applied resources
[✓] TomcatJavaeeWithWebappsDirK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] TomcatJavaeeWithWebappsDirK8sITCase - k8sLogWithoutJavaeeMigrationNotice - k8s:log, should retrieve log without JavaEE migration notice
[✓] TomcatJavaeeWithWebappsDirK8sITCase - testJavaEENodePortResponseError - JavaEE Service as NodePort response should return 500 and java.lang.NoClassDefFoundError message
[✓] TomcatJavaeeWithWebappsDirK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] JettyK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] JettyK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] JettyK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] WildFlyK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] TomcatJakartaeeWithWebappsDirK8sITCase - testJakartaEENodePortResponse - JakartaEE Service as NodePort response should return String
[✓] WildFlyK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] TomcatJavaeeK8sITCase - k8sLog - k8s:log, should retrieve log with migration notice
[✓] TomcatJavaeeK8sITCase - testJavaeeNodePortResponse - The JavaEE servlet, exposed as a NodePort Service, should return a string and contain `Hello World`
[✓] WildFlyK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] TomcatJakartaeeWithWebappsDirK8sITCase - k8sLogWithoutJavaeeMigrationNotice - k8s:log, should retrieve log without JavaEE migration notice
[✓] TomcatJavaeeK8sITCase - k8sUndeployJavaEE - k8s:undeploy, should delete all applied resources
[✓] TomcatJakartaeeWithWebappsDirK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] All tests (5) passed successfully!!!

✔️ Test reports (Minikube v1.28.1-other)
[✓] VertxK8sITCase - k8sBuild - k8s:build, should create image
[✓] OpenLibertyK8sITCase - k8sBuild - k8s:build, should create image
[✓] WildflyJarK8sITCase - k8sBuild - k8s:build, should create image
[✓] KarafK8sITCase - k8sBuild - k8s:build, should create image
[✓] VertxK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] WildflyJarK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] OpenLibertyK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] KarafK8sITCase - k8sResource - k8s:resource, should create manifest for Kubernetes
[✓] BuildPacksBuildStrategyK8sITCase - k8sBuild - k8s:build, should create container image using buildpacks
[✓] VertxK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] VertxK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] BuildPacksBuildStrategyK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] DslK8sGradleITCase - k8sBuild - k8sBuild, should create image
[✓] VertxK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] DslK8sGradleITCase - k8sResource - k8sResource, should create manifests
[✓] DslK8sGradleITCase - k8sHelm - k8sHelm, should create Helm charts
[✓] WildflyJarK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] WildflyJarK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] OpenLibertyK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] OpenLibertyK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] OpenLibertyK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] KarafK8sITCase - K8sApply - k8s:apply, should apply manifests on k8s cluster
[✓] KarafK8sITCase - k8sLog - k8s:log
[✓] BuildPacksBuildStrategyK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] DslK8sGradleITCase - k8sApply - k8sApply, should deploy pod and service
[✓] DslK8sGradleITCase - k8sLog - k8sLog, should retrieve log
[✓] KarafK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] DslK8sGradleITCase - k8sUndeploy - k8sUndeploy, should delete all applied resources
[✓] BuildPacksBuildStrategyK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] All tests (4) passed successfully!!!

✔️ Test reports (Minikube v1.28.1-springboot)
[✓] HelmConfigK8sITCase - k8sResource - k8s:resource, no specified profile, should create default resource manifests
[✓] CompleteDockerITCase - k8sBuild - k8s:build, should create image and assembly files
[✓] ZeroConfigFatJarK8sITCase - k8sBuild - k8s:build, should create fat jar image
[✓] ZeroConfigK8sITCase - k8sBuild - k8s:build, should create layered jar image
[✓] CustomResourceK8sITCase - k8sBuild - k8s:build, should create image
[✓] CompleteK8sITCase - k8sBuild - k8s:build, should create image
[✓] CompleteK8sJibITCase - k8sBuild - k8s:build, should create JIB image
[✓] HelmConfigK8sITCase - k8sHelm - k8s:helm, should create Helm charts
[✓] CompleteDockerITCase - k8sResource - k8s:resource, should create manifests in specific directory
[✓] ZeroConfigFatJarK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] HelmConfigK8sITCase - k8sHelmPush - k8s:helm-push, should push the charts
[✓] CompleteK8sJibITCase - k8sResource - k8s:resource, should create manifests
[✓] ZeroConfigK8sITCase - k8sPush - k8s:push, should push image to remote registry
[✓] CustomResourceK8sITCase - k8sPush - k8s:push, should push image to remote registry
[✓] CompleteDockerITCase - k8sApply - k8s:apply, should deploy pod and service form manifests in specific directory
[✓] HelmConfigK8sITCase - k8sHelmInstall - k8s:helm-install, should install the charts
[✓] CompleteK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] CompleteK8sJibITCase - k8sPush - k8s:push, should push image to remote registry
[✓] ZeroConfigK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] CompleteDockerITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] HelmConfigK8sITCase - k8sHelmUninstall - k8s:helm-uninstall, should uninstall the charts
[✓] CustomResourceK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] ZeroConfigK8sITCase - k8sHelm - k8s:helm, should create Helm charts
[✓] ZeroConfigFatJarK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] HelmConfigK8sITCase - k8sHelmUninstall_whenNoReleasePresent_thenErrorMessageDisplayed - k8s:helm-uninstall, no release present, display error message
[✓] ZeroConfigFatJarK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] CompleteK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] ZeroConfigFatJarK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] ZeroConfigK8sGradleITCase - k8sBuild - k8sBuild, should create image
[✓] CompleteK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] ZeroConfigK8sGradleITCase - k8sResource - k8sResource, should create manifests
[✓] ZeroConfigK8sGradleITCase - k8sHelm - k8sHelm, should create Helm charts
[✓] CompleteK8sJibITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] CompleteK8sJibITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] CustomResourceK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] ZeroConfigK8sGradleITCase - k8sPush - k8sPush, should push image to remote registry
[✓] CustomResourceK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] ZeroConfigK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] CustomResourceK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] ZeroConfigK8sGradleITCase - k8sApply - k8sApply, should deploy pod and service
[✓] ZeroConfigK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] ZeroConfigK8sGradleITCase - k8sLog - k8sLog, should retrieve log
[✓] ZeroConfigK8sGradleITCase - k8sUndeploy - k8sUndeploy, should delete all applied resources
[✓] ZeroConfigK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] All tests (6) passed successfully!!!

✔️ Test reports (Minikube v1.28.1-webapp)
[✓] JettyK8sITCase - k8sBuild - k8s:build, should create image
[✓] ZeroConfigK8sITCase - k8sBuild - k8s:build, should create image
[✓] TomcatJavaeeWithWebappsDirK8sITCase - k8sBuild - k8s:build, with jkube.generator.webapp.env should not display the Tomcat webapps dir hint
[✓] TomcatJakartaeeWithWebappsDirK8sITCase - k8sBuild - k8s:build, with jkube.generator.webapp.env should not display the Tomcat webapps dir hint
[✓] TomcatJavaeeK8sITCase - k8sBuild - k8s:build should display the Tomcat webapps dir hint by default
[✓] TomcatJakartaeeK8sITCase - k8sBuild - k8s:build should display the Tomcat webapps dir hint by default
[✓] WildFlyK8sITCase - k8sBuild - k8s:build, should create image
[✓] JettyK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] TomcatJavaeeK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] ZeroConfigK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] TomcatJavaeeWithWebappsDirK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] TomcatJakartaeeWithWebappsDirK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] TomcatJakartaeeK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] WildFlyK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] JettyK8sWatchBothITCase - k8sWatchBuildAndRun - k8s:watch, with mode=both, SHOULD hot deploy the application
[✓] JettyK8sWatchCopyITCase - k8sWatchCopy - k8s:watch, with mode=copy, SHOULD hot deploy the application
[✓] JettyK8sWatchNoneITCase - k8sWatchNone - k8s:watch, with mode=none, SHOULD NOT hot deploy the application
[✓] JettyK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] JettyK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] TomcatJavaeeK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] JettyK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] TomcatJavaeeK8sITCase - k8sLog - k8s:log, should retrieve log with migration notice
[✓] TomcatJavaeeK8sITCase - testJavaeeNodePortResponse - The JavaEE servlet, exposed as a NodePort Service, should return a string and contain `Hello World`
[✓] TomcatJavaeeK8sITCase - k8sUndeployJavaEE - k8s:undeploy, should delete all applied resources
[✓] ZeroConfigK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] ZeroConfigK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] ZeroConfigK8sITCase - testNodePortResponse - Service as NodePort response should return String
[✓] TomcatJavaeeWithWebappsDirK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] ZeroConfigK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] TomcatJavaeeWithWebappsDirK8sITCase - k8sLogWithoutJavaeeMigrationNotice - k8s:log, should retrieve log without JavaEE migration notice
[✓] TomcatJavaeeWithWebappsDirK8sITCase - testJavaEENodePortResponseError - JavaEE Service as NodePort response should return 500 and java.lang.NoClassDefFoundError message
[✓] TomcatJavaeeWithWebappsDirK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] TomcatJakartaeeWithWebappsDirK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] TomcatJakartaeeWithWebappsDirK8sITCase - testJakartaEENodePortResponse - JakartaEE Service as NodePort response should return String
[✓] TomcatJakartaeeK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] TomcatJakartaeeK8sITCase - k8sLog - k8s:log, should retrieve log with migration notice
[✓] TomcatJakartaeeK8sITCase - testJakartaeeNodePortResponse - The JakartaEE servlet, exposed as a NodePort Service, should return a string and contain `Hello World`
[✓] TomcatJakartaeeK8sITCase - k8sUndeployJakartaEE - k8s:undeploy, should delete all applied resources
[✓] WildFlyK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] WildFlyK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] TomcatJakartaeeWithWebappsDirK8sITCase - k8sLogWithoutJavaeeMigrationNotice - k8s:log, should retrieve log without JavaEE migration notice
[✓] WildFlyK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] TomcatJakartaeeWithWebappsDirK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] All tests (5) passed successfully!!!

✔️ Test reports (Minikube v1.25.13-other)
[✓] VertxK8sITCase - k8sBuild - k8s:build, should create image
[✓] OpenLibertyK8sITCase - k8sBuild - k8s:build, should create image
[✓] WildflyJarK8sITCase - k8sBuild - k8s:build, should create image
[✓] KarafK8sITCase - k8sBuild - k8s:build, should create image
[✓] VertxK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] OpenLibertyK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] WildflyJarK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] BuildPacksBuildStrategyK8sITCase - k8sBuild - k8s:build, should create container image using buildpacks
[✓] KarafK8sITCase - k8sResource - k8s:resource, should create manifest for Kubernetes
[✓] VertxK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] BuildPacksBuildStrategyK8sITCase - k8sResource - k8s:resource, should create manifests
[✓] VertxK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] OpenLibertyK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] DslK8sGradleITCase - k8sBuild - k8sBuild, should create image
[✓] VertxK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] DslK8sGradleITCase - k8sResource - k8sResource, should create manifests
[✓] DslK8sGradleITCase - k8sHelm - k8sHelm, should create Helm charts
[✓] OpenLibertyK8sITCase - k8sLog - k8s:log, should retrieve log
[✓] WildflyJarK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] OpenLibertyK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] WildflyJarK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] KarafK8sITCase - K8sApply - k8s:apply, should apply manifests on k8s cluster
[✓] KarafK8sITCase - k8sLog - k8s:log
[✓] BuildPacksBuildStrategyK8sITCase - k8sApply - k8s:apply, should deploy pod and service
[✓] DslK8sGradleITCase - k8sApply - k8sApply, should deploy pod and service
[✓] DslK8sGradleITCase - k8sLog - k8sLog, should retrieve log
[✓] KarafK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] DslK8sGradleITCase - k8sUndeploy - k8sUndeploy, should delete all applied resources
[✓] BuildPacksBuildStrategyK8sITCase - k8sUndeploy - k8s:undeploy, should delete all applied resources
[✓] All tests (4) passed successfully!!!

@codecov-commenter
Copy link

codecov-commenter commented Nov 26, 2025

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 73.64865% with 39 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.13%. Comparing base (1ac4f7c) to head (a3ebde7).
⚠️ Report is 874 commits behind head on master.

Files with missing lines Patch % Lines
.../build/service/docker/auth/ecr/AwsSdkHelperV1.java 55.55% 12 Missing ⚠️
.../build/service/docker/auth/ecr/AwsSdkHelperV2.java 63.63% 12 Missing ⚠️
...it/build/service/docker/auth/ecr/AwsSdkHelper.java 80.00% 4 Missing and 1 partial ⚠️
...build/service/docker/auth/ecr/EcrExtendedAuth.java 85.29% 4 Missing and 1 partial ⚠️
...rvice/docker/auth/ecr/AwsSdkAuthConfigFactory.java 82.60% 2 Missing and 2 partials ⚠️
.../service/docker/auth/ecr/AbstractAwsSdkHelper.java 83.33% 1 Missing ⚠️
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@              Coverage Diff              @@
##             master    #3806       +/-   ##
=============================================
+ Coverage     59.36%   72.13%   +12.77%     
- Complexity     4586     4845      +259     
=============================================
  Files           500      492        -8     
  Lines         21211    19259     -1952     
  Branches       2830     2569      -261     
=============================================
+ Hits          12591    13892     +1301     
+ Misses         7370     4160     -3210     
+ Partials       1250     1207       -43     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@manusa
Copy link
Member

manusa commented Dec 2, 2025

Since we don't have access to a real AWS instance, we might be able to leverage https://github.com/localstack/localstack to ensure the changes are working

@ash-thakur-rh
Copy link
Contributor Author

Tested the AWS SDK v2 with localstack, works fines. Attaching screenshots:
image

image

@ash-thakur-rh ash-thakur-rh marked this pull request as ready for review December 4, 2025 15:16
@sonarqubecloud
Copy link

sonarqubecloud bot commented Dec 4, 2025

Quality Gate Failed Quality Gate failed

Failed conditions
75.3% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade to AWS SDK for java v2

3 participants