Skip to content

Commit

Permalink
feat(trait): prepare to remove runtime dependencies
Browse files Browse the repository at this point in the history
Ref #4166
  • Loading branch information
squakez committed Aug 11, 2023
1 parent 3477174 commit ad78876
Show file tree
Hide file tree
Showing 9 changed files with 57 additions and 28 deletions.
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

0 comments on commit ad78876

Please sign in to comment.