This is an automated email from the ASF dual-hosted git repository.
squakez pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/main by this push:
new d5579531c feat(trait): deprecate prometheus trait
d5579531c is described below
commit d5579531c394ab320bdb881eee31b7909dddd717
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Wed May 13 12:09:45 2026 +0200
feat(trait): deprecate prometheus trait
Favour Camel Monitor Operator to perform that level of monitoring instead
---
.../ROOT/pages/observability/monitoring.adoc | 10 +++---
.../observability/monitoring/integration.adoc | 2 +-
.../pages/observability/monitoring/operator.adoc | 4 ++-
docs/modules/ROOT/partials/apis/camel-k-crds.adoc | 11 +++++--
docs/modules/traits/pages/pod.adoc | 2 +-
docs/modules/traits/pages/prometheus.adoc | 5 +++
e2e/common/traits/health_test.go | 36 +++++++++++-----------
e2e/support/test_support.go | 10 +++---
helm/camel-k/crds/camel-k-crds.yaml | 8 +++--
pkg/apis/camel/v1/integration_types.go | 7 +++--
pkg/apis/camel/v1/trait/pod.go | 2 +-
pkg/apis/camel/v1/trait/prometheus.go | 4 +++
pkg/apis/camel/v1/zz_generated.deepcopy.go | 4 +--
.../camel/v1/integrationcondition.go | 16 +++++-----
.../applyconfiguration/camel/v1/podcondition.go | 2 ++
pkg/controller/integration/monitor.go | 18 ++++++-----
pkg/controller/pipe/monitor.go | 14 +++++----
.../crd/bases/camel.apache.org_integrations.yaml | 7 +++--
.../config/crd/bases/camel.apache.org_pipes.yaml | 1 +
pkg/trait/prometheus.go | 10 +++++-
pkg/trait/prometheus_test.go | 6 ++--
pkg/util/defaults/defaults.go | 2 +-
script/Makefile | 2 +-
23 files changed, 113 insertions(+), 70 deletions(-)
diff --git a/docs/modules/ROOT/pages/observability/monitoring.adoc
b/docs/modules/ROOT/pages/observability/monitoring.adoc
index a3ed230e6..24c2f7e56 100644
--- a/docs/modules/ROOT/pages/observability/monitoring.adoc
+++ b/docs/modules/ROOT/pages/observability/monitoring.adoc
@@ -1,14 +1,16 @@
[[monitoring]]
-= Camel K Monitoring
+= Camel K Operator Monitoring
-The Camel K monitoring architecture relies on
https://prometheus.io[Prometheus] and the eponymous operator.
+The Camel K Operator monitoring architecture relies on
https://prometheus.io[Prometheus] and the eponymous operator.
The https://prometheus-operator.dev[Prometheus Operator] serves to make
running Prometheus on top of Kubernetes as easy as possible, while preserving
Kubernetes-native configuration options.
+NOTE: the Camel K Integration monitoring part is deprecated in favour of
xref:observability/dashboard.adoc[Camel Dashboard].
+
[[prerequisites]]
== Prerequisites
-To take full advantage of the Camel K monitoring capabilities, it is
recommended to have a Prometheus Operator instance, that can be configured to
integrate the Camel K operator and integrations.
+To take full advantage of the Camel K operator monitoring capabilities, it is
recommended to have a Prometheus Operator instance, that can be configured to
integrate the Camel K operator and integrations.
[[kubernetes]]
=== Kubernetes
@@ -22,7 +24,7 @@ Alternatively, you can quickly deploy the Prometheus operator
by running:
$ kubectl apply -f
https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/bundle.yaml
----
-WARNING: Beware this installs the operator in the `default` namespace. You
must download the file locally and replace the `namespace` fields to deploy the
resources into another namespace. This also installs the version from the
`main` branch, which you can change in the URL by choosing a stable release
version.
+NOTE: the above script installs the operator in the `default` namespace. You
must download the file locally and replace the `namespace` fields to deploy the
resources into another namespace. This also installs the version from the
`main` branch, which you can change in the URL by choosing a stable release
version.
Then, you can create a `Prometheus` resource, that the operator will use as
configuration to deploy a managed Prometheus instance:
diff --git a/docs/modules/ROOT/pages/observability/monitoring/integration.adoc
b/docs/modules/ROOT/pages/observability/monitoring/integration.adoc
index 5e8bf19fe..e7c75e8ec 100644
--- a/docs/modules/ROOT/pages/observability/monitoring/integration.adoc
+++ b/docs/modules/ROOT/pages/observability/monitoring/integration.adoc
@@ -1,7 +1,7 @@
[[integration-monitoring]]
= Camel K Integration Monitoring
-NOTE: The Camel K monitoring architecture relies on
https://prometheus.io[Prometheus] and the eponymous operator. Make sure you've
checked the xref:observability/monitoring.adoc#prerequisites[Camel K monitoring
prerequisites].
+WARNING: The Camel K Integration monitoring part is deprecated. Use instead
xref:observability/dashboard.adoc[Camel Dashboard] project to provide a deeper
level of monitoring to your Camel applications.
[[instrumentation]]
== Instrumentation
diff --git a/docs/modules/ROOT/pages/observability/monitoring/operator.adoc
b/docs/modules/ROOT/pages/observability/monitoring/operator.adoc
index fb5d6ff60..a671eeb0a 100644
--- a/docs/modules/ROOT/pages/observability/monitoring/operator.adoc
+++ b/docs/modules/ROOT/pages/observability/monitoring/operator.adoc
@@ -1,7 +1,9 @@
[[operator-monitoring]]
= Camel K Operator Monitoring
-NOTE: The Camel K monitoring architecture relies on
https://prometheus.io[Prometheus] and the eponymous operator. Make sure you've
checked the xref:observability/monitoring.adoc#prerequisites[Camel K monitoring
prerequisites].
+In this chapter we provide some example how to provide a monitoring based on
Prometheus for your Camel K operator main metrics.
+
+WARNING: this is a guide that mostly depends on Prometheus. The goal is to
provide some basic example more than an exhaustive guide. Please, refer to
Prometheus documentation for a full production configuration.
[[installation]]
== Installation
diff --git a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
index 067e26e31..cbcc5efae 100644
--- a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
+++ b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
@@ -2498,7 +2498,9 @@ A human-readable message indicating details about the
transition.
|
-Pods collect health and conditions information from the owned PODs
+DeprecatedPods collect health and conditions information from the owned PODs
+
+Deprecated: may be removed in future releases.
|===
@@ -5107,7 +5109,7 @@ PluginProperties -- .
* <<#_camel_apache_org_v1_IntegrationCondition, IntegrationCondition>>
* <<#_camel_apache_org_v1_PipeCondition, PipeCondition>>
-
+Deprecated: may be removed in future releases.
[cols="2,2a",options="header"]
|===
@@ -9057,7 +9059,7 @@ Deprecated: no longer in use.
* <<#_camel_apache_org_v1_Traits, Traits>>
WARNING: The Pod trait is **deprecated** and will removed in future release
versions:
-use InitContainers trait istead.
+use InitContainers trait instead.
The pod trait allows the customization of the Integration pods.
It applies the `PodSpecTemplate` struct contained in the Integration
`.spec.podTemplate` field,
@@ -9089,6 +9091,9 @@ by using the `integration` container name.
* <<#_camel_apache_org_v1_Traits, Traits>>
+WARNING: The Prometheus trait is **deprecated** and will removed in future
release versions:
+use Camel Monitor operator
(https://camel-tooling.github.io/camel-dashboard/docs/installation-guide/advanced/operator/)
instead.
+
The Prometheus trait configures a Prometheus-compatible endpoint. It also
creates a `PodMonitor` resource,
so that the endpoint can be scraped automatically, when using the Prometheus
operator.
diff --git a/docs/modules/traits/pages/pod.adoc
b/docs/modules/traits/pages/pod.adoc
index 3d5c5d391..d2673e037 100755
--- a/docs/modules/traits/pages/pod.adoc
+++ b/docs/modules/traits/pages/pod.adoc
@@ -6,7 +6,7 @@
// End of autogenerated code - DO NOT EDIT! (badges)
// Start of autogenerated code - DO NOT EDIT! (description)
WARNING: The Pod trait is **deprecated** and will removed in future release
versions:
-use InitContainers trait istead.
+use InitContainers trait instead.
The pod trait allows the customization of the Integration pods.
It applies the `PodSpecTemplate` struct contained in the Integration
`.spec.podTemplate` field,
diff --git a/docs/modules/traits/pages/prometheus.adoc
b/docs/modules/traits/pages/prometheus.adoc
index b3fbc66e3..fc657af59 100755
--- a/docs/modules/traits/pages/prometheus.adoc
+++ b/docs/modules/traits/pages/prometheus.adoc
@@ -1,8 +1,13 @@
= Prometheus Trait
// Start of autogenerated code - DO NOT EDIT! (badges)
+[.badges]
+[.badge-key]##Deprecated since##[.badge-unsupported]##2.11.0##
// End of autogenerated code - DO NOT EDIT! (badges)
// Start of autogenerated code - DO NOT EDIT! (description)
+WARNING: The Prometheus trait is **deprecated** and will removed in future
release versions:
+use Camel Monitor operator
(https://camel-tooling.github.io/camel-dashboard/docs/installation-guide/advanced/operator/)
instead.
+
The Prometheus trait configures a Prometheus-compatible endpoint. It also
creates a `PodMonitor` resource,
so that the endpoint can be scraped automatically, when using the Prometheus
operator.
diff --git a/e2e/common/traits/health_test.go b/e2e/common/traits/health_test.go
index 06282a8c5..7dcdb3eb9 100644
--- a/e2e/common/traits/health_test.go
+++ b/e2e/common/traits/health_test.go
@@ -107,13 +107,13 @@ func TestHealthTrait(t *testing.T) {
if c.Status != corev1.ConditionFalse {
return false
}
- if len(c.Pods) != 3 {
+ if len(c.DeprecatedPods) != 3 {
return false
}
var r *v1.HealthCheckResponse
- for _, pod := range c.Pods {
+ for _, pod := range c.DeprecatedPods {
for h := range pod.Health {
if pod.Health[h].Name
== "camel-routes" {
r =
&pod.Health[h]
@@ -201,15 +201,15 @@ func TestHealthTrait(t *testing.T) {
if c.Status != corev1.ConditionFalse {
return false
}
- if len(c.Pods) != 1 {
+ if len(c.DeprecatedPods) != 1 {
return false
}
var r *v1.HealthCheckResponse
- for h := range c.Pods[0].Health {
- if c.Pods[0].Health[h].Name ==
"camel-routes" {
- r = &c.Pods[0].Health[h]
+ for h := range
c.DeprecatedPods[0].Health {
+ if
c.DeprecatedPods[0].Health[h].Name == "camel-routes" {
+ r =
&c.DeprecatedPods[0].Health[h]
}
}
@@ -288,15 +288,15 @@ func TestHealthTrait(t *testing.T) {
if c.Status != corev1.ConditionFalse {
return false
}
- if len(c.Pods) != 1 {
+ if len(c.DeprecatedPods) != 1 {
return false
}
var r *v1.HealthCheckResponse
- for h := range c.Pods[0].Health {
- if c.Pods[0].Health[h].Name ==
"camel-routes" {
- r = &c.Pods[0].Health[h]
+ for h := range
c.DeprecatedPods[0].Health {
+ if
c.DeprecatedPods[0].Health[h].Name == "camel-routes" {
+ r =
&c.DeprecatedPods[0].Health[h]
}
}
@@ -374,15 +374,15 @@ func TestHealthTrait(t *testing.T) {
if c.Status != corev1.ConditionFalse {
return false
}
- if len(c.Pods) != 1 {
+ if len(c.DeprecatedPods) != 1 {
return false
}
var r *v1.HealthCheckResponse
- for h := range c.Pods[0].Health {
- if c.Pods[0].Health[h].Name ==
"never-ready" {
- r = &c.Pods[0].Health[h]
+ for h := range
c.DeprecatedPods[0].Health {
+ if
c.DeprecatedPods[0].Health[h].Name == "never-ready" {
+ r =
&c.DeprecatedPods[0].Health[h]
}
}
@@ -426,15 +426,15 @@ func TestHealthTrait(t *testing.T) {
if c.Status != corev1.ConditionFalse {
return false
}
- if len(c.Pods) != 1 {
+ if len(c.DeprecatedPods) != 1 {
return false
}
var r *v1.HealthCheckResponse
- for h := range c.Pods[0].Health {
- if c.Pods[0].Health[h].Name ==
"never-ready" && c.Pods[0].Health[h].Status == "DOWN" {
- r = &c.Pods[0].Health[h]
+ for h := range
c.DeprecatedPods[0].Health {
+ if
c.DeprecatedPods[0].Health[h].Name == "never-ready" &&
c.DeprecatedPods[0].Health[h].Status == "DOWN" {
+ r =
&c.DeprecatedPods[0].Health[h]
}
}
diff --git a/e2e/support/test_support.go b/e2e/support/test_support.go
index 00203f8cf..70a9e36fd 100644
--- a/e2e/support/test_support.go
+++ b/e2e/support/test_support.go
@@ -748,14 +748,14 @@ func HealthCheckResponse(podRegexp string, healthName
string) func(*v1.Integrati
return nil
}
- for p := range c.Pods {
- if re.MatchString(c.Pods[p].Name) {
+ for p := range c.DeprecatedPods {
+ if re.MatchString(c.DeprecatedPods[p].Name) {
continue
}
- for h := range c.Pods[p].Health {
- if c.Pods[p].Health[h].Name == healthName {
- return &c.Pods[p].Health[h]
+ for h := range c.DeprecatedPods[p].Health {
+ if c.DeprecatedPods[p].Health[h].Name ==
healthName {
+ return &c.DeprecatedPods[p].Health[h]
}
}
diff --git a/helm/camel-k/crds/camel-k-crds.yaml
b/helm/camel-k/crds/camel-k-crds.yaml
index dc1b0809d..88d31184e 100644
--- a/helm/camel-k/crds/camel-k-crds.yaml
+++ b/helm/camel-k/crds/camel-k-crds.yaml
@@ -22518,9 +22518,12 @@ spec:
the transition.
type: string
pods:
- description: Pods collect health and conditions
information
- from the owned PODs
+ description: |-
+ DeprecatedPods collect health and conditions
information from the owned PODs
+
+ Deprecated: may be removed in future releases.
items:
+ description: 'Deprecated: may be removed in future
releases.'
properties:
condition:
description: PodCondition contains details for the
current
@@ -37786,6 +37789,7 @@ spec:
description: Pods collect health and conditions
information
from the owned PODs
items:
+ description: 'Deprecated: may be removed in future
releases.'
properties:
condition:
description: PodCondition contains details for the
current
diff --git a/pkg/apis/camel/v1/integration_types.go
b/pkg/apis/camel/v1/integration_types.go
index 9917c9cfd..a74e53955 100644
--- a/pkg/apis/camel/v1/integration_types.go
+++ b/pkg/apis/camel/v1/integration_types.go
@@ -307,8 +307,10 @@ type IntegrationCondition struct {
Reason string `json:"reason,omitempty"`
// A human-readable message indicating details about the transition.
Message string `json:"message,omitempty"`
- // Pods collect health and conditions information from the owned PODs
- Pods []PodCondition `json:"pods,omitempty"`
+ // DeprecatedPods collect health and conditions information from the
owned PODs
+ //
+ // Deprecated: may be removed in future releases.
+ DeprecatedPods []PodCondition `json:"pods,omitempty"`
}
// PodSpecTemplate represent a template used to deploy an Integration `Pod`.
@@ -349,6 +351,7 @@ type PodSpec struct {
SecurityContext corev1.PodSecurityContext
`json:"securityContext,omitempty" protobuf:"bytes,34,opt,name=securityContext"`
}
+// Deprecated: may be removed in future releases.
type PodCondition struct {
Name string `json:"name,omitempty"
yaml:"name,omitempty"`
Condition corev1.PodCondition `json:"condition"
yaml:"condition"`
diff --git a/pkg/apis/camel/v1/trait/pod.go b/pkg/apis/camel/v1/trait/pod.go
index 0c29e9bb6..c9106f265 100644
--- a/pkg/apis/camel/v1/trait/pod.go
+++ b/pkg/apis/camel/v1/trait/pod.go
@@ -18,7 +18,7 @@ limitations under the License.
package trait
// WARNING: The Pod trait is **deprecated** and will removed in future release
versions:
-// use InitContainers trait istead.
+// use InitContainers trait instead.
//
// The pod trait allows the customization of the Integration pods.
// It applies the `PodSpecTemplate` struct contained in the Integration
`.spec.podTemplate` field,
diff --git a/pkg/apis/camel/v1/trait/prometheus.go
b/pkg/apis/camel/v1/trait/prometheus.go
index aa1c50886..8362dcb8c 100644
--- a/pkg/apis/camel/v1/trait/prometheus.go
+++ b/pkg/apis/camel/v1/trait/prometheus.go
@@ -17,6 +17,9 @@ limitations under the License.
package trait
+// WARNING: The Prometheus trait is **deprecated** and will removed in future
release versions:
+// use Camel Monitor operator
(https://camel-tooling.github.io/camel-dashboard/docs/installation-guide/advanced/operator/)
instead.
+//
// The Prometheus trait configures a Prometheus-compatible endpoint. It also
creates a `PodMonitor` resource,
// so that the endpoint can be scraped automatically, when using the
Prometheus operator.
//
@@ -31,6 +34,7 @@ package trait
// The Prometheus trait is disabled by default.
//
// +camel-k:trait=prometheus.
+// +camel-k:deprecated=2.11.0.
//
//nolint:godoclint
type PrometheusTrait struct {
diff --git a/pkg/apis/camel/v1/zz_generated.deepcopy.go
b/pkg/apis/camel/v1/zz_generated.deepcopy.go
index b4b405bf0..3be380fab 100644
--- a/pkg/apis/camel/v1/zz_generated.deepcopy.go
+++ b/pkg/apis/camel/v1/zz_generated.deepcopy.go
@@ -1198,8 +1198,8 @@ func (in *IntegrationCondition) DeepCopyInto(out
*IntegrationCondition) {
in, out := &in.FirstTruthyTime, &out.FirstTruthyTime
*out = (*in).DeepCopy()
}
- if in.Pods != nil {
- in, out := &in.Pods, &out.Pods
+ if in.DeprecatedPods != nil {
+ in, out := &in.DeprecatedPods, &out.DeprecatedPods
*out = make([]PodCondition, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
diff --git
a/pkg/client/camel/applyconfiguration/camel/v1/integrationcondition.go
b/pkg/client/camel/applyconfiguration/camel/v1/integrationcondition.go
index dfcde654d..7af91d226 100644
--- a/pkg/client/camel/applyconfiguration/camel/v1/integrationcondition.go
+++ b/pkg/client/camel/applyconfiguration/camel/v1/integrationcondition.go
@@ -44,8 +44,10 @@ type IntegrationConditionApplyConfiguration struct {
Reason *string `json:"reason,omitempty"`
// A human-readable message indicating details about the transition.
Message *string `json:"message,omitempty"`
- // Pods collect health and conditions information from the owned PODs
- Pods []PodConditionApplyConfiguration `json:"pods,omitempty"`
+ // DeprecatedPods collect health and conditions information from the
owned PODs
+ //
+ // Deprecated: may be removed in future releases.
+ DeprecatedPods []PodConditionApplyConfiguration `json:"pods,omitempty"`
}
// IntegrationConditionApplyConfiguration constructs a declarative
configuration of the IntegrationCondition type for use with
@@ -110,15 +112,15 @@ func (b *IntegrationConditionApplyConfiguration)
WithMessage(value string) *Inte
return b
}
-// WithPods adds the given value to the Pods field in the declarative
configuration
+// WithDeprecatedPods adds the given value to the DeprecatedPods field in the
declarative configuration
// and returns the receiver, so that objects can be build by chaining "With"
function invocations.
-// If called multiple times, values provided by each call will be appended to
the Pods field.
-func (b *IntegrationConditionApplyConfiguration) WithPods(values
...*PodConditionApplyConfiguration) *IntegrationConditionApplyConfiguration {
+// If called multiple times, values provided by each call will be appended to
the DeprecatedPods field.
+func (b *IntegrationConditionApplyConfiguration) WithDeprecatedPods(values
...*PodConditionApplyConfiguration) *IntegrationConditionApplyConfiguration {
for i := range values {
if values[i] == nil {
- panic("nil value passed to WithPods")
+ panic("nil value passed to WithDeprecatedPods")
}
- b.Pods = append(b.Pods, *values[i])
+ b.DeprecatedPods = append(b.DeprecatedPods, *values[i])
}
return b
}
diff --git a/pkg/client/camel/applyconfiguration/camel/v1/podcondition.go
b/pkg/client/camel/applyconfiguration/camel/v1/podcondition.go
index b2e153a91..222842b14 100644
--- a/pkg/client/camel/applyconfiguration/camel/v1/podcondition.go
+++ b/pkg/client/camel/applyconfiguration/camel/v1/podcondition.go
@@ -25,6 +25,8 @@ import (
// PodConditionApplyConfiguration represents a declarative configuration of
the PodCondition type for use
// with apply.
+//
+// Deprecated: may be removed in future releases.
type PodConditionApplyConfiguration struct {
Name *string
`json:"name,omitempty"`
Condition *corev1.PodCondition
`json:"condition,omitempty"`
diff --git a/pkg/controller/integration/monitor.go
b/pkg/controller/integration/monitor.go
index de4e7869e..db446e5b1 100644
--- a/pkg/controller/integration/monitor.go
+++ b/pkg/controller/integration/monitor.go
@@ -514,12 +514,14 @@ func arePodsFailingStatuses(integration *v1.Integration,
pendingPods []corev1.Po
// probeReadiness calls the readiness probes of the non-ready Pods directly to
retrieve insights from the Camel runtime.
// The func return the number of readyPods, the success of the probe and any
error may have happened during its execution.
+//
+//nolint:staticcheck
func (action *monitorAction) probeReadiness(ctx context.Context, environment
*trait.Environment, integration *v1.Integration, pods []corev1.Pod) (int32,
bool, error) {
// as a default we assume the Integration is Ready
readyCondition := v1.IntegrationCondition{
- Type: v1.IntegrationConditionReady,
- Status: corev1.ConditionTrue,
- Pods: make([]v1.PodCondition, len(pods)),
+ Type: v1.IntegrationConditionReady,
+ Status: corev1.ConditionTrue,
+ DeprecatedPods: make([]v1.PodCondition, len(pods)),
}
readyPods := int32(0)
@@ -531,10 +533,10 @@ func (action *monitorAction) probeReadiness(ctx
context.Context, environment *tr
for i := range pods {
pod := &pods[i]
- readyCondition.Pods[i].Name = pod.Name
+ readyCondition.DeprecatedPods[i].Name = pod.Name
for p := range pod.Status.Conditions {
if pod.Status.Conditions[p].Type == corev1.PodReady {
- readyCondition.Pods[i].Condition =
pod.Status.Conditions[p]
+ readyCondition.DeprecatedPods[i].Condition =
pod.Status.Conditions[p]
break
}
@@ -599,13 +601,13 @@ func (action *monitorAction) probeReadiness(ctx
context.Context, environment *tr
}
if errors.Is(err, context.DeadlineExceeded) {
- readyCondition.Pods[i].Condition.Message =
fmt.Sprintf("readiness probe timed out for Pod %s/%s", pod.Namespace, pod.Name)
+
readyCondition.DeprecatedPods[i].Condition.Message = fmt.Sprintf("readiness
probe timed out for Pod %s/%s", pod.Namespace, pod.Name)
runtimeReady = false
continue
}
if !k8serrors.IsServiceUnavailable(err) {
- readyCondition.Pods[i].Condition.Message =
fmt.Sprintf("readiness probe failed for Pod %s/%s: %s", pod.Namespace,
pod.Name, err.Error())
+
readyCondition.DeprecatedPods[i].Condition.Message = fmt.Sprintf("readiness
probe failed for Pod %s/%s: %s", pod.Namespace, pod.Name, err.Error())
runtimeReady = false
continue
@@ -623,7 +625,7 @@ func (action *monitorAction) probeReadiness(ctx
context.Context, environment *tr
runtimeReady = false
runtimeFailed = true
- readyCondition.Pods[i].Health =
append(readyCondition.Pods[i].Health, check)
+ readyCondition.DeprecatedPods[i].Health =
append(readyCondition.DeprecatedPods[i].Health, check)
}
}
}
diff --git a/pkg/controller/pipe/monitor.go b/pkg/controller/pipe/monitor.go
index 6ce401b97..26653b0bc 100644
--- a/pkg/controller/pipe/monitor.go
+++ b/pkg/controller/pipe/monitor.go
@@ -150,10 +150,11 @@ func (action *monitorAction) Handle(ctx context.Context,
pipe *v1.Pipe) (*v1.Pip
Message: fmt.Sprintf("Integration %q is in %q phase",
it.GetName(), target.Status.Phase),
}
+ //nolint:staticcheck
if condition :=
it.Status.GetCondition(v1.IntegrationConditionReady); condition != nil {
- if condition.Pods != nil {
- c.Pods = make([]v1.PodCondition, 0,
len(condition.Pods))
- c.Pods = append(c.Pods, condition.Pods...)
+ if condition.DeprecatedPods != nil {
+ c.Pods = make([]v1.PodCondition, 0,
len(condition.DeprecatedPods))
+ c.Pods = append(c.Pods,
condition.DeprecatedPods...)
}
}
@@ -183,9 +184,10 @@ func setPipeReadyCondition(kb *v1.Pipe, it
*v1.Integration) {
Message: message,
}
- if condition.Pods != nil {
- c.Pods = make([]v1.PodCondition, 0, len(condition.Pods))
- c.Pods = append(c.Pods, condition.Pods...)
+ //nolint:staticcheck
+ if condition.DeprecatedPods != nil {
+ c.Pods = make([]v1.PodCondition, 0,
len(condition.DeprecatedPods))
+ c.Pods = append(c.Pods, condition.DeprecatedPods...)
}
kb.Status.SetConditions(c)
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 0659b431b..782d66b9a 100644
--- a/pkg/resources/config/crd/bases/camel.apache.org_integrations.yaml
+++ b/pkg/resources/config/crd/bases/camel.apache.org_integrations.yaml
@@ -9314,9 +9314,12 @@ spec:
the transition.
type: string
pods:
- description: Pods collect health and conditions
information
- from the owned PODs
+ description: |-
+ DeprecatedPods collect health and conditions
information from the owned PODs
+
+ Deprecated: may be removed in future releases.
items:
+ description: 'Deprecated: may be removed in future
releases.'
properties:
condition:
description: PodCondition contains details for the
current
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 63f3e41e1..e6f42f5a7 100644
--- a/pkg/resources/config/crd/bases/camel.apache.org_pipes.yaml
+++ b/pkg/resources/config/crd/bases/camel.apache.org_pipes.yaml
@@ -11644,6 +11644,7 @@ spec:
description: Pods collect health and conditions
information
from the owned PODs
items:
+ description: 'Deprecated: may be removed in future
releases.'
properties:
condition:
description: PodCondition contains details for the
current
diff --git a/pkg/trait/prometheus.go b/pkg/trait/prometheus.go
index 6b7aba602..588c49059 100644
--- a/pkg/trait/prometheus.go
+++ b/pkg/trait/prometheus.go
@@ -52,7 +52,15 @@ func (t *prometheusTrait) Configure(e *Environment) (bool,
*TraitCondition, erro
return false, nil, nil
}
- return e.IntegrationInPhase(v1.IntegrationPhaseInitialization) ||
e.IntegrationInRunningPhases(), nil, nil
+ condition := NewIntegrationCondition(
+ "Prometheus",
+ v1.IntegrationConditionTraitInfo,
+ corev1.ConditionTrue,
+ TraitConfigurationReason,
+ "Prometheus trait is deprecated in favour of Camel Monitor
Operator project",
+ )
+
+ return e.IntegrationInPhase(v1.IntegrationPhaseInitialization) ||
e.IntegrationInRunningPhases(), condition, nil
}
func (t *prometheusTrait) Apply(e *Environment) error {
diff --git a/pkg/trait/prometheus_test.go b/pkg/trait/prometheus_test.go
index ce893e3fb..d88d08d75 100644
--- a/pkg/trait/prometheus_test.go
+++ b/pkg/trait/prometheus_test.go
@@ -37,22 +37,20 @@ import (
func TestConfigurePrometheusTraitInRightPhaseDoesSucceed(t *testing.T) {
trait, environment := createNominalPrometheusTest()
- configured, condition, err := trait.Configure(environment)
+ configured, _, err := trait.Configure(environment)
require.NoError(t, err)
assert.True(t, configured)
- assert.Nil(t, condition)
}
func TestConfigurePrometheusTraitInWrongPhaseDoesNotSucceed(t *testing.T) {
trait, environment := createNominalPrometheusTest()
environment.Integration.Status.Phase = v1.IntegrationPhaseBuildingKit
- configured, condition, err := trait.Configure(environment)
+ configured, _, err := trait.Configure(environment)
require.NoError(t, err)
assert.False(t, configured)
- assert.Nil(t, condition)
}
func TestApplyNominalPrometheusTraitDoesSucceed(t *testing.T) {
diff --git a/pkg/util/defaults/defaults.go b/pkg/util/defaults/defaults.go
index 83bbf7dae..25affd91a 100644
--- a/pkg/util/defaults/defaults.go
+++ b/pkg/util/defaults/defaults.go
@@ -29,7 +29,7 @@ const (
DefaultRuntimeVersion = "3.15.3"
// baseImage --
- baseImage =
"eclipse-temurin:17-jdk@sha256:9cb1a90ce9b7921fe79e544200b0ea1eab76943dd84fb284356ddb8c96e8f32a"
+ baseImage =
"eclipse-temurin:17-jdk@sha256:b04a8c5d46e210873ffd1af6ad5f4d62c69ed3a6736993556eae60bba1373a23"
// LocalRepository --
LocalRepository = "/etc/maven/m2"
diff --git a/script/Makefile b/script/Makefile
index ca2b18140..f0f66b0bf 100644
--- a/script/Makefile
+++ b/script/Makefile
@@ -51,7 +51,7 @@ BASE_IMAGE_NAME := eclipse-temurin
BASE_IMAGE_VERSION := 17-jdk
OFFICIAL_IMAGE_VERSION := 17-jdk
BASE_IMAGE_SHA_VERSION := 17-jdk
-BASE_IMAGE_SHA :=
sha256:9cb1a90ce9b7921fe79e544200b0ea1eab76943dd84fb284356ddb8c96e8f32a
+BASE_IMAGE_SHA :=
sha256:b04a8c5d46e210873ffd1af6ad5f4d62c69ed3a6736993556eae60bba1373a23
BASE_IMAGE := $(BASE_IMAGE_NAME):$(BASE_IMAGE_VERSION)$(if $(filter
$(BASE_IMAGE_VERSION),$(BASE_IMAGE_SHA_VERSION)),@$(BASE_IMAGE_SHA),)
LOCAL_REPOSITORY := /etc/maven/m2
OPENSHIFT_REGISTRY := image-registry.openshift-image-registry.svc:5000