Skip to content

Commit

Permalink
Inject camel-k version as environment variable #285
Browse files Browse the repository at this point in the history
  • Loading branch information
lburgazzoli authored and nicolaferraro committed Dec 14, 2018
1 parent 3cc8a80 commit 15f2a91
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 8 deletions.
24 changes: 16 additions & 8 deletions pkg/trait/environment.go
Expand Up @@ -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"
)
Expand All @@ -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 {
Expand All @@ -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{
Expand All @@ -72,8 +80,8 @@ func (t *environmentTrait) Apply(e *Environment) error {
},
})
}
})
}
}
})

return nil
}
15 changes: 15 additions & 0 deletions pkg/trait/environment_test.go
Expand Up @@ -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 {
Expand All @@ -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) {
Expand Down Expand Up @@ -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 {
Expand All @@ -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) {
Expand Down Expand Up @@ -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 {
Expand All @@ -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)
}

0 comments on commit 15f2a91

Please sign in to comment.