You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pc...@apache.org on 2024/04/24 07:55:51 UTC
(camel-k) 02/04: fix(trait): synthetic Kit
This is an automated email from the ASF dual-hosted git repository.
pcongiusti pushed a commit to branch release-2.3.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit b895cfc9020c28c3cf8f62f1a8ca99fcd4b3cf14
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Mon Apr 22 17:14:25 2024 +0200
fix(trait): synthetic Kit
While working on #5378 I realized the concept of external Kit is used widely also for the concept of what is a Synthetic Kit.
An external Kit is a kit coming from a build from the operator, whilst a synthetic Kit is not coming from an operator.
---
docs/modules/ROOT/partials/apis/camel-k-crds.adoc | 9 +++++++--
docs/modules/traits/pages/container.adoc | 4 ++++
docs/modules/traits/pages/jvm.adoc | 2 --
e2e/advanced/operator_id_filtering_test.go | 2 +-
e2e/install/cli/global_test.go | 2 +-
helm/camel-k/crds/crd-integration-platform.yaml | 8 ++++++++
helm/camel-k/crds/crd-integration-profile.yaml | 8 ++++++++
helm/camel-k/crds/crd-integration.yaml | 4 ++++
helm/camel-k/crds/crd-kamelet-binding.yaml | 4 ++++
helm/camel-k/crds/crd-pipe.yaml | 4 ++++
pkg/apis/camel/v1/integrationkit_types.go | 8 +++++---
pkg/apis/camel/v1/integrationkit_types_support.go | 5 +++++
pkg/apis/camel/v1/trait/container.go | 2 ++
pkg/apis/camel/v1/trait/jvm.go | 2 --
pkg/apis/camel/v1/trait/zz_generated.deepcopy.go | 5 +++++
pkg/cmd/promote.go | 16 ++++------------
pkg/cmd/promote_test.go | 18 ++++++------------
.../integrationkit/integrationkit_controller.go | 2 +-
.../bases/camel.apache.org_integrationplatforms.yaml | 8 ++++++++
.../bases/camel.apache.org_integrationprofiles.yaml | 8 ++++++++
.../crd/bases/camel.apache.org_integrations.yaml | 4 ++++
.../crd/bases/camel.apache.org_kameletbindings.yaml | 4 ++++
.../config/crd/bases/camel.apache.org_pipes.yaml | 4 ++++
pkg/trait/container.go | 5 ++++-
pkg/trait/jvm.go | 8 ++------
pkg/trait/jvm_test.go | 20 +-------------------
pkg/trait/trait_condition_types.go | 4 ----
27 files changed, 104 insertions(+), 66 deletions(-)
diff --git a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
index edb8c1408..f8586842d 100644
--- a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
+++ b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
@@ -6523,6 +6523,13 @@ string
The main container image
+|`imageWasKit` +
+bool
+|
+
+
+A flag to mark the image used is coming from an IntegrationKit created externally.
+
|`imagePullPolicy` +
*https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#pullpolicy-v1-core[Kubernetes core/v1.PullPolicy]*
|
@@ -7195,8 +7202,6 @@ The JVM trait is used to configure the JVM that runs the Integration. This trait
(bound to a container image) built by Camel K operator. If the system detects the usage of a different container image (ie, built externally), then, the
trait is disabled by the platform.
-WARNING: you can still enable the trait explicitly even when it is disabled by the platform but you should be aware that some configurations could fail.
-
[cols="2,2a",options="header"]
|===
diff --git a/docs/modules/traits/pages/container.adoc b/docs/modules/traits/pages/container.adoc
index 65925bc46..3be9861b6 100755
--- a/docs/modules/traits/pages/container.adoc
+++ b/docs/modules/traits/pages/container.adoc
@@ -77,6 +77,10 @@ The following configuration options are available:
| string
| The main container image
+| container.image-was-kit
+| bool
+| A flag to mark the image used is coming from an IntegrationKit created externally.
+
| container.image-pull-policy
| PullPolicy
| The pull policy: Always\|Never\|IfNotPresent
diff --git a/docs/modules/traits/pages/jvm.adoc b/docs/modules/traits/pages/jvm.adoc
index 5a2cc1540..376461004 100755
--- a/docs/modules/traits/pages/jvm.adoc
+++ b/docs/modules/traits/pages/jvm.adoc
@@ -5,8 +5,6 @@ The JVM trait is used to configure the JVM that runs the Integration. This trait
(bound to a container image) built by Camel K operator. If the system detects the usage of a different container image (ie, built externally), then, the
trait is disabled by the platform.
-WARNING: you can still enable the trait explicitly even when it is disabled by the platform but you should be aware that some configurations could fail.
-
This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
diff --git a/e2e/advanced/operator_id_filtering_test.go b/e2e/advanced/operator_id_filtering_test.go
index 390d010c8..c67e3677f 100644
--- a/e2e/advanced/operator_id_filtering_test.go
+++ b/e2e/advanced/operator_id_filtering_test.go
@@ -100,7 +100,7 @@ func TestOperatorIDFiltering(t *testing.T) {
// Save resources by deleting "moving" integration
g.Expect(Kamel(t, ctx, "delete", "moving", "-n", ns).Execute()).To(Succeed())
- g.Expect(KamelRunWithID(t, ctx, "operator-x", ns, "files/yaml.yaml", "--name", "pre-built", "--force", "-t", fmt.Sprintf("container.image=%s", image), "-t", "jvm.enabled=true").Execute()).To(Succeed())
+ g.Expect(KamelRunWithID(t, ctx, "operator-x", ns, "files/yaml.yaml", "--name", "pre-built", "--force", "-t", fmt.Sprintf("container.image=%s", image), "-t", "container.image-was-kit=true").Execute()).To(Succeed())
g.Consistently(IntegrationPhase(t, ctx, ns, "pre-built"), 10*time.Second).Should(BeEmpty())
g.Expect(AssignIntegrationToOperator(t, ctx, ns, "pre-built", operator2)).To(Succeed())
g.Eventually(IntegrationPhase(t, ctx, ns, "pre-built"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
diff --git a/e2e/install/cli/global_test.go b/e2e/install/cli/global_test.go
index 436c92e63..303ca07b9 100644
--- a/e2e/install/cli/global_test.go
+++ b/e2e/install/cli/global_test.go
@@ -140,7 +140,7 @@ func TestRunGlobalInstall(t *testing.T) {
}
g.Expect(TestClient(t).Create(ctx, &externalKit)).Should(BeNil())
- g.Expect(KamelRun(t, ctx, ns5, "files/Java.java", "--name", "ext", "--kit", "external", "-t", "jvm.enabled=true").Execute()).To(Succeed())
+ g.Expect(KamelRun(t, ctx, ns5, "files/Java.java", "--name", "ext", "--kit", "external").Execute()).To(Succeed())
g.Eventually(IntegrationPodPhase(t, ctx, ns5, "ext"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
g.Eventually(IntegrationLogs(t, ctx, ns5, "ext"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
g.Expect(IntegrationKit(t, ctx, ns5, "ext")()).Should(Equal("external"))
diff --git a/helm/camel-k/crds/crd-integration-platform.yaml b/helm/camel-k/crds/crd-integration-platform.yaml
index 9d04b2ad8..12f95132a 100644
--- a/helm/camel-k/crds/crd-integration-platform.yaml
+++ b/helm/camel-k/crds/crd-integration-platform.yaml
@@ -701,6 +701,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
@@ -2603,6 +2607,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
diff --git a/helm/camel-k/crds/crd-integration-profile.yaml b/helm/camel-k/crds/crd-integration-profile.yaml
index 21e0c9334..c587cc5a6 100644
--- a/helm/camel-k/crds/crd-integration-profile.yaml
+++ b/helm/camel-k/crds/crd-integration-profile.yaml
@@ -578,6 +578,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
@@ -2363,6 +2367,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
diff --git a/helm/camel-k/crds/crd-integration.yaml b/helm/camel-k/crds/crd-integration.yaml
index 48c5885ed..0a4b17f32 100644
--- a/helm/camel-k/crds/crd-integration.yaml
+++ b/helm/camel-k/crds/crd-integration.yaml
@@ -6597,6 +6597,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
diff --git a/helm/camel-k/crds/crd-kamelet-binding.yaml b/helm/camel-k/crds/crd-kamelet-binding.yaml
index d856f765f..eb3476d63 100644
--- a/helm/camel-k/crds/crd-kamelet-binding.yaml
+++ b/helm/camel-k/crds/crd-kamelet-binding.yaml
@@ -6882,6 +6882,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
diff --git a/helm/camel-k/crds/crd-pipe.yaml b/helm/camel-k/crds/crd-pipe.yaml
index 860e4c44b..8b7e891f6 100644
--- a/helm/camel-k/crds/crd-pipe.yaml
+++ b/helm/camel-k/crds/crd-pipe.yaml
@@ -6880,6 +6880,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
diff --git a/pkg/apis/camel/v1/integrationkit_types.go b/pkg/apis/camel/v1/integrationkit_types.go
index d8b0864c4..b87eda9b4 100644
--- a/pkg/apis/camel/v1/integrationkit_types.go
+++ b/pkg/apis/camel/v1/integrationkit_types.go
@@ -147,12 +147,14 @@ const (
// IntegrationKitTypeLabel labels the kit type.
IntegrationKitTypeLabel = "camel.apache.org/kit.type"
- // IntegrationKitTypePlatform identifies a kit created by the platform.
+ // IntegrationKitTypePlatform identifies a Kit created by the platform.
IntegrationKitTypePlatform = "platform"
- // IntegrationKitTypeUser identifies a kit created by the user.
+ // IntegrationKitTypeUser identifies a Kit created by the user.
IntegrationKitTypeUser = "user"
- // IntegrationKitTypeExternal identifies a kit created by any third party.
+ // IntegrationKitTypeExternal identifies a Kit created by any third party.
IntegrationKitTypeExternal = "external"
+ // IntegrationKitTypeSynthetic identifies a synthetic Kit (generated for any container image for which the operator cannot make any assumption).
+ IntegrationKitTypeSynthetic = "synthetic"
// IntegrationKitLayoutLabel labels the kit layout.
IntegrationKitLayoutLabel = "camel.apache.org/kit.layout"
diff --git a/pkg/apis/camel/v1/integrationkit_types_support.go b/pkg/apis/camel/v1/integrationkit_types_support.go
index c1c8d2a5f..b58653227 100644
--- a/pkg/apis/camel/v1/integrationkit_types_support.go
+++ b/pkg/apis/camel/v1/integrationkit_types_support.go
@@ -106,6 +106,11 @@ func (in *IntegrationKit) IsExternal() bool {
return in.Labels[IntegrationKitTypeLabel] == IntegrationKitTypeExternal
}
+// IsSynthetic returns true for synthetic IntegrationKits.
+func (in *IntegrationKit) IsSynthetic() bool {
+ return in.Labels[IntegrationKitTypeLabel] == IntegrationKitTypeSynthetic
+}
+
// HasCapability returns true if the Kit is enabled with such a capability.
func (in *IntegrationKit) HasCapability(capability string) bool {
for _, cap := range in.Spec.Capabilities {
diff --git a/pkg/apis/camel/v1/trait/container.go b/pkg/apis/camel/v1/trait/container.go
index d5791ec38..4d426993a 100644
--- a/pkg/apis/camel/v1/trait/container.go
+++ b/pkg/apis/camel/v1/trait/container.go
@@ -51,6 +51,8 @@ type ContainerTrait struct {
Name string `property:"name" json:"name,omitempty"`
// The main container image
Image string `property:"image" json:"image,omitempty"`
+ // A flag to mark the image used is coming from an IntegrationKit created externally.
+ ImageWasKit *bool `property:"image-was-kit" json:"imageWasKit,omitempty"`
// The pull policy: Always|Never|IfNotPresent
// +kubebuilder:validation:Enum=Always;Never;IfNotPresent
ImagePullPolicy corev1.PullPolicy `property:"image-pull-policy" json:"imagePullPolicy,omitempty"`
diff --git a/pkg/apis/camel/v1/trait/jvm.go b/pkg/apis/camel/v1/trait/jvm.go
index b439381c3..abe1e1185 100644
--- a/pkg/apis/camel/v1/trait/jvm.go
+++ b/pkg/apis/camel/v1/trait/jvm.go
@@ -21,8 +21,6 @@ package trait
// (bound to a container image) built by Camel K operator. If the system detects the usage of a different container image (ie, built externally), then, the
// trait is disabled by the platform.
//
-// WARNING: you can still enable the trait explicitly even when it is disabled by the platform but you should be aware that some configurations could fail.
-//
// +camel-k:trait=jvm.
type JVMTrait struct {
Trait `property:",squash" json:",inline"`
diff --git a/pkg/apis/camel/v1/trait/zz_generated.deepcopy.go b/pkg/apis/camel/v1/trait/zz_generated.deepcopy.go
index 3aa125359..5fc1d1964 100644
--- a/pkg/apis/camel/v1/trait/zz_generated.deepcopy.go
+++ b/pkg/apis/camel/v1/trait/zz_generated.deepcopy.go
@@ -186,6 +186,11 @@ func (in *ContainerTrait) DeepCopyInto(out *ContainerTrait) {
*out = new(bool)
**out = **in
}
+ if in.ImageWasKit != nil {
+ in, out := &in.ImageWasKit, &out.ImageWasKit
+ *out = new(bool)
+ **out = **in
+ }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerTrait.
diff --git a/pkg/cmd/promote.go b/pkg/cmd/promote.go
index 9b73e71ee..a807191f4 100644
--- a/pkg/cmd/promote.go
+++ b/pkg/cmd/promote.go
@@ -469,12 +469,8 @@ func (o *promoteCmdOptions) editIntegration(it *v1.Integration) *v1.Integration
dst.Spec.Traits.Container = &traitv1.ContainerTrait{}
}
dst.Spec.Traits.Container.Image = contImage
- if dst.Spec.Traits.JVM == nil {
- dst.Spec.Traits.JVM = &traitv1.JVMTrait{}
- }
- if dst.Spec.Traits.JVM.Enabled == nil {
- dst.Spec.Traits.JVM.Enabled = pointer.Bool(true)
- }
+ dst.Spec.Traits.Container.ImageWasKit = pointer.Bool(true)
+
return &dst
}
@@ -520,12 +516,8 @@ func (o *promoteCmdOptions) editPipe(kb *v1.Pipe, it *v1.Integration) *v1.Pipe {
dst.Spec.Integration.Traits.Container = &traitv1.ContainerTrait{}
}
dst.Spec.Integration.Traits.Container.Image = contImage
- if dst.Spec.Integration.Traits.JVM == nil {
- dst.Spec.Integration.Traits.JVM = &traitv1.JVMTrait{}
- }
- if dst.Spec.Integration.Traits.JVM.Enabled == nil {
- dst.Spec.Integration.Traits.JVM.Enabled = pointer.Bool(true)
- }
+ dst.Spec.Integration.Traits.Container.ImageWasKit = pointer.Bool(true)
+
if dst.Spec.Source.Ref != nil {
dst.Spec.Source.Ref.Namespace = o.To
}
diff --git a/pkg/cmd/promote_test.go b/pkg/cmd/promote_test.go
index 91ebce901..78779fb4e 100644
--- a/pkg/cmd/promote_test.go
+++ b/pkg/cmd/promote_test.go
@@ -102,8 +102,7 @@ spec:
traits:
container:
image: my-special-image
- jvm:
- enabled: true
+ imageWasKit: true
status: {}
`, output)
}
@@ -144,8 +143,7 @@ spec:
traits:
container:
image: my-special-image
- jvm:
- enabled: true
+ imageWasKit: true
sink: {}
source: {}
status: {}
@@ -202,8 +200,7 @@ spec:
traits:
container:
image: my-special-image
- jvm:
- enabled: true
+ imageWasKit: true
status: {}
`, output)
}
@@ -248,8 +245,7 @@ spec:
traits:
container:
image: my-special-image
- jvm:
- enabled: true
+ imageWasKit: true
sink: {}
source: {}
status: {}
@@ -325,8 +321,7 @@ spec:
traits:
container:
image: my-special-image
- jvm:
- enabled: true
+ imageWasKit: true
status: {}
`, output)
// Verify also when the operator Id is set in the integration
@@ -349,8 +344,7 @@ spec:
traits:
container:
image: my-special-image
- jvm:
- enabled: true
+ imageWasKit: true
status: {}
`, output)
}
diff --git a/pkg/controller/integrationkit/integrationkit_controller.go b/pkg/controller/integrationkit/integrationkit_controller.go
index 6c3c21745..b1431fa3a 100644
--- a/pkg/controller/integrationkit/integrationkit_controller.go
+++ b/pkg/controller/integrationkit/integrationkit_controller.go
@@ -237,7 +237,7 @@ func (r *reconcileIntegrationKit) Reconcile(ctx context.Context, request reconci
if target.Status.Phase == v1.IntegrationKitPhaseNone || target.Status.Phase == v1.IntegrationKitPhaseWaitingForPlatform {
rlog.Debug("Preparing to shift integration kit phase")
- if target.IsExternal() {
+ if target.IsExternal() || target.IsSynthetic() {
target.Status.Phase = v1.IntegrationKitPhaseInitialization
return r.update(ctx, &instance, target)
}
diff --git a/pkg/resources/config/crd/bases/camel.apache.org_integrationplatforms.yaml b/pkg/resources/config/crd/bases/camel.apache.org_integrationplatforms.yaml
index 9d04b2ad8..12f95132a 100644
--- a/pkg/resources/config/crd/bases/camel.apache.org_integrationplatforms.yaml
+++ b/pkg/resources/config/crd/bases/camel.apache.org_integrationplatforms.yaml
@@ -701,6 +701,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
@@ -2603,6 +2607,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
diff --git a/pkg/resources/config/crd/bases/camel.apache.org_integrationprofiles.yaml b/pkg/resources/config/crd/bases/camel.apache.org_integrationprofiles.yaml
index 21e0c9334..c587cc5a6 100644
--- a/pkg/resources/config/crd/bases/camel.apache.org_integrationprofiles.yaml
+++ b/pkg/resources/config/crd/bases/camel.apache.org_integrationprofiles.yaml
@@ -578,6 +578,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
@@ -2363,6 +2367,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
diff --git a/pkg/resources/config/crd/bases/camel.apache.org_integrations.yaml b/pkg/resources/config/crd/bases/camel.apache.org_integrations.yaml
index 48c5885ed..0a4b17f32 100644
--- a/pkg/resources/config/crd/bases/camel.apache.org_integrations.yaml
+++ b/pkg/resources/config/crd/bases/camel.apache.org_integrations.yaml
@@ -6597,6 +6597,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
diff --git a/pkg/resources/config/crd/bases/camel.apache.org_kameletbindings.yaml b/pkg/resources/config/crd/bases/camel.apache.org_kameletbindings.yaml
index d856f765f..eb3476d63 100644
--- a/pkg/resources/config/crd/bases/camel.apache.org_kameletbindings.yaml
+++ b/pkg/resources/config/crd/bases/camel.apache.org_kameletbindings.yaml
@@ -6882,6 +6882,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
diff --git a/pkg/resources/config/crd/bases/camel.apache.org_pipes.yaml b/pkg/resources/config/crd/bases/camel.apache.org_pipes.yaml
index 860e4c44b..8b7e891f6 100644
--- a/pkg/resources/config/crd/bases/camel.apache.org_pipes.yaml
+++ b/pkg/resources/config/crd/bases/camel.apache.org_pipes.yaml
@@ -6880,6 +6880,10 @@ spec:
- Never
- IfNotPresent
type: string
+ imageWasKit:
+ description: A flag to mark the image used is coming from
+ an IntegrationKit created externally.
+ type: boolean
limitCPU:
description: The maximum amount of CPU required.
type: string
diff --git a/pkg/trait/container.go b/pkg/trait/container.go
index 7d32a06d6..ecb5d160f 100644
--- a/pkg/trait/container.go
+++ b/pkg/trait/container.go
@@ -137,12 +137,15 @@ func (t *containerTrait) configureImageIntegrationKit(e *Environment) error {
// Add some information for post-processing, this may need to be refactored
// to a proper data structure
kit.Labels = map[string]string{
- v1.IntegrationKitTypeLabel: v1.IntegrationKitTypeExternal,
+ v1.IntegrationKitTypeLabel: v1.IntegrationKitTypeSynthetic,
kubernetes.CamelCreatorLabelKind: v1.IntegrationKind,
kubernetes.CamelCreatorLabelName: e.Integration.Name,
kubernetes.CamelCreatorLabelNamespace: e.Integration.Namespace,
kubernetes.CamelCreatorLabelVersion: e.Integration.ResourceVersion,
}
+ if pointer.BoolDeref(t.ImageWasKit, false) {
+ kit.Labels[v1.IntegrationKitTypeLabel] = v1.IntegrationKitTypeExternal
+ }
if v, ok := e.Integration.Annotations[v1.PlatformSelectorAnnotation]; ok {
v1.SetAnnotation(&kit.ObjectMeta, v1.PlatformSelectorAnnotation, v)
diff --git a/pkg/trait/jvm.go b/pkg/trait/jvm.go
index c9e3b3264..858ac33e4 100644
--- a/pkg/trait/jvm.go
+++ b/pkg/trait/jvm.go
@@ -70,12 +70,8 @@ func (t *jvmTrait) Configure(e *Environment) (bool, *TraitCondition, error) {
}
}
- if e.IntegrationKit != nil && e.IntegrationKit.IsExternal() {
- if pointer.BoolDeref(t.Enabled, false) {
- return true, NewIntegrationConditionUserEnabledWithMessage("JVM", "integration kit was not created via Camel K operator"), nil
- } else {
- return false, newIntegrationConditionPlatformDisabledWithMessage("JVM", "integration kit was not created via Camel K operator"), nil
- }
+ if e.IntegrationKit != nil && e.IntegrationKit.IsSynthetic() {
+ return false, newIntegrationConditionPlatformDisabledWithMessage("JVM", "integration kit was not created via Camel K operator"), nil
}
return true, nil, nil
diff --git a/pkg/trait/jvm_test.go b/pkg/trait/jvm_test.go
index b3f33f65d..3e3906d13 100644
--- a/pkg/trait/jvm_test.go
+++ b/pkg/trait/jvm_test.go
@@ -95,7 +95,7 @@ func TestConfigureJvmTraitInWrongJvmDisabled(t *testing.T) {
}
func TestConfigureJvmTraitInWrongIntegrationKitPhaseExternal(t *testing.T) {
- trait, environment := createNominalJvmTest(v1.IntegrationKitTypeExternal)
+ trait, environment := createNominalJvmTest(v1.IntegrationKitTypeSynthetic)
expectedCondition := NewIntegrationCondition(
"JVM",
@@ -111,24 +111,6 @@ func TestConfigureJvmTraitInWrongIntegrationKitPhaseExternal(t *testing.T) {
assert.Equal(t, expectedCondition, condition)
}
-func TestConfigureJvmTraitInRightIntegrationKitPhaseExternalAndJvmEnabled(t *testing.T) {
- trait, environment := createNominalJvmTest(v1.IntegrationKitTypeExternal)
- trait.Enabled = pointer.Bool(true)
-
- expectedCondition := NewIntegrationCondition(
- "JVM",
- v1.IntegrationConditionTraitInfo,
- corev1.ConditionTrue,
- "TraitConfiguration",
- "explicitly enabled by the user: integration kit was not created via Camel K operator",
- )
- configured, condition, err := trait.Configure(environment)
- require.NoError(t, err)
- assert.True(t, configured)
- assert.NotNil(t, condition)
- assert.Equal(t, expectedCondition, condition)
-}
-
func TestApplyJvmTraitWithDeploymentResource(t *testing.T) {
trait, environment := createNominalJvmTest(v1.IntegrationKitTypePlatform)
diff --git a/pkg/trait/trait_condition_types.go b/pkg/trait/trait_condition_types.go
index 906cf3b57..216993a27 100644
--- a/pkg/trait/trait_condition_types.go
+++ b/pkg/trait/trait_condition_types.go
@@ -56,10 +56,6 @@ func NewIntegrationConditionUserDisabled(traitID string) *TraitCondition {
return NewIntegrationCondition(traitID, v1.IntegrationConditionTraitInfo, corev1.ConditionTrue, traitConfigurationReason, userDisabledMessage)
}
-func NewIntegrationConditionUserEnabledWithMessage(traitID string, message string) *TraitCondition {
- return NewIntegrationCondition(traitID, v1.IntegrationConditionTraitInfo, corev1.ConditionTrue, traitConfigurationReason, fmt.Sprintf("%s: %s", userEnabledMessage, message))
-}
-
func newIntegrationConditionPlatformDisabledWithMessage(traitID string, message string) *TraitCondition {
return NewIntegrationCondition(traitID, v1.IntegrationConditionTraitInfo, corev1.ConditionTrue, traitConfigurationReason, fmt.Sprintf("%s: %s", platformDisabledMessage, message))
}