Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(trait): prepare to remove runtime dependencies #4663

Merged
merged 1 commit into from
Aug 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion addons/vault/aws/aws_secrets_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -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")
}

Expand Down
2 changes: 1 addition & 1 deletion addons/vault/azure/azure_key_vault.go
Original file line number Diff line number Diff line change
Expand Up @@ -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")
}

Expand Down
2 changes: 1 addition & 1 deletion addons/vault/gcp/gcp_secret_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -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")
}

Expand Down
2 changes: 1 addition & 1 deletion addons/vault/hashicorp/hashicorp_vault.go
Original file line number Diff line number Diff line change
Expand Up @@ -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")
}

Expand Down
47 changes: 27 additions & 20 deletions pkg/apis/camel/v1/common_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"`
}
Expand All @@ -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
Expand Down
17 changes: 17 additions & 0 deletions pkg/resources/resources.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions pkg/trait/jolokia.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
4 changes: 4 additions & 0 deletions pkg/trait/knative.go
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
3 changes: 2 additions & 1 deletion pkg/trait/prometheus.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading