This is an automated email from the ASF dual-hosted git repository. nferraro pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 15f2a91d9fc9ccbbe20cd04f4c62a88a435f939d Author: lburgazzoli <lburgazz...@gmail.com> AuthorDate: Thu Dec 13 00:48:47 2018 +0100 Inject camel-k version as environment variable #285 --- pkg/trait/environment.go | 24 ++++++++++++++++-------- pkg/trait/environment_test.go | 15 +++++++++++++++ 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/pkg/trait/environment.go b/pkg/trait/environment.go index f97ee13..9e05d45 100644 --- a/pkg/trait/environment.go +++ b/pkg/trait/environment.go @@ -19,6 +19,7 @@ package trait import ( "github.com/apache/camel-k/pkg/apis/camel/v1alpha1" + "github.com/apache/camel-k/version" appsv1 "k8s.io/api/apps/v1" "k8s.io/api/core/v1" ) @@ -29,8 +30,9 @@ type environmentTrait struct { } const ( - envVarNamespace = "NAMESPACE" - envVarPodName = "POD_NAME" + envVarNamespace = "NAMESPACE" + envVarPodName = "POD_NAME" + envVarCamelKVersion = "CAMEL_K_VERSION" ) func newEnvironmentTrait() *environmentTrait { @@ -51,10 +53,16 @@ func (t *environmentTrait) Configure(e *Environment) (bool, error) { } func (t *environmentTrait) Apply(e *Environment) error { - if t.ContainerMeta { - e.Resources.VisitDeployment(func(deployment *appsv1.Deployment) { - for i := 0; i < len(deployment.Spec.Template.Spec.Containers); i++ { - c := &deployment.Spec.Template.Spec.Containers[i] + e.Resources.VisitDeployment(func(deployment *appsv1.Deployment) { + for i := 0; i < len(deployment.Spec.Template.Spec.Containers); i++ { + c := &deployment.Spec.Template.Spec.Containers[i] + + c.Env = append(c.Env, v1.EnvVar{ + Name: envVarCamelKVersion, + Value: version.Version, + }) + + if t.ContainerMeta { c.Env = append(c.Env, v1.EnvVar{ Name: envVarNamespace, ValueFrom: &v1.EnvVarSource{ @@ -72,8 +80,8 @@ func (t *environmentTrait) Apply(e *Environment) error { }, }) } - }) - } + } + }) return nil } diff --git a/pkg/trait/environment_test.go b/pkg/trait/environment_test.go index 12fdd31..4707a96 100644 --- a/pkg/trait/environment_test.go +++ b/pkg/trait/environment_test.go @@ -55,6 +55,7 @@ func TestDefaultEnvironment(t *testing.T) { ns := false name := false + ck := false env.Resources.VisitDeployment(func(deployment *v1.Deployment) { for _, e := range deployment.Spec.Template.Spec.Containers[0].Env { @@ -64,11 +65,15 @@ func TestDefaultEnvironment(t *testing.T) { if e.Name == envVarPodName { name = true } + if e.Name == envVarCamelKVersion { + ck = true + } } }) assert.True(t, ns) assert.True(t, name) + assert.True(t, ck) } func TestEnabledContainerMetaDataEnvVars(t *testing.T) { @@ -105,6 +110,7 @@ func TestEnabledContainerMetaDataEnvVars(t *testing.T) { ns := false name := false + ck := false env.Resources.VisitDeployment(func(deployment *v1.Deployment) { for _, e := range deployment.Spec.Template.Spec.Containers[0].Env { @@ -114,11 +120,15 @@ func TestEnabledContainerMetaDataEnvVars(t *testing.T) { if e.Name == envVarPodName { name = true } + if e.Name == envVarCamelKVersion { + ck = true + } } }) assert.True(t, ns) assert.True(t, name) + assert.True(t, ck) } func TestDisabledContainerMetaDataEnvVars(t *testing.T) { @@ -155,6 +165,7 @@ func TestDisabledContainerMetaDataEnvVars(t *testing.T) { ns := false name := false + ck := false env.Resources.VisitDeployment(func(deployment *v1.Deployment) { for _, e := range deployment.Spec.Template.Spec.Containers[0].Env { @@ -164,9 +175,13 @@ func TestDisabledContainerMetaDataEnvVars(t *testing.T) { if e.Name == envVarPodName { name = true } + if e.Name == envVarCamelKVersion { + ck = true + } } }) assert.False(t, ns) assert.False(t, name) + assert.True(t, ck) }