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
The following commit(s) were added to refs/heads/master by this push: new 44aa75d chore(refactor): move JAVA_CLASSPATH configuration to classpath trait 44aa75d is described below commit 44aa75de23939380a74ba7c081c74b7b6709f316 Author: lburgazzoli <lburgazz...@gmail.com> AuthorDate: Tue Mar 12 13:02:09 2019 +0100 chore(refactor): move JAVA_CLASSPATH configuration to classpath trait --- pkg/trait/classpath.go | 42 +++++++++++++++++++++++++++++++++++++++++- pkg/trait/deployment.go | 17 ----------------- pkg/trait/knative_service.go | 15 --------------- pkg/trait/trait_catalog.go | 6 +++--- 4 files changed, 44 insertions(+), 36 deletions(-) diff --git a/pkg/trait/classpath.go b/pkg/trait/classpath.go index fd621b9..697e23b 100644 --- a/pkg/trait/classpath.go +++ b/pkg/trait/classpath.go @@ -20,12 +20,19 @@ package trait import ( "fmt" - "github.com/scylladb/go-set/strset" + "sort" + "strings" "github.com/apache/camel-k/pkg/apis/camel/v1alpha1" + "github.com/apache/camel-k/pkg/util/envvar" + + "github.com/scylladb/go-set/strset" "github.com/pkg/errors" + serving "github.com/knative/serving/pkg/apis/serving/v1alpha1" + appsv1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" k8sclient "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -89,5 +96,38 @@ func (t *classpathTrait) Apply(e *Environment) error { e.Classpath.Add("/deployments/dependencies/*") } + if e.Resources != nil { + // + // Add mounted volumes as resources + // + e.Resources.VisitDeployment(func(deployment *appsv1.Deployment) { + for i := 0; i < len(deployment.Spec.Template.Spec.Containers); i++ { + cp := e.Classpath.Copy() + + for _, m := range deployment.Spec.Template.Spec.Containers[i].VolumeMounts { + cp.Add(m.MountPath) + } + + t.setJavaClasspath(cp, &deployment.Spec.Template.Spec.Containers[i].Env) + } + }) + e.Resources.VisitKnativeService(func(service *serving.Service) { + for _, m := range service.Spec.RunLatest.Configuration.RevisionTemplate.Spec.Container.VolumeMounts { + e.Classpath.Add(m.MountPath) + } + + t.setJavaClasspath(e.Classpath, &service.Spec.RunLatest.Configuration.RevisionTemplate.Spec.Container.Env) + }) + } + return nil } + +func (t *classpathTrait) setJavaClasspath(cp *strset.Set, env *[]corev1.EnvVar) { + items := cp.List() + + // keep classpath sorted + sort.Strings(items) + + envvar.SetVal(env, "JAVA_CLASSPATH", strings.Join(items, ":")) +} diff --git a/pkg/trait/deployment.go b/pkg/trait/deployment.go index 6b580a9..dfcd9a7 100644 --- a/pkg/trait/deployment.go +++ b/pkg/trait/deployment.go @@ -18,7 +18,6 @@ limitations under the License. package trait import ( - "sort" "strings" "github.com/apache/camel-k/pkg/apis/camel/v1alpha1" @@ -180,21 +179,5 @@ func (t *deploymentTrait) getDeploymentFor(e *Environment) *appsv1.Deployment { &deployment.Spec.Template.Spec.Containers[0].VolumeMounts, ) - // - // Add mounted volumes as resources - // - for _, c := range deployment.Spec.Template.Spec.Containers { - for _, m := range c.VolumeMounts { - e.Classpath.Add(m.MountPath) - } - } - - cp := e.Classpath.List() - - // keep classpath sorted - sort.Strings(cp) - - envvar.SetVal(&deployment.Spec.Template.Spec.Containers[0].Env, "JAVA_CLASSPATH", strings.Join(cp, ":")) - return &deployment } diff --git a/pkg/trait/knative_service.go b/pkg/trait/knative_service.go index 4055c53..edb64ff 100644 --- a/pkg/trait/knative_service.go +++ b/pkg/trait/knative_service.go @@ -18,9 +18,7 @@ limitations under the License. package trait import ( - "sort" "strconv" - "strings" "github.com/apache/camel-k/pkg/util/kubernetes" @@ -214,18 +212,5 @@ func (t *knativeServiceTrait) getServiceFor(e *Environment) (*serving.Service, e envvar.SetVar(&svc.Spec.RunLatest.Configuration.RevisionTemplate.Spec.Container.Env, envVar) } - // Add mounted volumes as resources - for _, m := range svc.Spec.RunLatest.Configuration.RevisionTemplate.Spec.Container.VolumeMounts { - e.Classpath.Add(m.MountPath) - } - - cp := e.Classpath.List() - - // keep classpath sorted - sort.Strings(cp) - - // set the classpath - envvar.SetVal(environment, "JAVA_CLASSPATH", strings.Join(cp, ":")) - return &svc, nil } diff --git a/pkg/trait/trait_catalog.go b/pkg/trait/trait_catalog.go index b2e2e60..3cb1d1f 100644 --- a/pkg/trait/trait_catalog.go +++ b/pkg/trait/trait_catalog.go @@ -135,12 +135,12 @@ func (c *Catalog) traitsFor(environment *Environment) []Trait { c.tImages, c.tBuilder, c.tEnvironment, - c.tClasspath, c.tSpringBoot, c.tJolokia, c.tPrometheus, c.tDeployer, c.tDeployment, + c.tClasspath, c.tProbes, c.tService, c.tRoute, @@ -156,12 +156,12 @@ func (c *Catalog) traitsFor(environment *Environment) []Trait { c.tImages, c.tBuilder, c.tEnvironment, - c.tClasspath, c.tSpringBoot, c.tJolokia, c.tPrometheus, c.tDeployer, c.tDeployment, + c.tClasspath, c.tProbes, c.tService, c.tIngress, @@ -178,11 +178,11 @@ func (c *Catalog) traitsFor(environment *Environment) []Trait { c.tImages, c.tBuilder, c.tEnvironment, - c.tClasspath, c.tSpringBoot, c.tDeployer, c.tDeployment, c.tKnativeService, + c.tClasspath, c.tProbes, c.tIstio, c.tOwner,