This is an automated email from the ASF dual-hosted git repository. tsato pushed a commit to branch release-1.9.x in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit dc6535574d40211b0cc593b7aaf3a14dc0e2dc7c Author: Christoph Deppisch <[email protected]> AuthorDate: Tue Jun 28 09:33:31 2022 +0200 fix(#3393): Update to CronJob batch/v1 CronJob batch/v1beta1 is deprecated and will be removed soon. Updating to batch/v1 API (cherry picked from commit 75c6f9afa6cc60124a826417b8b300fbab92b45c) --- e2e/support/test_support.go | 10 ++++----- pkg/cmd/operator/operator.go | 11 +++++----- .../integration/integration_controller.go | 4 ++-- pkg/controller/integration/monitor.go | 6 +++--- pkg/controller/integration/monitor_cronjob.go | 3 +-- pkg/trait/container.go | 4 ++-- pkg/trait/cron.go | 15 +++++++------- pkg/trait/cron_test.go | 6 +++--- pkg/trait/mount.go | 4 ++-- pkg/trait/pod.go | 4 ++-- pkg/trait/test_support.go | 8 ++++---- pkg/trait/trait_types.go | 4 ++-- pkg/util/kubernetes/collection.go | 24 +++++++++++----------- 13 files changed, 50 insertions(+), 53 deletions(-) diff --git a/e2e/support/test_support.go b/e2e/support/test_support.go index e1e87ec2c..3fdd06077 100644 --- a/e2e/support/test_support.go +++ b/e2e/support/test_support.go @@ -46,7 +46,7 @@ import ( "github.com/pkg/errors" "github.com/spf13/cobra" appsv1 "k8s.io/api/apps/v1" - "k8s.io/api/batch/v1beta1" + batchv1 "k8s.io/api/batch/v1" coordination "k8s.io/api/coordination/v1" corev1 "k8s.io/api/core/v1" rbacv1 "k8s.io/api/rbac/v1" @@ -599,12 +599,12 @@ func RouteStatus(ns string, name string) func() string { } } -func IntegrationCronJob(ns string, name string) func() *v1beta1.CronJob { - return func() *v1beta1.CronJob { - lst := v1beta1.CronJobList{ +func IntegrationCronJob(ns string, name string) func() *batchv1.CronJob { + return func() *batchv1.CronJob { + lst := batchv1.CronJobList{ TypeMeta: metav1.TypeMeta{ Kind: "CronJob", - APIVersion: v1beta1.SchemeGroupVersion.String(), + APIVersion: batchv1.SchemeGroupVersion.String(), }, } err := TestClient().List(TestContext, &lst, diff --git a/pkg/cmd/operator/operator.go b/pkg/cmd/operator/operator.go index c58db2d00..1b555fd30 100644 --- a/pkg/cmd/operator/operator.go +++ b/pkg/cmd/operator/operator.go @@ -31,7 +31,6 @@ import ( appsv1 "k8s.io/api/apps/v1" batchv1 "k8s.io/api/batch/v1" - batchv1beta1 "k8s.io/api/batch/v1beta1" coordination "k8s.io/api/coordination/v1" corev1 "k8s.io/api/core/v1" k8serrors "k8s.io/apimachinery/pkg/api/errors" @@ -166,11 +165,11 @@ func Run(healthPort, monitoringPort int32, leaderElection bool, leaderElectionID NewCache: cache.BuilderWithOptions( cache.Options{ SelectorsByObject: cache.SelectorsByObject{ - &corev1.Pod{}: {Label: selector}, - &appsv1.Deployment{}: {Label: selector}, - &batchv1beta1.CronJob{}: {Label: selector}, - &batchv1.Job{}: {Label: selector}, - &servingv1.Service{}: {Label: selector}, + &corev1.Pod{}: {Label: selector}, + &appsv1.Deployment{}: {Label: selector}, + &batchv1.CronJob{}: {Label: selector}, + &batchv1.Job{}: {Label: selector}, + &servingv1.Service{}: {Label: selector}, }, }, ), diff --git a/pkg/controller/integration/integration_controller.go b/pkg/controller/integration/integration_controller.go index 964adb18f..4fb05c8be 100644 --- a/pkg/controller/integration/integration_controller.go +++ b/pkg/controller/integration/integration_controller.go @@ -24,7 +24,7 @@ import ( "time" appsv1 "k8s.io/api/apps/v1" - batchv1beta1 "k8s.io/api/batch/v1beta1" + batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" k8serrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" @@ -204,7 +204,7 @@ func add(mgr manager.Manager, c client.Client, r reconcile.Reconciler) error { // Watch for the owned Deployments Owns(&appsv1.Deployment{}, builder.WithPredicates(StatusChangedPredicate{})). // Watch for the owned CronJobs - Owns(&batchv1beta1.CronJob{}, builder.WithPredicates(StatusChangedPredicate{})). + Owns(&batchv1.CronJob{}, builder.WithPredicates(StatusChangedPredicate{})). // Watch for the Integration Pods Watches(&source.Kind{Type: &corev1.Pod{}}, handler.EnqueueRequestsFromMapFunc(func(a ctrl.Object) []reconcile.Request { diff --git a/pkg/controller/integration/monitor.go b/pkg/controller/integration/monitor.go index 91ea73f63..3e68a3a24 100644 --- a/pkg/controller/integration/monitor.go +++ b/pkg/controller/integration/monitor.go @@ -25,7 +25,7 @@ import ( "strconv" appsv1 "k8s.io/api/apps/v1" - batchv1beta1 "k8s.io/api/batch/v1beta1" + batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/equality" k8serrors "k8s.io/apimachinery/pkg/api/errors" @@ -185,9 +185,9 @@ func (action *monitorAction) newController(ctx context.Context, env *trait.Envir integration: integration, } case isConditionTrue(integration, v1.IntegrationConditionCronJobAvailable): - obj = getUpdatedController(env, &batchv1beta1.CronJob{}) + obj = getUpdatedController(env, &batchv1.CronJob{}) controller = &cronJobController{ - obj: obj.(*batchv1beta1.CronJob), + obj: obj.(*batchv1.CronJob), integration: integration, client: action.client, context: ctx, diff --git a/pkg/controller/integration/monitor_cronjob.go b/pkg/controller/integration/monitor_cronjob.go index 8a024df16..77bf162b8 100644 --- a/pkg/controller/integration/monitor_cronjob.go +++ b/pkg/controller/integration/monitor_cronjob.go @@ -22,7 +22,6 @@ import ( "fmt" batchv1 "k8s.io/api/batch/v1" - batchv1beta1 "k8s.io/api/batch/v1beta1" corev1 "k8s.io/api/core/v1" ctrl "sigs.k8s.io/controller-runtime/pkg/client" @@ -33,7 +32,7 @@ import ( ) type cronJobController struct { - obj *batchv1beta1.CronJob + obj *batchv1.CronJob integration *v1.Integration client client.Client context context.Context diff --git a/pkg/trait/container.go b/pkg/trait/container.go index 0f61820e6..cc18bdf56 100644 --- a/pkg/trait/container.go +++ b/pkg/trait/container.go @@ -22,7 +22,7 @@ import ( "path" appsv1 "k8s.io/api/apps/v1" - "k8s.io/api/batch/v1beta1" + batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/util/intstr" @@ -297,7 +297,7 @@ func (t *containerTrait) configureContainer(e *Environment) error { } // CronJob - if err := e.Resources.VisitCronJobE(func(cron *v1beta1.CronJob) error { + if err := e.Resources.VisitCronJobE(func(cron *batchv1.CronJob) error { for _, envVar := range e.EnvVars { envvar.SetVar(&container.Env, envVar) } diff --git a/pkg/trait/cron.go b/pkg/trait/cron.go index dbfeb556e..fb717118f 100644 --- a/pkg/trait/cron.go +++ b/pkg/trait/cron.go @@ -24,7 +24,6 @@ import ( "strings" batchv1 "k8s.io/api/batch/v1" - batchv1beta1 "k8s.io/api/batch/v1beta1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -172,7 +171,7 @@ func (t *cronTrait) Configure(e *Environment) (bool, error) { } if t.ConcurrencyPolicy == "" { - t.ConcurrencyPolicy = string(batchv1beta1.ForbidConcurrent) + t.ConcurrencyPolicy = string(batchv1.ForbidConcurrent) } if (t.Schedule == "" && t.Components == "") && t.Fallback == nil { @@ -264,7 +263,7 @@ func (t *cronTrait) Apply(e *Environment) error { return nil } -func (t *cronTrait) getCronJobFor(e *Environment) *batchv1beta1.CronJob { +func (t *cronTrait) getCronJobFor(e *Environment) *batchv1.CronJob { annotations := make(map[string]string) if e.Integration.Annotations != nil { for k, v := range filterTransferableAnnotations(e.Integration.Annotations) { @@ -282,10 +281,10 @@ func (t *cronTrait) getCronJobFor(e *Environment) *batchv1beta1.CronJob { backoffLimit = *t.BackoffLimit } - cronjob := batchv1beta1.CronJob{ + cronjob := batchv1.CronJob{ TypeMeta: metav1.TypeMeta{ Kind: "CronJob", - APIVersion: batchv1beta1.SchemeGroupVersion.String(), + APIVersion: batchv1.SchemeGroupVersion.String(), }, ObjectMeta: metav1.ObjectMeta{ Name: e.Integration.Name, @@ -295,11 +294,11 @@ func (t *cronTrait) getCronJobFor(e *Environment) *batchv1beta1.CronJob { }, Annotations: e.Integration.Annotations, }, - Spec: batchv1beta1.CronJobSpec{ + Spec: batchv1.CronJobSpec{ Schedule: t.Schedule, - ConcurrencyPolicy: batchv1beta1.ConcurrencyPolicy(t.ConcurrencyPolicy), + ConcurrencyPolicy: batchv1.ConcurrencyPolicy(t.ConcurrencyPolicy), StartingDeadlineSeconds: t.StartingDeadlineSeconds, - JobTemplate: batchv1beta1.JobTemplateSpec{ + JobTemplate: batchv1.JobTemplateSpec{ Spec: batchv1.JobSpec{ ActiveDeadlineSeconds: &activeDeadline, BackoffLimit: &backoffLimit, diff --git a/pkg/trait/cron_test.go b/pkg/trait/cron_test.go index d6eb49169..0f2612473 100644 --- a/pkg/trait/cron_test.go +++ b/pkg/trait/cron_test.go @@ -24,7 +24,7 @@ import ( passert "github.com/magiconair/properties/assert" "github.com/stretchr/testify/assert" - batchv1beta1 "k8s.io/api/batch/v1beta1" + batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -428,7 +428,7 @@ func TestCronWithActiveDeadline(t *testing.T) { assert.Nil(t, ct.Fallback) assert.Contains(t, environment.Interceptors, "cron") - cronJob := environment.Resources.GetCronJob(func(job *batchv1beta1.CronJob) bool { return true }) + cronJob := environment.Resources.GetCronJob(func(job *batchv1.CronJob) bool { return true }) assert.NotNil(t, cronJob) assert.NotNil(t, cronJob.Spec.JobTemplate.Spec.ActiveDeadlineSeconds) @@ -501,7 +501,7 @@ func TestCronWithBackoffLimit(t *testing.T) { assert.Nil(t, ct.Fallback) assert.Contains(t, environment.Interceptors, "cron") - cronJob := environment.Resources.GetCronJob(func(job *batchv1beta1.CronJob) bool { return true }) + cronJob := environment.Resources.GetCronJob(func(job *batchv1.CronJob) bool { return true }) assert.NotNil(t, cronJob) assert.NotNil(t, cronJob.Spec.JobTemplate.Spec.ActiveDeadlineSeconds) diff --git a/pkg/trait/mount.go b/pkg/trait/mount.go index 6c8976a85..85b1f1742 100644 --- a/pkg/trait/mount.go +++ b/pkg/trait/mount.go @@ -23,7 +23,7 @@ import ( "strings" appsv1 "k8s.io/api/apps/v1" - "k8s.io/api/batch/v1beta1" + batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime/schema" @@ -118,7 +118,7 @@ func (t *mountTrait) Apply(e *Environment) error { } // CronJob - if err := e.Resources.VisitCronJobE(func(cron *v1beta1.CronJob) error { + if err := e.Resources.VisitCronJobE(func(cron *batchv1.CronJob) error { volumes = &cron.Spec.JobTemplate.Spec.Template.Spec.Volumes visited = true return nil diff --git a/pkg/trait/pod.go b/pkg/trait/pod.go index b3722f32b..b077328b0 100644 --- a/pkg/trait/pod.go +++ b/pkg/trait/pod.go @@ -21,7 +21,7 @@ import ( "fmt" appsv1 "k8s.io/api/apps/v1" - "k8s.io/api/batch/v1beta1" + batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/json" "k8s.io/apimachinery/pkg/util/strategicpatch" @@ -70,7 +70,7 @@ func (t *podTrait) Apply(e *Environment) error { } switch strategy { case ControllerStrategyCronJob: - e.Resources.VisitCronJob(func(c *v1beta1.CronJob) { + e.Resources.VisitCronJob(func(c *batchv1.CronJob) { if c.Name == e.Integration.Name { if patchedPodSpec, err = t.applyChangesTo(&c.Spec.JobTemplate.Spec.Template.Spec, changes); err == nil { c.Spec.JobTemplate.Spec.Template.Spec = *patchedPodSpec diff --git a/pkg/trait/test_support.go b/pkg/trait/test_support.go index 137f0f91d..31d77adc6 100644 --- a/pkg/trait/test_support.go +++ b/pkg/trait/test_support.go @@ -21,7 +21,7 @@ import ( serving "knative.dev/serving/pkg/apis/serving/v1" appsv1 "k8s.io/api/apps/v1" - "k8s.io/api/batch/v1beta1" + batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -93,12 +93,12 @@ func createNominalKnativeServiceTraitTest() (*Environment, *serving.Service) { return environment, knativeService } -func createNominalCronJobTraitTest() (*Environment, *v1beta1.CronJob) { - cronJob := &v1beta1.CronJob{ +func createNominalCronJobTraitTest() (*Environment, *batchv1.CronJob) { + cronJob := &batchv1.CronJob{ ObjectMeta: metav1.ObjectMeta{ Name: "integration-name", }, - Spec: v1beta1.CronJobSpec{}, + Spec: batchv1.CronJobSpec{}, } environment := &Environment{ diff --git a/pkg/trait/trait_types.go b/pkg/trait/trait_types.go index 492c3c22d..a53ec9841 100644 --- a/pkg/trait/trait_types.go +++ b/pkg/trait/trait_types.go @@ -27,7 +27,7 @@ import ( "github.com/pkg/errors" appsv1 "k8s.io/api/apps/v1" - "k8s.io/api/batch/v1beta1" + batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -326,7 +326,7 @@ func (e *Environment) GetIntegrationPodSpec() *corev1.PodSpec { } // Cronjob - cronJob := e.Resources.GetCronJob(func(c *v1beta1.CronJob) bool { + cronJob := e.Resources.GetCronJob(func(c *batchv1.CronJob) bool { return c.Name == e.Integration.Name }) if cronJob != nil { diff --git a/pkg/util/kubernetes/collection.go b/pkg/util/kubernetes/collection.go index 54e344905..f68b407b6 100644 --- a/pkg/util/kubernetes/collection.go +++ b/pkg/util/kubernetes/collection.go @@ -19,7 +19,7 @@ package kubernetes import ( appsv1 "k8s.io/api/apps/v1" - "k8s.io/api/batch/v1beta1" + batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" @@ -268,9 +268,9 @@ func (c *Collection) GetRoute(filter func(*routev1.Route) bool) *routev1.Route { } // GetCronJob returns a CronJob that matches the given function. -func (c *Collection) GetCronJob(filter func(job *v1beta1.CronJob) bool) *v1beta1.CronJob { - var retValue *v1beta1.CronJob - c.VisitCronJob(func(re *v1beta1.CronJob) { +func (c *Collection) GetCronJob(filter func(job *batchv1.CronJob) bool) *batchv1.CronJob { + var retValue *batchv1.CronJob + c.VisitCronJob(func(re *batchv1.CronJob) { if filter(re) { retValue = re } @@ -279,18 +279,18 @@ func (c *Collection) GetCronJob(filter func(job *v1beta1.CronJob) bool) *v1beta1 } // VisitCronJob executes the visitor function on all CronJob resources. -func (c *Collection) VisitCronJob(visitor func(*v1beta1.CronJob)) { +func (c *Collection) VisitCronJob(visitor func(*batchv1.CronJob)) { c.Visit(func(res runtime.Object) { - if conv, ok := res.(*v1beta1.CronJob); ok { + if conv, ok := res.(*batchv1.CronJob); ok { visitor(conv) } }) } // VisitCronJobE executes the visitor function on all CronJob resources. -func (c *Collection) VisitCronJobE(visitor func(*v1beta1.CronJob) error) error { +func (c *Collection) VisitCronJobE(visitor func(*batchv1.CronJob) error) error { return c.VisitE(func(res runtime.Object) error { - if conv, ok := res.(*v1beta1.CronJob); ok { + if conv, ok := res.(*batchv1.CronJob); ok { return visitor(conv) } @@ -373,7 +373,7 @@ func (c *Collection) VisitContainer(visitor func(container *corev1.Container)) { visitor(cntref) } }) - c.VisitCronJob(func(c *v1beta1.CronJob) { + c.VisitCronJob(func(c *batchv1.CronJob) { for idx := range c.Spec.JobTemplate.Spec.Template.Spec.Containers { cntref := &c.Spec.JobTemplate.Spec.Template.Spec.Containers[idx] visitor(cntref) @@ -395,7 +395,7 @@ func (c *Collection) GetController(filter func(object ctrl.Object) bool) ctrl.Ob if svc != nil { return svc } - cj := c.GetCronJob(func(job *v1beta1.CronJob) bool { + cj := c.GetCronJob(func(job *batchv1.CronJob) bool { return filter(job) }) if cj != nil { @@ -412,7 +412,7 @@ func (c *Collection) VisitPodSpec(visitor func(container *corev1.PodSpec)) { c.VisitKnativeConfigurationSpec(func(cs *serving.ConfigurationSpec) { visitor(&cs.Template.Spec.PodSpec) }) - c.VisitCronJob(func(d *v1beta1.CronJob) { + c.VisitCronJob(func(d *batchv1.CronJob) { visitor(&d.Spec.JobTemplate.Spec.Template.Spec) }) } @@ -425,7 +425,7 @@ func (c *Collection) VisitPodTemplateMeta(visitor func(meta *metav1.ObjectMeta)) c.VisitKnativeConfigurationSpec(func(cs *serving.ConfigurationSpec) { visitor(&cs.Template.ObjectMeta) }) - c.VisitCronJob(func(d *v1beta1.CronJob) { + c.VisitCronJob(func(d *batchv1.CronJob) { visitor(&d.Spec.JobTemplate.Spec.Template.ObjectMeta) }) }
