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 2023/08/11 06:23:50 UTC

[camel-k] branch main updated: feat(trait): prepare to remove runtime dependencies

This is an automated email from the ASF dual-hosted git repository.

pcongiusti 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 ad7887659 feat(trait): prepare to remove runtime dependencies
ad7887659 is described below

commit ad788765921225aef028d71d73765156fceb4713
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Thu Aug 10 11:59:18 2023 +0200

    feat(trait): prepare to remove runtime dependencies
    
    Ref #4166
---
 addons/vault/aws/aws_secrets_manager.go   |  2 +-
 addons/vault/azure/azure_key_vault.go     |  2 +-
 addons/vault/gcp/gcp_secret_manager.go    |  2 +-
 addons/vault/hashicorp/hashicorp_vault.go |  2 +-
 pkg/apis/camel/v1/common_types.go         | 47 ++++++++++++++++++-------------
 pkg/resources/resources.go                | 17 +++++++++++
 pkg/trait/jolokia.go                      |  6 ++--
 pkg/trait/knative.go                      |  4 +++
 pkg/trait/prometheus.go                   |  3 +-
 9 files changed, 57 insertions(+), 28 deletions(-)

diff --git a/addons/vault/aws/aws_secrets_manager.go b/addons/vault/aws/aws_secrets_manager.go
index e2bad5965..8cbb68efe 100644
--- a/addons/vault/aws/aws_secrets_manager.go
+++ b/addons/vault/aws/aws_secrets_manager.go
@@ -100,7 +100,7 @@ func (t *awsSecretsManagerTrait) Configure(environment *trait.Environment) (bool
 func (t *awsSecretsManagerTrait) Apply(environment *trait.Environment) error {
 	if environment.IntegrationInPhase(v1.IntegrationPhaseInitialization) {
 		util.StringSliceUniqueAdd(&environment.Integration.Status.Capabilities, v1.CapabilityAwsSecretsManager)
-		// Add the Camel Quarkus AWS Secrets Manager
+		// TODO remove dependencies after runtime > 2.16.0
 		util.StringSliceUniqueAdd(&environment.Integration.Status.Dependencies, "mvn:org.apache.camel.quarkus:camel-quarkus-aws-secrets-manager")
 	}
 
diff --git a/addons/vault/azure/azure_key_vault.go b/addons/vault/azure/azure_key_vault.go
index 24db92014..2deca3359 100644
--- a/addons/vault/azure/azure_key_vault.go
+++ b/addons/vault/azure/azure_key_vault.go
@@ -106,7 +106,7 @@ func (t *azureKeyVaultTrait) Configure(environment *trait.Environment) (bool, er
 func (t *azureKeyVaultTrait) Apply(environment *trait.Environment) error {
 	if environment.IntegrationInPhase(v1.IntegrationPhaseInitialization) {
 		util.StringSliceUniqueAdd(&environment.Integration.Status.Capabilities, v1.CapabilityAzureKeyVault)
-		// Add the Camel Quarkus Azure Key Vault dependency
+		// TODO remove dependencies after runtime > 2.16.0
 		util.StringSliceUniqueAdd(&environment.Integration.Status.Dependencies, "mvn:org.apache.camel.quarkus:camel-quarkus-azure-key-vault")
 	}
 
diff --git a/addons/vault/gcp/gcp_secret_manager.go b/addons/vault/gcp/gcp_secret_manager.go
index 6de0dd9fb..a2c118812 100644
--- a/addons/vault/gcp/gcp_secret_manager.go
+++ b/addons/vault/gcp/gcp_secret_manager.go
@@ -102,7 +102,7 @@ func (t *gcpSecretManagerTrait) Configure(environment *trait.Environment) (bool,
 func (t *gcpSecretManagerTrait) Apply(environment *trait.Environment) error {
 	if environment.IntegrationInPhase(v1.IntegrationPhaseInitialization) {
 		util.StringSliceUniqueAdd(&environment.Integration.Status.Capabilities, v1.CapabilityGcpSecretManager)
-		// Add the Camel Quarkus Google Secrets Manager dependency
+		// TODO remove dependencies after runtime > 2.16.0
 		util.StringSliceUniqueAdd(&environment.Integration.Status.Dependencies, "mvn:org.apache.camel.quarkus:camel-quarkus-google-secret-manager")
 	}
 
diff --git a/addons/vault/hashicorp/hashicorp_vault.go b/addons/vault/hashicorp/hashicorp_vault.go
index 43e678082..1b5bd58fd 100644
--- a/addons/vault/hashicorp/hashicorp_vault.go
+++ b/addons/vault/hashicorp/hashicorp_vault.go
@@ -78,7 +78,7 @@ func (t *hashicorpVaultTrait) Configure(environment *trait.Environment) (bool, e
 func (t *hashicorpVaultTrait) Apply(environment *trait.Environment) error {
 	if environment.IntegrationInPhase(v1.IntegrationPhaseInitialization) {
 		util.StringSliceUniqueAdd(&environment.Integration.Status.Capabilities, v1.CapabilityHashicorpVault)
-		// Add the Camel Quarkus AWS Secrets Manager
+		// TODO remove dependencies after runtime > 2.16.0
 		util.StringSliceUniqueAdd(&environment.Integration.Status.Dependencies, "mvn:org.apache.camel.quarkus:camel-quarkus-hashicorp-vault")
 	}
 
diff --git a/pkg/apis/camel/v1/common_types.go b/pkg/apis/camel/v1/common_types.go
index e535e45bb..0f3e2c8a3 100644
--- a/pkg/apis/camel/v1/common_types.go
+++ b/pkg/apis/camel/v1/common_types.go
@@ -319,6 +319,7 @@ type RuntimeSpec struct {
 }
 
 // Capability is a particular feature which requires a well known set of dependencies
+// which are specified in the runtime catalog
 type Capability struct {
 	Dependencies []MavenArtifact `json:"dependencies" yaml:"dependencies"`
 }
@@ -327,32 +328,38 @@ const (
 	// ServiceTypeUser service user type label marker
 	ServiceTypeUser = "user"
 
-	// CapabilityRest defines the REST API service exposure capability
-	CapabilityRest = "rest"
-	// CapabilityHealth defines the health monitoring capability
-	CapabilityHealth = "health"
-	// CapabilityCron defines the cron execution capability
-	CapabilityCron = "cron"
-	// CapabilityPlatformHTTP defines the http service exposure capability
-	CapabilityPlatformHTTP = "platform-http"
-	// CapabilityCircuitBreaker defines the circuit breaker capability
-	CapabilityCircuitBreaker = "circuit-breaker"
-	// CapabilityTracing defines the tracing (opentracing) capability
-	CapabilityTracing = "tracing"
-	// CapabilityTelemetry defines the telemetry (opentelemetry) capability
-	CapabilityTelemetry = "telemetry"
-	// CapabilityMaster defines the master capability
-	CapabilityMaster = "master"
-	// CapabilityResumeKafka defines the resume capability
-	CapabilityResumeKafka = "resume-kafka"
+	// CapabilityAzureKeyVault defines the azure key vault capability
+	CapabilityAzureKeyVault = "azure-key-vault"
 	// CapabilityAwsSecretsManager defines the aws secrets manager capability
 	CapabilityAwsSecretsManager = "aws-secrets-manager"
+	// CapabilityCircuitBreaker defines the circuit breaker capability
+	CapabilityCircuitBreaker = "circuit-breaker"
+	// CapabilityCron defines the cron execution capability
+	CapabilityCron = "cron"
 	// CapabilityGcpSecretManager defines the gcp secret manager capability
 	CapabilityGcpSecretManager = "gcp-secret-manager"
-	// CapabilityAzureKeyVault defines the azure key vault capability
-	CapabilityAzureKeyVault = "azure-key-vault"
 	// CapabilityHashicorpVault defines the Hashicorp Vault capability
 	CapabilityHashicorpVault = "hashicorp-vault"
+	// CapabilityHealth defines the health monitoring capability
+	CapabilityHealth = "health"
+	// CapabilityJolokia --
+	CapabilityJolokia = "jolokia"
+	// CapabilityKnative --
+	CapabilityKnative = "knative"
+	// CapabilityMaster defines the master capability
+	CapabilityMaster = "master"
+	// CapabilityPrometheus --
+	CapabilityPrometheus = "prometheus"
+	// CapabilityRest defines the REST API service exposure capability
+	CapabilityRest = "rest"
+	// CapabilityResumeKafka defines the resume capability
+	CapabilityResumeKafka = "resume-kafka"
+	// CapabilityPlatformHTTP defines the http service exposure capability
+	CapabilityPlatformHTTP = "platform-http"
+	// CapabilityTelemetry defines the telemetry (opentelemetry) capability
+	CapabilityTelemetry = "telemetry"
+	// CapabilityTracing defines the tracing (opentracing) capability
+	CapabilityTracing = "tracing"
 )
 
 // +kubebuilder:object:generate=false
diff --git a/pkg/resources/resources.go b/pkg/resources/resources.go
index c7f15c1cb..f450c2c29 100644
--- a/pkg/resources/resources.go
+++ b/pkg/resources/resources.go
@@ -174,6 +174,18 @@ var assets = func() http.FileSystem {
 			name:    "manager",
 			modTime: time.Time{},
 		},
+		"/manager/bundle": &vfsgen۰DirInfo{
+			name:    "bundle",
+			modTime: time.Time{},
+		},
+		"/manager/bundle/manifests": &vfsgen۰DirInfo{
+			name:    "manifests",
+			modTime: time.Time{},
+		},
+		"/manager/bundle/metadata": &vfsgen۰DirInfo{
+			name:    "metadata",
+			modTime: time.Time{},
+		},
 		"/manager/operator-deployment.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "operator-deployment.yaml",
 			modTime:          time.Time{},
@@ -672,6 +684,7 @@ var assets = func() http.FileSystem {
 		fs["/crd/bases/camel.apache.org_pipes.yaml"].(os.FileInfo),
 	}
 	fs["/manager"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
+		fs["/manager/bundle"].(os.FileInfo),
 		fs["/manager/operator-deployment.yaml"].(os.FileInfo),
 		fs["/manager/operator-service-account.yaml"].(os.FileInfo),
 		fs["/manager/patch-image-pull-policy-always.yaml"].(os.FileInfo),
@@ -683,6 +696,10 @@ var assets = func() http.FileSystem {
 		fs["/manager/patch-toleration.yaml"].(os.FileInfo),
 		fs["/manager/patch-watch-namespace-global.yaml"].(os.FileInfo),
 	}
+	fs["/manager/bundle"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
+		fs["/manager/bundle/manifests"].(os.FileInfo),
+		fs["/manager/bundle/metadata"].(os.FileInfo),
+	}
 	fs["/prometheus"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
 		fs["/prometheus/operator-pod-monitor.yaml"].(os.FileInfo),
 		fs["/prometheus/operator-prometheus-rule.yaml"].(os.FileInfo),
diff --git a/pkg/trait/jolokia.go b/pkg/trait/jolokia.go
index 22f5187eb..9e37c0f68 100644
--- a/pkg/trait/jolokia.go
+++ b/pkg/trait/jolokia.go
@@ -54,15 +54,15 @@ func (t *jolokiaTrait) Configure(e *Environment) (bool, error) {
 
 func (t *jolokiaTrait) Apply(e *Environment) error {
 	if e.IntegrationInPhase(v1.IntegrationPhaseInitialization) {
-		// Add the Camel management and Jolokia agent dependencies
-		// Also add the Camel JAXB dependency, that's required by Hawtio
+		util.StringSliceUniqueAdd(&e.Integration.Status.Capabilities, v1.CapabilityJolokia)
 
+		// TODO remove dependencies after runtime > 2.16.0
 		if e.CamelCatalog.Runtime.Provider == v1.RuntimeProviderQuarkus {
 			util.StringSliceUniqueAdd(&e.Integration.Status.Dependencies, "camel-quarkus:management")
 			util.StringSliceUniqueAdd(&e.Integration.Status.Dependencies, "camel:jaxb")
 		}
-
 		util.StringSliceUniqueAdd(&e.Integration.Status.Dependencies, "mvn:org.jolokia:jolokia-jvm")
+		//
 
 		return nil
 	}
diff --git a/pkg/trait/knative.go b/pkg/trait/knative.go
index 4a06f4430..ba8d44aef 100644
--- a/pkg/trait/knative.go
+++ b/pkg/trait/knative.go
@@ -180,6 +180,10 @@ func (t *knativeTrait) Configure(e *Environment) (bool, error) {
 }
 
 func (t *knativeTrait) Apply(e *Environment) error {
+	if e.IntegrationInPhase(v1.IntegrationPhaseInitialization) {
+		util.StringSliceUniqueAdd(&e.Integration.Status.Capabilities, v1.CapabilityKnative)
+	}
+	// TODO remove dependencies after runtime > 2.16.0
 	if pointer.BoolDeref(t.SinkBinding, false) {
 		util.StringSliceUniqueAdd(&e.Integration.Status.Dependencies, "camel:knative")
 		util.StringSliceUniqueAdd(&e.Integration.Status.Dependencies, "mvn:org.apache.camel.k:camel-k-knative-impl")
diff --git a/pkg/trait/prometheus.go b/pkg/trait/prometheus.go
index 70a0dba44..8446b670e 100644
--- a/pkg/trait/prometheus.go
+++ b/pkg/trait/prometheus.go
@@ -55,7 +55,8 @@ func (t *prometheusTrait) Configure(e *Environment) (bool, error) {
 
 func (t *prometheusTrait) Apply(e *Environment) error {
 	if e.IntegrationInPhase(v1.IntegrationPhaseInitialization) {
-		// Add the Camel Quarkus Micrometer extension and micrometer registry for prometheus
+		util.StringSliceUniqueAdd(&e.Integration.Status.Capabilities, v1.CapabilityPrometheus)
+		// TODO remove dependencies after runtime > 2.16.0
 		util.StringSliceUniqueAdd(&e.Integration.Status.Dependencies, "mvn:org.apache.camel.quarkus:camel-quarkus-micrometer")
 		util.StringSliceUniqueAdd(&e.Integration.Status.Dependencies, "mvn:io.micrometer:micrometer-registry-prometheus")
 		return nil