From 95568f3a4fa8516c29eb135ba5baf464b7d2560a Mon Sep 17 00:00:00 2001 From: Antonin Stefanutti Date: Tue, 2 Jun 2020 15:21:53 +0200 Subject: [PATCH 1/4] chore: Remove deployer traits member leftovers --- pkg/trait/cron.go | 7 +------ pkg/trait/deployment.go | 17 +---------------- pkg/trait/deployment_test.go | 1 - 3 files changed, 2 insertions(+), 23 deletions(-) diff --git a/pkg/trait/cron.go b/pkg/trait/cron.go index 853e68220e..98707f42c8 100644 --- a/pkg/trait/cron.go +++ b/pkg/trait/cron.go @@ -75,8 +75,7 @@ type cronTrait struct { // // It's required that all periodic consumers have the same period and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`, // while `35m` or `50s` cannot). - Auto *bool `property:"auto"` - deployer deployerTrait + Auto *bool `property:"auto"` } var _ ControllerStrategySelector = &cronTrait{} @@ -180,10 +179,6 @@ func (t *cronTrait) Configure(e *Environment) (bool, error) { } } } - dt := e.Catalog.GetTrait("deployer") - if dt != nil { - t.deployer = *dt.(*deployerTrait) - } // Fallback strategy can be implemented in any other controller if t.Fallback != nil && *t.Fallback { diff --git a/pkg/trait/deployment.go b/pkg/trait/deployment.go index 088a721562..985fd9776d 100644 --- a/pkg/trait/deployment.go +++ b/pkg/trait/deployment.go @@ -33,7 +33,6 @@ import ( // +camel-k:trait=deployment type deploymentTrait struct { BaseTrait `property:",squash"` - deployer deployerTrait } var _ ControllerStrategySelector = &deploymentTrait{} @@ -85,15 +84,7 @@ func (t *deploymentTrait) Configure(e *Environment) (bool, error) { return false, nil } - enabled := e.IntegrationInPhase(v1.IntegrationPhaseDeploying) - if enabled { - dt := e.Catalog.GetTrait("deployer") - if dt != nil { - t.deployer = *dt.(*deployerTrait) - } - } - - return enabled, nil + return e.IntegrationInPhase(v1.IntegrationPhaseDeploying), nil } func (t *deploymentTrait) SelectControllerStrategy(e *Environment) (*ControllerStrategy, error) { @@ -146,12 +137,6 @@ func (t *deploymentTrait) IsPlatformTrait() bool { return true } -// ********************************** -// -// Deployment -// -// ********************************** - func (t *deploymentTrait) getDeploymentFor(e *Environment) *appsv1.Deployment { // create a copy to avoid sharing the underlying annotation map annotations := make(map[string]string) diff --git a/pkg/trait/deployment_test.go b/pkg/trait/deployment_test.go index a20293f808..9798e723c1 100644 --- a/pkg/trait/deployment_test.go +++ b/pkg/trait/deployment_test.go @@ -68,7 +68,6 @@ func TestConfigureDeploymentTraitDoesSucceed(t *testing.T) { assert.Nil(t, err) assert.True(t, configured) - assert.NotNil(t, deploymentTrait.deployer) } func TestConfigureDeploymentTraitWhileBuildingKitDoesNotSucceed(t *testing.T) { From 31f5c59bd95939a1861ffd09efc1e594e9804676 Mon Sep 17 00:00:00 2001 From: Antonin Stefanutti Date: Tue, 2 Jun 2020 15:23:58 +0200 Subject: [PATCH 2/4] chore: Group integration readiness condition with replicas reconciliation logic --- pkg/controller/integration/monitor.go | 4 ++++ pkg/trait/deployer.go | 6 ------ pkg/trait/deployer_test.go | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/pkg/controller/integration/monitor.go b/pkg/controller/integration/monitor.go index 344c694c82..4cea23e0fe 100644 --- a/pkg/controller/integration/monitor.go +++ b/pkg/controller/integration/monitor.go @@ -27,6 +27,7 @@ import ( "github.com/apache/camel-k/pkg/trait" "github.com/apache/camel-k/pkg/util/defaults" "github.com/apache/camel-k/pkg/util/digest" + "github.com/apache/camel-k/pkg/util/kubernetes" ) // NewMonitorAction creates a new monitoring action for an integration @@ -91,6 +92,9 @@ func (action *monitorAction) Handle(ctx context.Context, integration *v1.Integra } } + // Mirror ready condition from the sub resource (e.g.ReplicaSet, Deployment, CronJob, ...) to the integration + kubernetes.MirrorReadyCondition(ctx, action.client, integration) + return integration, nil } diff --git a/pkg/trait/deployer.go b/pkg/trait/deployer.go index da55a7e1b4..836811055c 100644 --- a/pkg/trait/deployer.go +++ b/pkg/trait/deployer.go @@ -110,12 +110,6 @@ func (t *deployerTrait) Apply(e *Environment) error { } return nil }) - - // Mirror ready condition from the sub resource to the integration - e.PostActions = append(e.PostActions, func(e *Environment) error { - kubernetes.MirrorReadyCondition(t.Ctx, t.Client, e.Integration) - return nil - }) } return nil diff --git a/pkg/trait/deployer_test.go b/pkg/trait/deployer_test.go index 7160f55d45..d5ffb97354 100644 --- a/pkg/trait/deployer_test.go +++ b/pkg/trait/deployer_test.go @@ -52,7 +52,7 @@ func TestApplyDeployerTraitDoesSucceed(t *testing.T) { err := deployerTrait.Apply(environment) assert.Nil(t, err) - assert.Len(t, environment.PostActions, 2) + assert.Len(t, environment.PostActions, 1) } func TestApplyDeployerTraitInInitializationPhaseDoesSucceed(t *testing.T) { From 0c05a3791a2ec4e736d00ce9a7953f23613f2a7c Mon Sep 17 00:00:00 2001 From: Antonin Stefanutti Date: Tue, 2 Jun 2020 15:51:22 +0200 Subject: [PATCH 3/4] chore: Remove unecessary type declaration --- pkg/trait/trait_types.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/trait/trait_types.go b/pkg/trait/trait_types.go index 457afcf0fb..e3c8c4651a 100644 --- a/pkg/trait/trait_types.go +++ b/pkg/trait/trait_types.go @@ -223,7 +223,7 @@ const ( ControllerStrategyKnativeService ControllerStrategy = "knative-service" ControllerStrategyCronJob ControllerStrategy = "cron-job" - DefaultControllerStrategy ControllerStrategy = ControllerStrategyDeployment + DefaultControllerStrategy = ControllerStrategyDeployment ) // GetTrait -- From c144feb5fa8afc53c622a37fed63c3c6aa1cff17 Mon Sep 17 00:00:00 2001 From: Antonin Stefanutti Date: Wed, 3 Jun 2020 10:59:34 +0200 Subject: [PATCH 4/4] chore: Remove unused parameters --- pkg/trait/cron.go | 2 +- pkg/trait/deployment.go | 2 +- pkg/trait/knative_service.go | 2 +- pkg/trait/prometheus.go | 2 +- pkg/trait/trait_types.go | 4 +--- 5 files changed, 5 insertions(+), 7 deletions(-) diff --git a/pkg/trait/cron.go b/pkg/trait/cron.go index 98707f42c8..3f740b1d6b 100644 --- a/pkg/trait/cron.go +++ b/pkg/trait/cron.go @@ -194,7 +194,7 @@ func (t *cronTrait) Configure(e *Environment) (bool, error) { } // CronJob strategy requires common schedule - strategy, err := e.DetermineControllerStrategy(t.Ctx, t.Client) + strategy, err := e.DetermineControllerStrategy() if err != nil { e.Integration.Status.SetErrorCondition( v1.IntegrationConditionCronJobAvailable, diff --git a/pkg/trait/deployment.go b/pkg/trait/deployment.go index 985fd9776d..a56ec06881 100644 --- a/pkg/trait/deployment.go +++ b/pkg/trait/deployment.go @@ -63,7 +63,7 @@ func (t *deploymentTrait) Configure(e *Environment) (bool, error) { // // Don't deploy when a different strategy is needed (e.g. Knative, Cron) // - strategy, err := e.DetermineControllerStrategy(t.Ctx, t.Client) + strategy, err := e.DetermineControllerStrategy() if err != nil { e.Integration.Status.SetErrorCondition( v1.IntegrationConditionDeploymentAvailable, diff --git a/pkg/trait/knative_service.go b/pkg/trait/knative_service.go index 8bbe95cd5f..bea1513373 100644 --- a/pkg/trait/knative_service.go +++ b/pkg/trait/knative_service.go @@ -121,7 +121,7 @@ func (t *knativeServiceTrait) Configure(e *Environment) (bool, error) { return false, nil } - strategy, err := e.DetermineControllerStrategy(t.Ctx, t.Client) + strategy, err := e.DetermineControllerStrategy() if err != nil { e.Integration.Status.SetErrorCondition( v1.IntegrationConditionKnativeServiceAvailable, diff --git a/pkg/trait/prometheus.go b/pkg/trait/prometheus.go index 03b89f7c4b..9beeb2cb7d 100644 --- a/pkg/trait/prometheus.go +++ b/pkg/trait/prometheus.go @@ -123,7 +123,7 @@ func (t *prometheusTrait) Apply(e *Environment) (err error) { // Configure the Prometheus container port containerPort := t.getContainerPort() - controller, err := e.DetermineControllerStrategy(t.Ctx, t.Client) + controller, err := e.DetermineControllerStrategy() if err != nil { return err } diff --git a/pkg/trait/trait_types.go b/pkg/trait/trait_types.go index e3c8c4651a..6352c7a778 100644 --- a/pkg/trait/trait_types.go +++ b/pkg/trait/trait_types.go @@ -28,8 +28,6 @@ import ( "github.com/apache/camel-k/pkg/util" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - controller "sigs.k8s.io/controller-runtime/pkg/client" - "k8s.io/apimachinery/pkg/runtime" v1 "github.com/apache/camel-k/pkg/apis/camel/v1" @@ -298,7 +296,7 @@ func (e *Environment) DetermineProfile() v1.TraitProfile { } // DetermineControllerStrategy determines the type of controller that should be used for the integration -func (e *Environment) DetermineControllerStrategy(ctx context.Context, c controller.Reader) (ControllerStrategy, error) { +func (e *Environment) DetermineControllerStrategy() (ControllerStrategy, error) { defaultStrategy := DefaultControllerStrategy for _, creator := range e.getControllerStrategyChoosers() { if strategy, err := creator.SelectControllerStrategy(e); err != nil {