This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit fd88d0d9115cce2bd2cf82d13620781376048043 Author: Nicola Ferraro <ni.ferr...@gmail.com> AuthorDate: Tue Jan 28 01:21:46 2020 +0100 #1199: add cronjob conditions --- deploy/builder-role-kubernetes.yaml | 10 +++++++++- deploy/builder-role-openshift.yaml | 10 +++++++++- pkg/apis/camel/v1/integration_types.go | 6 ++++++ pkg/trait/cron.go | 25 +++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 2 deletions(-) diff --git a/deploy/builder-role-kubernetes.yaml b/deploy/builder-role-kubernetes.yaml index 13a0853..5a18caf 100644 --- a/deploy/builder-role-kubernetes.yaml +++ b/deploy/builder-role-kubernetes.yaml @@ -44,10 +44,18 @@ rules: - apiGroups: - "" resources: - - events - configmaps - secrets verbs: - get - list - watch +- apiGroups: + - "" + resources: + - events + verbs: + - create + - get + - list + - watch diff --git a/deploy/builder-role-openshift.yaml b/deploy/builder-role-openshift.yaml index 48bea4a..a0ab82b 100644 --- a/deploy/builder-role-openshift.yaml +++ b/deploy/builder-role-openshift.yaml @@ -44,7 +44,6 @@ rules: - apiGroups: - "" resources: - - events - configmaps - secrets verbs: @@ -53,6 +52,15 @@ rules: - watch - apiGroups: - "" + resources: + - events + verbs: + - create + - get + - list + - watch +- apiGroups: + - "" - "build.openshift.io" resources: - buildconfigs diff --git a/pkg/apis/camel/v1/integration_types.go b/pkg/apis/camel/v1/integration_types.go index a818587..742c296 100644 --- a/pkg/apis/camel/v1/integration_types.go +++ b/pkg/apis/camel/v1/integration_types.go @@ -180,6 +180,8 @@ const ( IntegrationConditionServiceAvailable IntegrationConditionType = "ServiceAvailable" // IntegrationConditionKnativeServiceAvailable -- IntegrationConditionKnativeServiceAvailable IntegrationConditionType = "KnativeServiceAvailable" + // IntegrationConditionCronJobAvailable -- + IntegrationConditionCronJobAvailable IntegrationConditionType = "CronJobAvailable" // IntegrationConditionExposureAvailable -- IntegrationConditionExposureAvailable IntegrationConditionType = "ExposureAvailable" // IntegrationConditionPrometheusAvailable -- @@ -213,6 +215,10 @@ const ( IntegrationConditionKnativeServiceAvailableReason string = "KnativeServiceAvailable" // IntegrationConditionKnativeServiceNotAvailableReason -- IntegrationConditionKnativeServiceNotAvailableReason string = "KnativeServiceNotAvailable" + // IntegrationConditionCronJobAvailableReason -- + IntegrationConditionCronJobAvailableReason string = "CronJobAvailableReason" + // IntegrationConditionCronJobNotAvailableReason -- + IntegrationConditionCronJobNotAvailableReason string = "CronJobNotAvailableReason" // IntegrationConditionPrometheusAvailableReason -- IntegrationConditionPrometheusAvailableReason string = "PrometheusAvailable" // IntegrationConditionJolokiaAvailableReason -- diff --git a/pkg/trait/cron.go b/pkg/trait/cron.go index b2b44d6..815aa66 100644 --- a/pkg/trait/cron.go +++ b/pkg/trait/cron.go @@ -115,6 +115,13 @@ func newCronTrait() Trait { func (t *cronTrait) Configure(e *Environment) (bool, error) { if t.Enabled != nil && !*t.Enabled { + e.Integration.Status.SetCondition( + v1.IntegrationConditionCronJobAvailable, + corev1.ConditionFalse, + v1.IntegrationConditionCronJobNotAvailableReason, + "explicitly disabled", + ) + return false, nil } @@ -125,6 +132,11 @@ func (t *cronTrait) Configure(e *Environment) (bool, error) { if t.Auto == nil || *t.Auto { globalCron, err := t.getGlobalCron(e) if err != nil { + e.Integration.Status.SetErrorCondition( + v1.IntegrationConditionCronJobAvailable, + v1.IntegrationConditionCronJobNotAvailableReason, + err, + ) return false, err } @@ -177,6 +189,12 @@ func (t *cronTrait) Configure(e *Environment) (bool, error) { return false, err } if strategy != ControllerStrategyCronJob { + e.Integration.Status.SetCondition( + v1.IntegrationConditionCronJobAvailable, + corev1.ConditionFalse, + v1.IntegrationConditionCronJobNotAvailableReason, + "controller strategy: "+string(strategy), + ) return false, nil } @@ -198,6 +216,13 @@ func (t *cronTrait) Apply(e *Environment) error { e.Resources.AddAll(maps) e.Resources.Add(cronJob) + e.Integration.Status.SetCondition( + v1.IntegrationConditionCronJobAvailable, + corev1.ConditionTrue, + v1.IntegrationConditionCronJobAvailableReason, + fmt.Sprintf("CronJob name is %s", cronJob.Name), + ) + envvar.SetVal(&e.EnvVars, "CAMEL_K_CRON_OVERRIDE", t.Components) } }