You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2019/05/14 14:26:23 UTC
[camel-k] branch master updated: remove support for integration
container image creation #650
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 64ee01a remove support for integration container image creation #650
64ee01a is described below
commit 64ee01a4a1d7707afceb518df3a3ce95527557d5
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Tue May 14 10:31:07 2019 +0200
remove support for integration container image creation #650
---
pkg/apis/camel/v1alpha1/integration_types.go | 4 -
pkg/controller/integration/build_image.go | 232 ------------------
.../integration/integration_controller.go | 1 -
pkg/trait/builder.go | 45 +---
pkg/trait/deployer.go | 5 +-
pkg/trait/deployment.go | 23 +-
pkg/trait/knative_service.go | 2 +-
pkg/trait/knative_service_vol.go | 4 +-
pkg/trait/knative_service_vol_test.go | 113 ---------
pkg/trait/trait_test.go | 2 +-
pkg/trait/trait_types.go | 271 ++++++++++-----------
11 files changed, 150 insertions(+), 552 deletions(-)
diff --git a/pkg/apis/camel/v1alpha1/integration_types.go b/pkg/apis/camel/v1alpha1/integration_types.go
index 2edd3d8..7b6b548 100644
--- a/pkg/apis/camel/v1alpha1/integration_types.go
+++ b/pkg/apis/camel/v1alpha1/integration_types.go
@@ -132,10 +132,6 @@ const (
IntegrationPhaseBuildingContext IntegrationPhase = "Building Context"
// IntegrationPhaseResolvingContext --
IntegrationPhaseResolvingContext IntegrationPhase = "Resolving Context"
- // IntegrationPhaseBuildImageSubmitted --
- IntegrationPhaseBuildImageSubmitted IntegrationPhase = "Build Image Submitted"
- // IntegrationPhaseBuildImageRunning --
- IntegrationPhaseBuildImageRunning IntegrationPhase = "Build Image Running"
// IntegrationPhaseDeploying --
IntegrationPhaseDeploying IntegrationPhase = "Deploying"
// IntegrationPhaseRunning --
diff --git a/pkg/controller/integration/build_image.go b/pkg/controller/integration/build_image.go
deleted file mode 100644
index 7c2a9de..0000000
--- a/pkg/controller/integration/build_image.go
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package integration
-
-import (
- "context"
- "fmt"
-
- k8serrors "k8s.io/apimachinery/pkg/api/errors"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/types"
-
- "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
-
- "github.com/pkg/errors"
-
- "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
- "github.com/apache/camel-k/pkg/builder"
- "github.com/apache/camel-k/pkg/trait"
- "github.com/apache/camel-k/pkg/util/digest"
- "github.com/apache/camel-k/pkg/util/kubernetes"
-)
-
-// NewBuildImageAction create an action that handles integration image build
-func NewBuildImageAction() Action {
- return &buildImageAction{}
-}
-
-type buildImageAction struct {
- baseAction
-}
-
-func (action *buildImageAction) Name() string {
- return "build-image"
-}
-
-func (action *buildImageAction) CanHandle(integration *v1alpha1.Integration) bool {
- return integration.Status.Phase == v1alpha1.IntegrationPhaseBuildImageSubmitted ||
- integration.Status.Phase == v1alpha1.IntegrationPhaseBuildImageRunning
-}
-
-func (action *buildImageAction) Handle(ctx context.Context, integration *v1alpha1.Integration) error {
- if integration.Status.Phase == v1alpha1.IntegrationPhaseBuildImageSubmitted {
- return action.handleBuildImageSubmitted(ctx, integration)
- } else if integration.Status.Phase == v1alpha1.IntegrationPhaseBuildImageRunning {
- return action.handleBuildImageRunning(ctx, integration)
- }
-
- return nil
-}
-
-func (action *buildImageAction) handleBuildImageSubmitted(ctx context.Context, integration *v1alpha1.Integration) error {
- // in this phase the integration need to be associated to a context whose image
- // will be used as base image for the integration images
- if integration.Status.Context == "" {
- return fmt.Errorf("context is not set for integration: %s", integration.Name)
- }
-
- // look-up the integration context associated to this integration, this is needed
- // to determine the base image
- ictx, err := kubernetes.GetIntegrationContext(ctx, action.client, integration.Status.Context, integration.Namespace)
- if err != nil || ictx == nil {
- return errors.Wrapf(err, "unable to find integration context %s, %s", integration.Status.Context, err)
- }
-
- build := &v1alpha1.Build{}
- err = action.client.Get(ctx, types.NamespacedName{Namespace: integration.Namespace, Name: integration.Name}, build)
- if err != nil && !k8serrors.IsNotFound(err) {
- return err
- }
-
- if err != nil && k8serrors.IsNotFound(err) ||
- build.Status.Phase == v1alpha1.BuildPhaseError ||
- build.Status.Phase == v1alpha1.BuildPhaseInterrupted ||
- build.Status.Phase == v1alpha1.BuildPhaseSucceeded {
- env, err := trait.Apply(ctx, action.client, integration, ictx)
- if err != nil {
- return err
- }
- if env.CamelCatalog == nil {
- return errors.New("undefined camel catalog")
- }
-
- // This build do not require to determine dependencies nor a project, the
- // builder step do remove them
-
- build = &v1alpha1.Build{
- TypeMeta: metav1.TypeMeta{
- APIVersion: "camel.apache.org/v1alpha1",
- Kind: "Build",
- },
- ObjectMeta: metav1.ObjectMeta{
- Namespace: integration.Namespace,
- Name: integration.Name,
- },
- Spec: v1alpha1.BuildSpec{
- Meta: integration.ObjectMeta,
- Image: ictx.Status.Image,
- CamelVersion: env.CamelCatalog.Version,
- RuntimeVersion: env.RuntimeVersion,
- Platform: env.Platform.Spec,
- Steps: builder.StepIDsFor(env.Steps...),
- BuildDir: env.BuildDir,
- },
- }
-
- // Inline source and resources so they are copied over the generated
- // container image. For the time being, references are being resolved
- // and their content serialized. We may want to resolve after the build
- // is submitted, just before the build is run.
- if err := action.inlineSources(ctx, integration, build, env); err != nil {
- return err
- }
- if err := action.inlineResources(ctx, integration, build, env); err != nil {
- return err
- }
-
- // Set the integration context instance as the owner and controller
- if err := controllerutil.SetControllerReference(integration, build, action.client.GetScheme()); err != nil {
- return err
- }
-
- err = action.client.Delete(ctx, build)
- if err != nil && !k8serrors.IsNotFound(err) {
- return errors.Wrap(err, "cannot delete build")
- }
-
- err = action.client.Create(ctx, build)
- if err != nil {
- return errors.Wrap(err, "cannot create build")
- }
- }
-
- if build.Status.Phase == v1alpha1.BuildPhaseRunning {
- target := integration.DeepCopy()
- target.Status.Phase = v1alpha1.IntegrationPhaseBuildImageRunning
-
- action.L.Info("Integration state transition", "phase", target.Status.Phase)
-
- return action.client.Status().Update(ctx, target)
- }
-
- return nil
-}
-
-func (action *buildImageAction) handleBuildImageRunning(ctx context.Context, integration *v1alpha1.Integration) error {
- build := &v1alpha1.Build{}
- err := action.client.Get(ctx, types.NamespacedName{Namespace: integration.Namespace, Name: integration.Name}, build)
- if err != nil {
- return err
- }
-
- switch build.Status.Phase {
-
- case v1alpha1.BuildPhaseRunning:
- action.L.Info("Build running")
-
- case v1alpha1.BuildPhaseSucceeded:
- target := integration.DeepCopy()
- target.Status.Phase = v1alpha1.IntegrationPhaseDeploying
- if build.Status.PublicImage != "" {
- target.Status.Image = build.Status.PublicImage
- } else {
- target.Status.Image = build.Status.Image
- }
-
- dgst, err := digest.ComputeForIntegration(target)
- if err != nil {
- return err
- }
-
- target.Status.Digest = dgst
-
- action.L.Info("Integration state transition", "phase", target.Status.Phase)
-
- if err := action.client.Status().Update(ctx, target); err != nil {
- return err
- }
-
- case v1alpha1.BuildPhaseError, v1alpha1.BuildPhaseInterrupted:
- target := integration.DeepCopy()
-
- // Let's copy the build failure to the integration status
- target.Status.Failure = build.Status.Failure
- target.Status.Phase = v1alpha1.IntegrationPhaseError
-
- action.L.Error(fmt.Errorf(build.Status.Error), "Integration state transition", "phase", target.Status.Phase)
-
- return action.client.Status().Update(ctx, target)
- }
-
- return nil
-}
-
-func (action *buildImageAction) inlineSources(ctx context.Context, integration *v1alpha1.Integration, build *v1alpha1.Build, e *trait.Environment) error {
- sources, err := kubernetes.ResolveIntegrationSources(ctx, action.client, integration, e.Resources)
- if err != nil {
- return err
- }
-
- build.Spec.Sources = make([]v1alpha1.SourceSpec, 0, len(sources))
- build.Spec.Sources = append(build.Spec.Sources, sources...)
-
- return nil
-}
-
-func (action *buildImageAction) inlineResources(ctx context.Context, integration *v1alpha1.Integration, build *v1alpha1.Build, e *trait.Environment) error {
- resources, err := kubernetes.ResolveIntegrationResources(ctx, action.client, integration, e.Resources)
- if err != nil {
- return err
- }
-
- build.Spec.Resources = make([]v1alpha1.ResourceSpec, 0, len(resources))
- build.Spec.Resources = append(build.Spec.Resources, resources...)
-
- return nil
-}
diff --git a/pkg/controller/integration/integration_controller.go b/pkg/controller/integration/integration_controller.go
index d42ba4a..a9161b2 100644
--- a/pkg/controller/integration/integration_controller.go
+++ b/pkg/controller/integration/integration_controller.go
@@ -131,7 +131,6 @@ func (r *ReconcileIntegration) Reconcile(request reconcile.Request) (reconcile.R
integrationActionPool := []Action{
NewInitializeAction(),
NewBuildContextAction(),
- NewBuildImageAction(),
NewDeployAction(),
NewMonitorAction(),
NewDeleteAction(),
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index bdfaa48..f957841 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -19,7 +19,6 @@ package trait
import (
"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
- "github.com/apache/camel-k/pkg/builder"
"github.com/apache/camel-k/pkg/builder/kaniko"
"github.com/apache/camel-k/pkg/builder/s2i"
"github.com/apache/camel-k/pkg/platform"
@@ -41,46 +40,18 @@ func (t *builderTrait) Configure(e *Environment) (bool, error) {
return false, nil
}
- if e.IntegrationContextInPhase(v1alpha1.IntegrationContextPhaseBuildSubmitted) {
- return true, nil
- }
-
- if e.InPhase(v1alpha1.IntegrationContextPhaseReady, v1alpha1.IntegrationPhaseBuildImageSubmitted) {
- return true, nil
- }
-
- return false, nil
+ return e.IntegrationContextInPhase(v1alpha1.IntegrationContextPhaseBuildSubmitted), nil
}
func (t *builderTrait) Apply(e *Environment) error {
- if e.IntegrationContextInPhase(v1alpha1.IntegrationContextPhaseBuildSubmitted) {
- if platform.SupportsS2iPublishStrategy(e.Platform) {
- e.Steps = s2i.DefaultSteps
- if e.DetermineProfile() == v1alpha1.TraitProfileKnative {
- e.Steps = append(e.Steps, s2i.Steps.ReplaceHost)
- }
- } else if platform.SupportsKanikoPublishStrategy(e.Platform) {
- e.Steps = kaniko.DefaultSteps
- e.BuildDir = kaniko.BuildDir
- }
- }
-
- if e.InPhase(v1alpha1.IntegrationContextPhaseReady, v1alpha1.IntegrationPhaseBuildImageSubmitted) {
- if platform.SupportsS2iPublishStrategy(e.Platform) {
- e.Steps = []builder.Step{
- builder.Steps.StandardPackager,
- s2i.Steps.Publisher,
- }
- if e.DetermineProfile() == v1alpha1.TraitProfileKnative {
- e.Steps = append(e.Steps, s2i.Steps.ReplaceHost)
- }
- } else if platform.SupportsKanikoPublishStrategy(e.Platform) {
- e.Steps = []builder.Step{
- builder.Steps.StandardPackager,
- kaniko.Steps.Publisher,
- }
- e.BuildDir = kaniko.BuildDir
+ if platform.SupportsS2iPublishStrategy(e.Platform) {
+ e.Steps = s2i.DefaultSteps
+ if e.DetermineProfile() == v1alpha1.TraitProfileKnative {
+ e.Steps = append(e.Steps, s2i.Steps.ReplaceHost)
}
+ } else if platform.SupportsKanikoPublishStrategy(e.Platform) {
+ e.Steps = kaniko.DefaultSteps
+ e.BuildDir = kaniko.BuildDir
}
return nil
diff --git a/pkg/trait/deployer.go b/pkg/trait/deployer.go
index 7e00c09..58ee803 100644
--- a/pkg/trait/deployer.go
+++ b/pkg/trait/deployer.go
@@ -18,9 +18,8 @@ limitations under the License.
package trait
type deployerTrait struct {
- BaseTrait `property:",squash"`
- ContainerImage bool `property:"container-image"`
- Kind string `property:"kind"`
+ BaseTrait `property:",squash"`
+ Kind string `property:"kind"`
}
func newDeployerTrait() *deployerTrait {
diff --git a/pkg/trait/deployment.go b/pkg/trait/deployment.go
index 36e0b58..2ae00db 100644
--- a/pkg/trait/deployment.go
+++ b/pkg/trait/deployment.go
@@ -74,25 +74,17 @@ func (t *deploymentTrait) Apply(e *Environment) error {
if e.IntegrationContextInPhase(v1alpha1.IntegrationContextPhaseReady) &&
e.IntegrationInPhase(v1alpha1.IntegrationPhaseBuildingContext, v1alpha1.IntegrationPhaseResolvingContext) {
- if t.deployer.ContainerImage {
- e.PostProcessors = append(e.PostProcessors, func(environment *Environment) error {
- // trigger container image build
- e.Integration.Status.Phase = v1alpha1.IntegrationPhaseBuildImageSubmitted
- return nil
- })
- } else {
- e.PostProcessors = append(e.PostProcessors, func(environment *Environment) error {
- // trigger integration deploy
- e.Integration.Status.Phase = v1alpha1.IntegrationPhaseDeploying
- return nil
- })
- }
+ e.PostProcessors = append(e.PostProcessors, func(environment *Environment) error {
+ // trigger integration deploy
+ e.Integration.Status.Phase = v1alpha1.IntegrationPhaseDeploying
+ return nil
+ })
return nil
}
if e.InPhase(v1alpha1.IntegrationContextPhaseReady, v1alpha1.IntegrationPhaseDeploying) {
- e.Resources.AddAll(e.ComputeConfigMaps(t.deployer.ContainerImage))
+ e.Resources.AddAll(e.ComputeConfigMaps())
e.Resources.Add(t.getDeploymentFor(e))
}
@@ -106,7 +98,7 @@ func (t *deploymentTrait) Apply(e *Environment) error {
// **********************************
func (t *deploymentTrait) getDeploymentFor(e *Environment) *appsv1.Deployment {
- paths := e.ComputeSourcesURI(t.deployer.ContainerImage)
+ paths := e.ComputeSourcesURI()
environment := make([]corev1.EnvVar, 0)
// combine Environment of integration with platform, context, integration
@@ -179,7 +171,6 @@ func (t *deploymentTrait) getDeploymentFor(e *Environment) *appsv1.Deployment {
}
e.ConfigureVolumesAndMounts(
- t.deployer.ContainerImage,
&deployment.Spec.Template.Spec.Volumes,
&deployment.Spec.Template.Spec.Containers[0].VolumeMounts,
)
diff --git a/pkg/trait/knative_service.go b/pkg/trait/knative_service.go
index 454e0cf..e5c6dee 100644
--- a/pkg/trait/knative_service.go
+++ b/pkg/trait/knative_service.go
@@ -115,7 +115,7 @@ func (t *knativeServiceTrait) Apply(e *Environment) error {
return err
}
- maps := e.ComputeConfigMaps(t.deployer.ContainerImage)
+ maps := e.ComputeConfigMaps()
e.Resources.Add(svc)
e.Resources.AddAll(maps)
diff --git a/pkg/trait/knative_service_vol.go b/pkg/trait/knative_service_vol.go
index efe058d..03c95bb 100644
--- a/pkg/trait/knative_service_vol.go
+++ b/pkg/trait/knative_service_vol.go
@@ -26,13 +26,11 @@ import (
func (t *knativeServiceTrait) bindToVolumes(e *Environment, service *serving.Service) {
e.ConfigureVolumesAndMounts(
- t.deployer.ContainerImage,
&service.Spec.RunLatest.Configuration.RevisionTemplate.Spec.Volumes,
&service.Spec.RunLatest.Configuration.RevisionTemplate.Spec.Container.VolumeMounts,
)
- paths := e.ComputeSourcesURI(t.deployer.ContainerImage)
-
+ paths := e.ComputeSourcesURI()
environment := &service.Spec.RunLatest.Configuration.RevisionTemplate.Spec.Container.Env
envvar.SetVal(environment, "CAMEL_K_ROUTES", strings.Join(paths, ","))
diff --git a/pkg/trait/knative_service_vol_test.go b/pkg/trait/knative_service_vol_test.go
index 86ff6c1..81cf388 100644
--- a/pkg/trait/knative_service_vol_test.go
+++ b/pkg/trait/knative_service_vol_test.go
@@ -173,116 +173,3 @@ func TestKnativeWithVolumeBinding(t *testing.T) {
test.EnvVarHasValue(t, spec.Container.Env, "CAMEL_K_CONF", "/etc/camel/conf/application.properties")
test.EnvVarHasValue(t, spec.Container.Env, "CAMEL_K_CONF_D", "/etc/camel/conf.d")
}
-
-func TestKnativeWithVolumeBindingAndContainerImage(t *testing.T) {
- catalog, err := test.DefaultCatalog()
- assert.Nil(t, err)
-
- traitCatalog := NewCatalog(context.TODO(), nil)
-
- environment := Environment{
- CamelCatalog: catalog,
- Catalog: traitCatalog,
- Integration: &v1alpha1.Integration{
- ObjectMeta: metav1.ObjectMeta{
- Name: "test",
- Namespace: "ns",
- },
- Status: v1alpha1.IntegrationStatus{
- Phase: v1alpha1.IntegrationPhaseDeploying,
- },
- Spec: v1alpha1.IntegrationSpec{
- Profile: v1alpha1.TraitProfileKnative,
- Sources: []v1alpha1.SourceSpec{
- {
- DataSpec: v1alpha1.DataSpec{
- Name: "routes.js",
- Content: `from("undertow:test").log("hello")`,
- Compression: true,
- },
- Language: v1alpha1.LanguageJavaScript,
- },
- },
- Resources: []v1alpha1.ResourceSpec{
- {
- DataSpec: v1alpha1.DataSpec{
- Name: "my-resource.txt",
- Content: "",
- Compression: false,
- },
- Type: v1alpha1.ResourceTypeData,
- },
- },
- Configuration: []v1alpha1.ConfigurationSpec{
- {Type: "configmap", Value: "my-cm"},
- {Type: "secret", Value: "my-secret"},
- },
- Traits: map[string]v1alpha1.TraitSpec{
- "deployer": {
- Configuration: map[string]string{
- "container-image": "true",
- },
- },
- "knative-service": {
- Configuration: map[string]string{
- "configuration-type": "volume",
- },
- },
- },
- },
- },
- IntegrationContext: &v1alpha1.IntegrationContext{
- Status: v1alpha1.IntegrationContextStatus{
- Phase: v1alpha1.IntegrationContextPhaseReady,
- },
- },
- Platform: &v1alpha1.IntegrationPlatform{
- Spec: v1alpha1.IntegrationPlatformSpec{
- Cluster: v1alpha1.IntegrationPlatformClusterOpenShift,
- Build: v1alpha1.IntegrationPlatformBuildSpec{
- PublishStrategy: v1alpha1.IntegrationPlatformBuildPublishStrategyS2I,
- Registry: v1alpha1.IntegrationPlatformRegistrySpec{Address: "registry"},
- },
- },
- },
- EnvVars: make([]corev1.EnvVar, 0),
- ExecutedTraits: make([]Trait, 0),
- Resources: kubernetes.NewCollection(),
- Classpath: strset.New(),
- }
-
- err = traitCatalog.apply(&environment)
-
- assert.Nil(t, err)
- assert.NotEmpty(t, environment.ExecutedTraits)
- assert.NotNil(t, environment.GetTrait(ID("knative")))
- assert.NotNil(t, envvar.Get(environment.EnvVars, "CAMEL_KNATIVE_CONFIGURATION"))
- assert.Equal(t, 2, environment.Resources.Size())
-
- names := make([]string, 0)
- environment.Resources.VisitConfigMap(func(cm *corev1.ConfigMap) {
- names = append(names, cm.Name)
- })
-
- assert.Contains(t, names, "test-properties")
-
- s := environment.Resources.GetKnativeService(func(service *serving.Service) bool {
- return service.Name == "test"
- })
-
- assert.NotNil(t, s)
-
- spec := s.Spec.RunLatest.Configuration.RevisionTemplate.Spec
-
- assert.Len(t, spec.Container.VolumeMounts, 3)
- assert.Len(t, spec.Volumes, 3)
-
- test.HasVolume(t, spec.Volumes, "my-cm")
- test.HasVolume(t, spec.Volumes, "my-secret")
- test.HasVolume(t, spec.Volumes, "integration-properties")
-
- test.EnvVarExists(t, spec.Container.Env, "JAVA_CLASSPATH")
- test.EnvVarHasValue(t, spec.Container.Env, "CAMEL_K_ROUTES", "file:/deployments/sources/routes.js?language=js&compression=true")
- test.EnvVarHasValue(t, spec.Container.Env, "CAMEL_K_CONF", "/etc/camel/conf/application.properties")
- test.EnvVarHasValue(t, spec.Container.Env, "CAMEL_K_CONF_D", "/etc/camel/conf.d")
-}
diff --git a/pkg/trait/trait_test.go b/pkg/trait/trait_test.go
index 69a59cf..0cb46a4 100644
--- a/pkg/trait/trait_test.go
+++ b/pkg/trait/trait_test.go
@@ -282,7 +282,7 @@ func TestConfigureVolumesAndMounts(t *testing.T) {
vols := make([]corev1.Volume, 0)
mnts := make([]corev1.VolumeMount, 0)
- env.ConfigureVolumesAndMounts(false, &vols, &mnts)
+ env.ConfigureVolumesAndMounts(&vols, &mnts)
assert.Len(t, vols, 8)
assert.Len(t, mnts, 8)
diff --git a/pkg/trait/trait_types.go b/pkg/trait/trait_types.go
index a840df3..e750fd7 100644
--- a/pkg/trait/trait_types.go
+++ b/pkg/trait/trait_types.go
@@ -255,7 +255,7 @@ func (e *Environment) DetermineRuntimeVersion() string {
}
// ComputeConfigMaps --
-func (e *Environment) ComputeConfigMaps(container bool) []runtime.Object {
+func (e *Environment) ComputeConfigMaps() []runtime.Object {
sources := e.Integration.Sources()
maps := make([]runtime.Object, 0, len(sources)+1)
@@ -287,92 +287,84 @@ func (e *Environment) ComputeConfigMaps(container bool) []runtime.Object {
},
)
- if !container {
- for i, s := range sources {
- if s.ContentRef != "" {
- continue
- }
+ for i, s := range sources {
+ if s.ContentRef != "" {
+ continue
+ }
- cm := corev1.ConfigMap{
- TypeMeta: metav1.TypeMeta{
- Kind: "ConfigMap",
- APIVersion: "v1",
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: fmt.Sprintf("%s-source-%03d", e.Integration.Name, i),
- Namespace: e.Integration.Namespace,
- Labels: map[string]string{
- "camel.apache.org/integration": e.Integration.Name,
- },
- Annotations: map[string]string{
- "camel.apache.org/source.language": string(s.InferLanguage()),
- "camel.apache.org/source.name": s.Name,
- "camel.apache.org/source.compression": strconv.FormatBool(s.Compression),
- },
+ cm := corev1.ConfigMap{
+ TypeMeta: metav1.TypeMeta{
+ Kind: "ConfigMap",
+ APIVersion: "v1",
+ },
+ ObjectMeta: metav1.ObjectMeta{
+ Name: fmt.Sprintf("%s-source-%03d", e.Integration.Name, i),
+ Namespace: e.Integration.Namespace,
+ Labels: map[string]string{
+ "camel.apache.org/integration": e.Integration.Name,
},
- Data: map[string]string{
- "content": s.Content,
+ Annotations: map[string]string{
+ "camel.apache.org/source.language": string(s.InferLanguage()),
+ "camel.apache.org/source.name": s.Name,
+ "camel.apache.org/source.compression": strconv.FormatBool(s.Compression),
},
- }
+ },
+ Data: map[string]string{
+ "content": s.Content,
+ },
+ }
+
+ maps = append(maps, &cm)
+ }
- maps = append(maps, &cm)
+ for i, r := range e.Integration.Spec.Resources {
+ if r.Type != v1alpha1.ResourceTypeData {
+ continue
+ }
+ if r.ContentRef != "" {
+ continue
}
- for i, r := range e.Integration.Spec.Resources {
- if r.Type != v1alpha1.ResourceTypeData {
- continue
- }
- if r.ContentRef != "" {
- continue
- }
-
- cmKey := "content"
- if r.ContentKey != "" {
- cmKey = r.ContentKey
- }
-
- cm := corev1.ConfigMap{
- TypeMeta: metav1.TypeMeta{
- Kind: "ConfigMap",
- APIVersion: "v1",
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: fmt.Sprintf("%s-resource-%03d", e.Integration.Name, i),
- Namespace: e.Integration.Namespace,
- Labels: map[string]string{
- "camel.apache.org/integration": e.Integration.Name,
- },
- Annotations: map[string]string{
- "camel.apache.org/resource.name": r.Name,
- "camel.apache.org/resource.compression": strconv.FormatBool(r.Compression),
- },
+ cmKey := "content"
+ if r.ContentKey != "" {
+ cmKey = r.ContentKey
+ }
+
+ cm := corev1.ConfigMap{
+ TypeMeta: metav1.TypeMeta{
+ Kind: "ConfigMap",
+ APIVersion: "v1",
+ },
+ ObjectMeta: metav1.ObjectMeta{
+ Name: fmt.Sprintf("%s-resource-%03d", e.Integration.Name, i),
+ Namespace: e.Integration.Namespace,
+ Labels: map[string]string{
+ "camel.apache.org/integration": e.Integration.Name,
},
- Data: map[string]string{
- cmKey: r.Content,
+ Annotations: map[string]string{
+ "camel.apache.org/resource.name": r.Name,
+ "camel.apache.org/resource.compression": strconv.FormatBool(r.Compression),
},
- }
-
- maps = append(maps, &cm)
+ },
+ Data: map[string]string{
+ cmKey: r.Content,
+ },
}
+
+ maps = append(maps, &cm)
}
return maps
}
// ComputeSourcesURI --
-func (e *Environment) ComputeSourcesURI(container bool) []string {
+func (e *Environment) ComputeSourcesURI() []string {
sources := e.Integration.Sources()
paths := make([]string, 0, len(sources))
for i, s := range sources {
root := "/etc/camel/sources"
-
- if container {
- // assume sources are copied over the standard deployments folder
- root = "/deployments/sources"
- } else {
- root = path.Join(root, fmt.Sprintf("i-source-%03d", i))
- }
+ root = path.Join(root, fmt.Sprintf("i-source-%03d", i))
srcName := strings.TrimPrefix(s.Name, "/")
src := path.Join(root, srcName)
@@ -397,90 +389,87 @@ func (e *Environment) ComputeSourcesURI(container bool) []string {
}
// ConfigureVolumesAndMounts --
-func (e *Environment) ConfigureVolumesAndMounts(container bool, vols *[]corev1.Volume, mnts *[]corev1.VolumeMount) {
-
- if !container {
-
- //
- // Volumes :: Sources
- //
-
- for i, s := range e.Integration.Sources() {
- cmName := fmt.Sprintf("%s-source-%03d", e.Integration.Name, i)
- refName := fmt.Sprintf("i-source-%03d", i)
- resName := strings.TrimPrefix(s.Name, "/")
- resPath := path.Join("/etc/camel/sources", refName)
-
- if s.ContentRef != "" {
- cmName = s.ContentRef
- }
-
- *vols = append(*vols, corev1.Volume{
- Name: refName,
- VolumeSource: corev1.VolumeSource{
- ConfigMap: &corev1.ConfigMapVolumeSource{
- LocalObjectReference: corev1.LocalObjectReference{
- Name: cmName,
- },
- Items: []corev1.KeyToPath{
- {
- Key: "content",
- Path: resName,
- },
+func (e *Environment) ConfigureVolumesAndMounts(vols *[]corev1.Volume, mnts *[]corev1.VolumeMount) {
+
+ //
+ // Volumes :: Sources
+ //
+
+ for i, s := range e.Integration.Sources() {
+ cmName := fmt.Sprintf("%s-source-%03d", e.Integration.Name, i)
+ refName := fmt.Sprintf("i-source-%03d", i)
+ resName := strings.TrimPrefix(s.Name, "/")
+ resPath := path.Join("/etc/camel/sources", refName)
+
+ if s.ContentRef != "" {
+ cmName = s.ContentRef
+ }
+
+ *vols = append(*vols, corev1.Volume{
+ Name: refName,
+ VolumeSource: corev1.VolumeSource{
+ ConfigMap: &corev1.ConfigMapVolumeSource{
+ LocalObjectReference: corev1.LocalObjectReference{
+ Name: cmName,
+ },
+ Items: []corev1.KeyToPath{
+ {
+ Key: "content",
+ Path: resName,
},
},
},
- })
+ },
+ })
+
+ *mnts = append(*mnts, corev1.VolumeMount{
+ Name: refName,
+ MountPath: resPath,
+ })
+ }
- *mnts = append(*mnts, corev1.VolumeMount{
- Name: refName,
- MountPath: resPath,
- })
+ for i, r := range e.Integration.Spec.Resources {
+ if r.Type != v1alpha1.ResourceTypeData {
+ continue
}
- for i, r := range e.Integration.Spec.Resources {
- if r.Type != v1alpha1.ResourceTypeData {
- continue
- }
-
- cmName := fmt.Sprintf("%s-resource-%03d", e.Integration.Name, i)
- refName := fmt.Sprintf("i-resource-%03d", i)
- resName := strings.TrimPrefix(r.Name, "/")
- cmKey := "content"
- resPath := path.Join("/etc/camel/resources", refName)
-
- if r.ContentRef != "" {
- cmName = r.ContentRef
- }
- if r.ContentKey != "" {
- cmKey = r.ContentKey
- }
- if r.MountPath != "" {
- resPath = r.MountPath
- }
-
- *vols = append(*vols, corev1.Volume{
- Name: refName,
- VolumeSource: corev1.VolumeSource{
- ConfigMap: &corev1.ConfigMapVolumeSource{
- LocalObjectReference: corev1.LocalObjectReference{
- Name: cmName,
- },
- Items: []corev1.KeyToPath{
- {
- Key: cmKey,
- Path: resName,
- },
+ cmName := fmt.Sprintf("%s-resource-%03d", e.Integration.Name, i)
+ refName := fmt.Sprintf("i-resource-%03d", i)
+ resName := strings.TrimPrefix(r.Name, "/")
+ cmKey := "content"
+ resPath := path.Join("/etc/camel/resources", refName)
+
+ if r.ContentRef != "" {
+ cmName = r.ContentRef
+ }
+ if r.ContentKey != "" {
+ cmKey = r.ContentKey
+ }
+ if r.MountPath != "" {
+ resPath = r.MountPath
+ }
+
+ *vols = append(*vols, corev1.Volume{
+ Name: refName,
+ VolumeSource: corev1.VolumeSource{
+ ConfigMap: &corev1.ConfigMapVolumeSource{
+ LocalObjectReference: corev1.LocalObjectReference{
+ Name: cmName,
+ },
+ Items: []corev1.KeyToPath{
+ {
+ Key: cmKey,
+ Path: resName,
},
},
},
- })
+ },
+ })
- *mnts = append(*mnts, corev1.VolumeMount{
- Name: refName,
- MountPath: resPath,
- })
- }
+ *mnts = append(*mnts, corev1.VolumeMount{
+ Name: refName,
+ MountPath: resPath,
+ })
}
//