This is an automated email from the ASF dual-hosted git repository. astefanutti pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 1b844f856f2973b7cf10c773c498654f8b435057 Author: Pasquale Congiusti <pasquale.congiu...@gmail.com> AuthorDate: Thu Sep 16 10:36:54 2021 +0200 chore(trait): changing configuration to runtime --- docs/modules/ROOT/nav.adoc | 2 +- docs/modules/traits/pages/runtime.adoc | 36 ++++++++++++++++++++++ pkg/cmd/run.go | 2 +- pkg/trait/{configuration.go => runtime.go} | 20 ++++++------ .../{configuration_test.go => runtime_test.go} | 12 ++++---- pkg/trait/trait_register.go | 2 +- pkg/trait/trait_test.go | 2 +- resources/traits.yaml | 32 +++++++++---------- 8 files changed, 72 insertions(+), 36 deletions(-) diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc index 620e5cb..3ff11a4 100644 --- a/docs/modules/ROOT/nav.adoc +++ b/docs/modules/ROOT/nav.adoc @@ -45,7 +45,6 @@ ** xref:traits:affinity.adoc[Affinity] ** xref:traits:builder.adoc[Builder] ** xref:traits:camel.adoc[Camel] -** xref:traits:configuration.adoc[Configuration] ** xref:traits:container.adoc[Container] ** xref:traits:cron.adoc[Cron] ** xref:traits:dependencies.adoc[Dependencies] @@ -72,6 +71,7 @@ ** xref:traits:pull-secret.adoc[Pull Secret] ** xref:traits:quarkus.adoc[Quarkus] ** xref:traits:route.adoc[Route] +** xref:traits:runtime.adoc[Runtime] ** xref:traits:service-binding.adoc[Service Binding] ** xref:traits:service.adoc[Service] ** xref:traits:toleration.adoc[Toleration] diff --git a/docs/modules/traits/pages/runtime.adoc b/docs/modules/traits/pages/runtime.adoc new file mode 100755 index 0000000..7e9bbfb --- /dev/null +++ b/docs/modules/traits/pages/runtime.adoc @@ -0,0 +1,36 @@ += Runtime Trait + +// Start of autogenerated code - DO NOT EDIT! (description) +The runtime trait is used to customize the Integration runtime configuration such as properties and resources. + + +This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**. + +WARNING: The runtime trait is a *platform trait*: disabling it may compromise the platform functionality. + +// End of autogenerated code - DO NOT EDIT! (description) +// Start of autogenerated code - DO NOT EDIT! (configuration) +== Configuration + +Trait properties can be specified when running any integration with the CLI: +[source,console] +---- +$ kamel run --trait runtime.[key]=[value] --trait runtime.[key2]=[value2] integration.groovy +---- +The following configuration options are available: + +[cols="2m,1m,5a"] +|=== +|Property | Type | Description + +| runtime.enabled +| bool +| Can be used to enable or disable a trait. All traits share this common property. + +| runtime.properties +| []string +| A list of properties to be provided to the Integration runtime + +|=== + +// End of autogenerated code - DO NOT EDIT! (configuration) diff --git a/pkg/cmd/run.go b/pkg/cmd/run.go index 52971bd..f2fcd07 100644 --- a/pkg/cmd/run.go +++ b/pkg/cmd/run.go @@ -582,7 +582,7 @@ func (o *runCmdOptions) createOrUpdateIntegration(cmd *cobra.Command, c client.C } for _, key := range props.Keys() { kv := fmt.Sprintf("%s=%s", key, props.GetString(key, "")) - if propsTraits, err := convertToTraitParameter(kv, "configuration.properties"); err != nil { + if propsTraits, err := convertToTraitParameter(kv, "runtime.properties"); err != nil { return nil, err } else { o.Traits = append(o.Traits, propsTraits...) diff --git a/pkg/trait/configuration.go b/pkg/trait/runtime.go similarity index 81% rename from pkg/trait/configuration.go rename to pkg/trait/runtime.go index 74c2f10..a4cee7f 100644 --- a/pkg/trait/configuration.go +++ b/pkg/trait/runtime.go @@ -27,22 +27,22 @@ import ( ctrl "sigs.k8s.io/controller-runtime/pkg/client" ) -// The configuration trait is used to customize the Integration configuration such as properties and resources. +// The runtime trait is used to customize the Integration runtime configuration such as properties and resources. // -// +camel-k:trait=configuration -type configurationTrait struct { +// +camel-k:trait=runtime +type runtimeTrait struct { BaseTrait `property:",squash"` // A list of properties to be provided to the Integration runtime Properties []string `property:"properties" json:"properties,omitempty"` } -func newConfigurationTrait() Trait { - return &configurationTrait{ - BaseTrait: NewBaseTrait("configuration", 700), +func newRuntimeTrait() Trait { + return &runtimeTrait{ + BaseTrait: NewBaseTrait("runtime", 700), } } -func (t *configurationTrait) Configure(e *Environment) (bool, error) { +func (t *runtimeTrait) Configure(e *Environment) (bool, error) { if t.Enabled != nil && !*t.Enabled { return false, nil } @@ -50,7 +50,7 @@ func (t *configurationTrait) Configure(e *Environment) (bool, error) { return true, nil } -func (t *configurationTrait) Apply(e *Environment) error { +func (t *runtimeTrait) Apply(e *Environment) error { if e.InPhase(v1.IntegrationKitPhaseReady, v1.IntegrationPhaseDeploying) || e.InPhase(v1.IntegrationKitPhaseReady, v1.IntegrationPhaseRunning) { // Get all resources @@ -65,11 +65,11 @@ func (t *configurationTrait) Apply(e *Environment) error { return nil } -func (t *configurationTrait) IsPlatformTrait() bool { +func (t *runtimeTrait) IsPlatformTrait() bool { return true } -func (t *configurationTrait) computeUserProperties(e *Environment) []ctrl.Object { +func (t *runtimeTrait) computeUserProperties(e *Environment) []ctrl.Object { maps := make([]ctrl.Object, 0) // combine properties of integration with kit, integration diff --git a/pkg/trait/configuration_test.go b/pkg/trait/runtime_test.go similarity index 87% rename from pkg/trait/configuration_test.go rename to pkg/trait/runtime_test.go index 4e457c8..b4f6108 100644 --- a/pkg/trait/configuration_test.go +++ b/pkg/trait/runtime_test.go @@ -31,10 +31,10 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func TestApplyConfigurationTraitWithProperties(t *testing.T) { - configurationTrait, environment := createNominalConfigurationTest() - configurationTrait.Properties = []string{"a=b", "c=d"} - err := configurationTrait.Apply(environment) +func TestApplyruntimeTraitWithProperties(t *testing.T) { + runtimeTrait, environment := createNominalRuntimeTest() + runtimeTrait.Properties = []string{"a=b", "c=d"} + err := runtimeTrait.Apply(environment) assert.Nil(t, err) userPropertiesCm := environment.Resources.GetConfigMap(func(cm *corev1.ConfigMap) bool { @@ -46,8 +46,8 @@ func TestApplyConfigurationTraitWithProperties(t *testing.T) { }, userPropertiesCm.Data) } -func createNominalConfigurationTest() (*configurationTrait, *Environment) { - trait := newConfigurationTrait().(*configurationTrait) +func createNominalRuntimeTest() (*runtimeTrait, *Environment) { + trait := newRuntimeTrait().(*runtimeTrait) trait.Enabled = BoolP(true) trait.Client, _ = test.NewFakeClient(&appsv1.Deployment{ ObjectMeta: metav1.ObjectMeta{ diff --git a/pkg/trait/trait_register.go b/pkg/trait/trait_register.go index 530953d..1a3fe4c 100644 --- a/pkg/trait/trait_register.go +++ b/pkg/trait/trait_register.go @@ -23,7 +23,6 @@ func init() { AddToTraits(newAffinityTrait) AddToTraits(newBuilderTrait) AddToTraits(newCamelTrait) - AddToTraits(newConfigurationTrait) AddToTraits(newContainerTrait) AddToTraits(newCronTrait) AddToTraits(newDependenciesTrait) @@ -50,6 +49,7 @@ func init() { AddToTraits(newPullSecretTrait) AddToTraits(newQuarkusTrait) AddToTraits(newRouteTrait) + AddToTraits(newRuntimeTrait) AddToTraits(newServiceTrait) AddToTraits(newServiceBindingTrait) AddToTraits(newTolerationTrait) diff --git a/pkg/trait/trait_test.go b/pkg/trait/trait_test.go index 2936ca6..cad1028 100644 --- a/pkg/trait/trait_test.go +++ b/pkg/trait/trait_test.go @@ -508,7 +508,7 @@ func TestOnlySomeTraitsInfluenceBuild(t *testing.T) { func TestOnlySomeTraitsArePlatform(t *testing.T) { c := NewTraitTestCatalog() - platformTraits := []string{"builder", "camel", "jvm", "configuration", "container", "dependencies", "deployer", + platformTraits := []string{"builder", "camel", "jvm", "runtime", "container", "dependencies", "deployer", "deployment", "environment", "error-handler", "kamelets", "openapi", "owner", "platform", "quarkus"} for _, trait := range c.AllTraits() { diff --git a/resources/traits.yaml b/resources/traits.yaml index 6556217..92be833 100755 --- a/resources/traits.yaml +++ b/resources/traits.yaml @@ -73,22 +73,6 @@ traits: type: string description: The camel-k-runtime version to use for the integration. It overrides the default version set in the Integration Platform. -- name: configuration - platform: true - profiles: - - Kubernetes - - Knative - - OpenShift - description: The configuration trait is used to customize the Integration configuration - such as properties and resources. - properties: - - name: enabled - type: bool - description: Can be used to enable or disable a trait. All traits share this common - property. - - name: properties - type: '[]string' - description: A list of properties to be provided to the Integration runtime - name: container platform: true profiles: @@ -928,6 +912,22 @@ traits: description: To configure how to deal with insecure traffic, e.g. `Allow`, `Disable` or `Redirect` traffic.Refer to the OpenShift route documentation for additional information. +- name: runtime + platform: true + profiles: + - Kubernetes + - Knative + - OpenShift + description: The runtime trait is used to customize the Integration runtime configuration + such as properties and resources. + properties: + - name: enabled + type: bool + description: Can be used to enable or disable a trait. All traits share this common + property. + - name: properties + type: '[]string' + description: A list of properties to be provided to the Integration runtime - name: service-binding platform: false profiles: