You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2019/10/01 07:48:15 UTC
[camel-k] 01/05: fix(trait): Directly configure container env in
Jolokia trait
This is an automated email from the ASF dual-hosted git repository.
astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit bcba05fbcf3049148aa5157024523b75b87cd980
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Tue Sep 24 16:03:57 2019 +0200
fix(trait): Directly configure container env in Jolokia trait
---
pkg/trait/jolokia.go | 41 ++++++++++++++++++++---------------------
pkg/trait/jolokia_test.go | 16 ++++++++++------
2 files changed, 30 insertions(+), 27 deletions(-)
diff --git a/pkg/trait/jolokia.go b/pkg/trait/jolokia.go
index bfe6174..37721ba 100644
--- a/pkg/trait/jolokia.go
+++ b/pkg/trait/jolokia.go
@@ -79,15 +79,32 @@ func (t *jolokiaTrait) Configure(e *Environment) (bool, error) {
}
func (t *jolokiaTrait) Apply(e *Environment) (err error) {
+ containerName := defaultContainerName
+ dt := e.Catalog.GetTrait(containerTraitID)
+ if dt != nil {
+ containerName = dt.(*containerTrait).Name
+ }
+
+ container := e.Resources.GetContainerByName(containerName)
+ if container == nil {
+ e.Integration.Status.SetCondition(
+ v1alpha1.IntegrationConditionJolokiaAvailable,
+ corev1.ConditionFalse,
+ v1alpha1.IntegrationConditionContainerNotAvailableReason,
+ "",
+ )
+ return nil
+ }
+
if t.Enabled == nil || !*t.Enabled {
// Deactivate the Jolokia Java agent
// Note: the AB_JOLOKIA_OFF environment variable acts as an option flag
- envvar.SetVal(&e.EnvVars, "AB_JOLOKIA_OFF", "true")
+ envvar.SetVal(&container.Env, "AB_JOLOKIA_OFF", "true")
return nil
}
// Need to set it explicitly as it default to true
- envvar.SetVal(&e.EnvVars, "AB_JOLOKIA_AUTH_OPENSHIFT", "false")
+ envvar.SetVal(&container.Env, "AB_JOLOKIA_AUTH_OPENSHIFT", "false")
// Configure the Jolokia Java agent
// Populate first with the extra options
@@ -113,25 +130,7 @@ func (t *jolokiaTrait) Apply(e *Environment) (err error) {
for k, v := range options {
optionValues = append(optionValues, k+"="+v)
}
- envvar.SetVal(&e.EnvVars, "AB_JOLOKIA_OPTS", strings.Join(optionValues, ","))
-
- containerName := defaultContainerName
- dt := e.Catalog.GetTrait(containerTraitID)
- if dt != nil {
- containerName = dt.(*containerTrait).Name
- }
-
- container := e.Resources.GetContainerByName(containerName)
- if container == nil {
- e.Integration.Status.SetCondition(
- v1alpha1.IntegrationConditionJolokiaAvailable,
- corev1.ConditionFalse,
- v1alpha1.IntegrationConditionContainerNotAvailableReason,
- "",
- )
-
- return nil
- }
+ envvar.SetVal(&container.Env, "AB_JOLOKIA_OPTS", strings.Join(optionValues, ","))
containerPort := corev1.ContainerPort{
Name: "jolokia",
diff --git a/pkg/trait/jolokia_test.go b/pkg/trait/jolokia_test.go
index 30381f6..5474fde 100644
--- a/pkg/trait/jolokia_test.go
+++ b/pkg/trait/jolokia_test.go
@@ -113,12 +113,13 @@ func TestApplyJolokiaTraitNominalShouldSucceed(t *testing.T) {
err := trait.Apply(environment)
+ container := environment.Resources.GetContainerByName(defaultContainerName)
+
assert.Nil(t, err)
- test.EnvVarHasValue(t, environment.EnvVars, "AB_JOLOKIA_AUTH_OPENSHIFT", "false")
- test.EnvVarHasValue(t, environment.EnvVars, "AB_JOLOKIA_OPTS", "port=8778")
+ test.EnvVarHasValue(t, container.Env, "AB_JOLOKIA_AUTH_OPENSHIFT", "false")
+ test.EnvVarHasValue(t, container.Env, "AB_JOLOKIA_OPTS", "port=8778")
assert.Len(t, environment.Integration.Status.Conditions, 1)
- container := environment.Resources.GetContainerByName("integration")
assert.NotNil(t, container)
assert.Len(t, container.Ports, 1)
containerPort := container.Ports[0]
@@ -158,8 +159,10 @@ func TestApplyJolokiaTraitWithOptionShouldOverrideDefault(t *testing.T) {
err := trait.Apply(environment)
+ container := environment.Resources.GetContainerByName(defaultContainerName)
+
assert.Nil(t, err)
- ev := envvar.Get(environment.EnvVars, "AB_JOLOKIA_OPTS")
+ ev := envvar.Get(container.Env, "AB_JOLOKIA_OPTS")
assert.NotNil(t, ev)
assert.Contains(t, ev.Value, "port=8778", "host=explicit-host", "discoveryEnabled=true", "protocol=http", "caCert=.cacert")
assert.Contains(t, ev.Value, "extendedClientCheck=false", "clientPrincipal=cn:any", "useSslClientAuthentication=false")
@@ -181,8 +184,10 @@ func TestApplyDisabledJolokiaTraitShouldNotSucceed(t *testing.T) {
err := trait.Apply(environment)
+ container := environment.Resources.GetContainerByName(defaultContainerName)
+
assert.Nil(t, err)
- test.EnvVarHasValue(t, environment.EnvVars, "AB_JOLOKIA_OFF", "true")
+ test.EnvVarHasValue(t, container.Env, "AB_JOLOKIA_OFF", "true")
}
func TestSetDefaultJolokiaOptionShoudlNotOverrideOptionsMap(t *testing.T) {
@@ -283,7 +288,6 @@ func TestAddWrongTypeOptionToJolokiaOptionsDoesNothing(t *testing.T) {
}
func createNominalJolokiaTest() (*jolokiaTrait, *Environment) {
-
trait := newJolokiaTrait()
enabled := true
trait.Enabled = &enabled