diff --git a/pkg/builder/quarkus.go b/pkg/builder/quarkus.go
index 7fdbc782f6..0eebdce6cf 100644
--- a/pkg/builder/quarkus.go
+++ b/pkg/builder/quarkus.go
@@ -26,6 +26,7 @@ import (
"time"
"github.com/apache/camel-k/v2/pkg/util/boolean"
+ "github.com/apache/camel-k/v2/pkg/util/jib"
"github.com/apache/camel-k/v2/pkg/util/io"
@@ -204,6 +205,9 @@ func generateQuarkusProjectCommon(runtimeProvider v1.RuntimeProvider, runtimeVer
},
)
+ // Jib publish profile
+ p.AddProfiles(jib.XMLJibProfile)
+
return p
}
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index 5291add368..a8a57587d5 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -32,7 +32,6 @@ import (
v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
traitv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait"
"github.com/apache/camel-k/v2/pkg/builder"
- "github.com/apache/camel-k/v2/pkg/util/jib"
mvn "github.com/apache/camel-k/v2/pkg/util/maven"
"github.com/apache/camel-k/v2/pkg/util/property"
)
@@ -419,17 +418,6 @@ func (t *builderTrait) builderTask(e *Environment, taskConf *v1.BuildConfigurati
}
}
- if e.Platform.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyJib {
- profile, err := jib.JibMavenProfile(e.CamelCatalog.GetJibMavenPluginVersion(), e.CamelCatalog.GetJibLayerFilterExtensionMavenVersion())
- if err != nil {
- return nil, fmt.Errorf("error generating default maven jib profile: %w. ", err)
- }
- if err := jib.CreateProfileConfigmap(e.Ctx, e.Client, e.IntegrationKit, profile); err != nil {
- return nil, fmt.Errorf("could not create default maven jib profile configmap: %w. ", err)
- }
- t.MavenProfiles = append(t.MavenProfiles, "configmap:"+e.IntegrationKit.Name+"-publish-jib-profile/profile.xml")
- }
-
// User provides a maven profile
if t.MavenProfiles != nil {
mavenProfiles := make([]v1.ValueSource, 0)
diff --git a/pkg/trait/builder_test.go b/pkg/trait/builder_test.go
index 6f85f17649..44e6942ac5 100644
--- a/pkg/trait/builder_test.go
+++ b/pkg/trait/builder_test.go
@@ -84,7 +84,7 @@ func TestJibBuilderTrait(t *testing.T) {
conditions, traits, err := NewBuilderTestCatalog().apply(env)
require.NoError(t, err)
- assert.NotEmpty(t, traits)
+ assert.Empty(t, traits)
assert.NotEmpty(t, conditions)
assert.NotEmpty(t, env.ExecutedTraits)
assert.NotNil(t, env.GetTrait("builder"))
@@ -286,24 +286,6 @@ func TestInvalidMavenProfilesBuilderTrait(t *testing.T) {
assert.Contains(t, env.IntegrationKit.Status.Conditions[0].Message, "fakeprofile")
}
-func TestMavenBuilderTraitJib(t *testing.T) {
- env := createBuilderTestEnv(v1.IntegrationPlatformClusterKubernetes, v1.IntegrationPlatformBuildPublishStrategyJib, v1.BuildStrategyRoutine)
- builderTrait := createNominalBuilderTraitTest()
-
- err := builderTrait.Apply(env)
-
- require.NoError(t, err)
-
- assert.Equal(t, v1.ValueSource{
- ConfigMapKeyRef: &corev1.ConfigMapKeySelector{
- LocalObjectReference: corev1.LocalObjectReference{
- Name: "my-kit-publish-jib-profile",
- },
- Key: "profile.xml",
- },
- }, env.Pipeline[0].Builder.Maven.MavenSpec.Profiles[0])
-}
-
func TestBuilderCustomTasks(t *testing.T) {
builderTrait := createNominalBuilderTraitTest()
builderTrait.Tasks = append(builderTrait.Tasks, "test;alpine;ls")
diff --git a/pkg/util/jib/configuration.go b/pkg/util/jib/configuration.go
index 38e42ff93b..0aca856fa4 100644
--- a/pkg/util/jib/configuration.go
+++ b/pkg/util/jib/configuration.go
@@ -18,21 +18,6 @@ limitations under the License.
// Package jib contains utilities for jib strategy builds.
package jib
-import (
- "context"
- "encoding/xml"
- "fmt"
-
- v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
- "github.com/apache/camel-k/v2/pkg/client"
- "github.com/apache/camel-k/v2/pkg/util"
- "github.com/apache/camel-k/v2/pkg/util/maven"
-
- corev1 "k8s.io/api/core/v1"
- k8serrors "k8s.io/apimachinery/pkg/api/errors"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-)
-
const JibMavenGoal = "jib:build"
const JibMavenToImageParam = "-Djib.to.image="
const JibMavenFromImageParam = "-Djib.from.image="
@@ -46,125 +31,67 @@ const JibLayerFilterExtensionMavenVersionDefault = "0.3.0"
// See: https://github.com/GoogleContainerTools/jib/blob/master/jib-maven-plugin/README.md#using-docker-configuration-files
const JibRegistryConfigEnvVar = "DOCKER_CONFIG"
-type JibBuild struct {
- Plugins []maven.Plugin `xml:"plugins>plugin,omitempty"`
-}
-
-type JibProfile struct {
- XMLName xml.Name
- ID string `xml:"id"`
- Build JibBuild `xml:"build,omitempty"`
-}
-
-// Create a Configmap containing the default jib profile.
-func CreateProfileConfigmap(ctx context.Context, c client.Client, kit *v1.IntegrationKit, profile string) error {
- annotations := util.CopyMap(kit.Annotations)
- controller := true
- blockOwnerDeletion := true
- jibProfileConfigMap := &corev1.ConfigMap{
- TypeMeta: metav1.TypeMeta{
- Kind: "ConfigMap",
- APIVersion: "v1",
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: kit.Name + "-publish-jib-profile",
- Namespace: kit.Namespace,
- Annotations: annotations,
- Labels: map[string]string{
- v1.IntegrationKitLabel: kit.Name,
- },
- OwnerReferences: []metav1.OwnerReference{
- {
- APIVersion: kit.APIVersion,
- Kind: kit.Kind,
- Name: kit.Name,
- UID: kit.UID,
- Controller: &controller,
- BlockOwnerDeletion: &blockOwnerDeletion,
- }},
- },
- Data: map[string]string{
- "profile.xml": profile,
- },
- }
-
- err := c.Create(ctx, jibProfileConfigMap)
- if err != nil && !k8serrors.IsAlreadyExists(err) {
- return fmt.Errorf("error creating the configmap containing the default maven jib profile: %s: %w. ", kit.Name+"-publish-jib-profile", err)
- }
- return nil
-}
-
-// JibMavenProfile creates a maven profile defining jib plugin build.
-func JibMavenProfile(jibMavenPluginVersion string, jibLayerFilterExtensionMavenVersion string) (string, error) {
- jibVersion := JibMavenPluginVersionDefault
- if jibMavenPluginVersion != "" {
- jibVersion = jibMavenPluginVersion
- }
- layerVersion := JibLayerFilterExtensionMavenVersionDefault
- if jibLayerFilterExtensionMavenVersion != "" {
- layerVersion = jibLayerFilterExtensionMavenVersion
- }
- jibPlugin := maven.Plugin{
- GroupID: "com.google.cloud.tools",
- ArtifactID: "jib-maven-plugin",
- Version: jibVersion,
- Dependencies: []maven.Dependency{
- {
- GroupID: "com.google.cloud.tools",
- ArtifactID: "jib-layer-filter-extension-maven",
- Version: layerVersion,
- },
- },
- Configuration: v1.PluginConfiguration{
- Container: v1.Container{
- Entrypoint: "INHERIT",
- Args: v1.Args{
- Arg: "jshell",
- },
- },
- AllowInsecureRegistries: "true",
- ExtraDirectories: v1.ExtraDirectories{
- Paths: []v1.Path{
- {
- From: "../context",
- Into: "/deployments",
- },
- },
- Permissions: []v1.Permission{
- {
- File: "/deployments/*",
- Mode: "755",
- },
- },
- },
- PluginExtensions: v1.PluginExtensions{
- PluginExtension: v1.PluginExtension{
- Implementation: "com.google.cloud.tools.jib.maven.extension.layerfilter.JibLayerFilterExtension",
- Configuration: v1.PluginExtensionConfiguration{
- Implementation: "com.google.cloud.tools.jib.maven.extension.layerfilter.Configuration",
- Filters: []v1.Filter{
- {
- Glob: "/app/**",
- },
- },
- },
- },
- },
- },
- }
-
- jibMavenPluginProfile := JibProfile{
- XMLName: xml.Name{Local: "profile"},
- ID: "jib",
- Build: JibBuild{
- Plugins: []maven.Plugin{jibPlugin},
- },
- }
- content, err := util.EncodeXMLWithoutHeader(jibMavenPluginProfile)
- if err != nil {
- return "", err
- }
- return string(content), nil
-
-}
+// The Jib profile configuration.
+const XMLJibProfile = `
+
+ jib
+
+ false
+
+
+
+
+
+
+ com.google.cloud.tools
+ jib-maven-plugin
+ 3.4.1
+
+
+
+ com.google.cloud.tools
+ jib-layer-filter-extension-maven
+ 0.3.0
+
+
+
+
+ INHERIT
+
+ jshell
+
+
+ true
+
+
+
+ ../context
+ /deployments
+
+
+
+
+
+ /deployments/*
+ 755
+
+
+
+
+
+ com.google.cloud.tools.jib.maven.extension.layerfilter.JibLayerFilterExtension
+
+
+
+ /app/**
+
+
+
+
+
+
+
+
+
+
+`
diff --git a/pkg/util/jib/configuration_test.go b/pkg/util/jib/configuration_test.go
deleted file mode 100644
index 77ba3a9c7c..0000000000
--- a/pkg/util/jib/configuration_test.go
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package jib
-
-import (
- "context"
- "strings"
- "testing"
-
- v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
- "github.com/apache/camel-k/v2/pkg/internal"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- corev1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/types"
- ctrl "sigs.k8s.io/controller-runtime/pkg/client"
-)
-
-func TestJibMavenProfile(t *testing.T) {
- profile, err := JibMavenProfile("3.3.0", "0.2.0")
-
- require.NoError(t, err)
- assert.True(t, strings.HasPrefix(profile, ""))
- assert.True(t, strings.HasSuffix(profile, ""))
- assert.True(t, strings.Contains(profile, "3.3.0"))
- assert.True(t, strings.Contains(profile, "0.2.0"))
-
-}
-
-func TestJibMavenProfileDefaultValues(t *testing.T) {
- profile, err := JibMavenProfile("", "")
-
- require.NoError(t, err)
- assert.True(t, strings.HasPrefix(profile, ""))
- assert.True(t, strings.HasSuffix(profile, ""))
- assert.True(t, strings.Contains(profile, ""+JibMavenPluginVersionDefault+""))
- assert.True(t, strings.Contains(profile, ""+JibLayerFilterExtensionMavenVersionDefault+""))
-
-}
-
-func TestJibConfigMap(t *testing.T) {
- ctx := context.TODO()
- c, _ := internal.NewFakeClient()
- kit := &v1.IntegrationKit{
- TypeMeta: metav1.TypeMeta{
- APIVersion: v1.SchemeGroupVersion.String(),
- Kind: v1.IntegrationKitKind,
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: "test",
- Namespace: "ns",
- UID: types.UID("8dc44a2b-063c-490e-ae02-1fab285ac70a"),
- },
- Status: v1.IntegrationKitStatus{
- Phase: v1.IntegrationKitPhaseBuildSubmitted,
- },
- }
-
- err := CreateProfileConfigmap(ctx, c, kit, "awesomeprofile")
- require.NoError(t, err)
-
- key := ctrl.ObjectKey{
- Namespace: "ns",
- Name: "test-publish-jib-profile",
- }
- cm := &corev1.ConfigMap{}
- err = c.Get(ctx, key, cm)
- require.NoError(t, err)
- assert.Equal(t, "test", cm.OwnerReferences[0].Name)
- assert.Equal(t, cm.OwnerReferences[0].UID, types.UID("8dc44a2b-063c-490e-ae02-1fab285ac70a"))
- assert.NotNil(t, cm.Data["profile.xml"])
- assert.True(t, strings.Contains(cm.Data["profile.xml"], "awesome"))
-}