From 44e118006cccf63ae0aebd937f47552873cf02f0 Mon Sep 17 00:00:00 2001 From: Rotem Elad Date: Tue, 31 Dec 2024 17:40:22 +0200 Subject: [PATCH 1/3] Expose controller workqueue config via options Signed-off-by: Rotem Elad --- ADOPTERS.md | 1 + cmd/mpi-operator/app/options/options.go | 25 ++++++++++++--------- cmd/mpi-operator/app/server.go | 13 ++++++++++- pkg/controller/mpi_job_controller.go | 10 +++++---- pkg/controller/mpi_job_controller_test.go | 3 +++ test/integration/mpi_job_controller_test.go | 3 +++ 6 files changed, 40 insertions(+), 15 deletions(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index 8e4a51655..06a1254be 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -19,4 +19,5 @@ This page contains a list of organizations who are using MPI Operator. If you'd | [PITS Global Data Recovery Services](https://www.pitsdatarecovery.net/) | [Benjamin Trudeau](https://github.com/benjx1990) | | [Polyaxon](https://polyaxon.com/) | [Mourad Mourafiq](https://github.com/mouradmourafiq) | | [Qutoutiao](https://www.qutoutiao.net/) | [Zhaojing Yu](https://github.com/yuzhaojing) | +| [Run:AI](https://www.run.ai/) | [Rotem Elad](https://github.com/roteme-runai) | | [Tencent](http://tencent.com/en-us/) | [Lei Xue](https://github.com/carmark) | diff --git a/cmd/mpi-operator/app/options/options.go b/cmd/mpi-operator/app/options/options.go index 432e914a3..618554e61 100644 --- a/cmd/mpi-operator/app/options/options.go +++ b/cmd/mpi-operator/app/options/options.go @@ -28,16 +28,18 @@ const ( // ServerOption is the main context object for the controller manager. type ServerOption struct { - Kubeconfig string - MasterURL string - Threadiness int - MonitoringPort int - PrintVersion bool - GangSchedulingName string - Namespace string - LockNamespace string - QPS int - Burst int + Kubeconfig string + MasterURL string + Threadiness int + MonitoringPort int + PrintVersion bool + GangSchedulingName string + Namespace string + LockNamespace string + QPS int + Burst int + ControllerRateLimit int + ControllerBurst int } // NewServerOption creates a new CMServer with a default config. @@ -75,4 +77,7 @@ func (s *ServerOption) AddFlags(fs *flag.FlagSet) { fs.IntVar(&s.QPS, "kube-api-qps", 5, "QPS indicates the maximum QPS to the master from this client.") fs.IntVar(&s.Burst, "kube-api-burst", 10, "Maximum burst for throttle.") + + fs.IntVar(&s.ControllerRateLimit, "controller-queue-rate-limit", 10, "Rate limit of the controller events queue .") + fs.IntVar(&s.ControllerBurst, "controller-queue--burst", 100, "Maximum burst of the controller events queue.") } diff --git a/cmd/mpi-operator/app/server.go b/cmd/mpi-operator/app/server.go index 4024ca63a..0ff59cbd0 100644 --- a/cmd/mpi-operator/app/server.go +++ b/cmd/mpi-operator/app/server.go @@ -23,6 +23,7 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" + "golang.org/x/time/rate" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -38,6 +39,7 @@ import ( election "k8s.io/client-go/tools/leaderelection" "k8s.io/client-go/tools/leaderelection/resourcelock" "k8s.io/client-go/tools/record" + "k8s.io/client-go/util/workqueue" "k8s.io/klog" schedclientset "sigs.k8s.io/scheduler-plugins/pkg/generated/clientset/versioned" volcanoclient "volcano.sh/apis/pkg/client/clientset/versioned" @@ -67,6 +69,9 @@ var ( // allowed for timeout. Checks within the timeout period after the lease // expires will still return healthy. leaderHealthzAdaptorTimeout = time.Second * 20 + //exponential workqueue rate limiting config + workqueueExponentialBaseDelay = 5 * time.Millisecond + workqueueExponentialMaxDelay = 1000 * time.Second ) var ( @@ -141,6 +146,11 @@ func Run(opt *options.ServerOption) error { kubeInformerFactory := kubeinformers.NewSharedInformerFactoryWithOptions(kubeClient, 0, kubeInformerFactoryOpts...) kubeflowInformerFactory := informers.NewSharedInformerFactoryWithOptions(mpiJobClientSet, 0, kubeflowInformerFactoryOpts...) + workqueueRateLimiter := workqueue.NewTypedMaxOfRateLimiter( + workqueue.NewTypedItemExponentialFailureRateLimiter[any](workqueueExponentialBaseDelay, workqueueExponentialMaxDelay), + &workqueue.TypedBucketRateLimiter[any]{Limiter: rate.NewLimiter(rate.Limit(opt.ControllerRateLimit), opt.ControllerBurst)}, + ) + controller, err := controllersv1.NewMPIJobController( kubeClient, mpiJobClientSet, @@ -153,7 +163,8 @@ func Run(opt *options.ServerOption) error { kubeInformerFactory.Core().V1().Pods(), kubeInformerFactory.Scheduling().V1().PriorityClasses(), kubeflowInformerFactory.Kubeflow().V2beta1().MPIJobs(), - namespace, opt.GangSchedulingName) + namespace, opt.GangSchedulingName, + workqueueRateLimiter) if err != nil { klog.Fatalf("Failed to setup the controller") } diff --git a/pkg/controller/mpi_job_controller.go b/pkg/controller/mpi_job_controller.go index 4fcca25f2..74fa5bdda 100644 --- a/pkg/controller/mpi_job_controller.go +++ b/pkg/controller/mpi_job_controller.go @@ -269,10 +269,11 @@ func NewMPIJobController( podInformer coreinformers.PodInformer, priorityClassInformer schedulinginformers.PriorityClassInformer, mpiJobInformer informers.MPIJobInformer, - namespace, gangSchedulingName string) (*MPIJobController, error) { + namespace, gangSchedulingName string, + workqueueRateLimiter workqueue.TypedRateLimiter[any]) (*MPIJobController, error) { return NewMPIJobControllerWithClock(kubeClient, kubeflowClient, volcanoClient, schedClient, configMapInformer, secretInformer, serviceInformer, jobInformer, podInformer, - priorityClassInformer, mpiJobInformer, &clock.RealClock{}, namespace, gangSchedulingName) + priorityClassInformer, mpiJobInformer, &clock.RealClock{}, namespace, gangSchedulingName, workqueueRateLimiter) } // NewMPIJobControllerWithClock returns a new MPIJob controller. @@ -289,7 +290,8 @@ func NewMPIJobControllerWithClock( priorityClassInformer schedulinginformers.PriorityClassInformer, mpiJobInformer informers.MPIJobInformer, clock clock.WithTicker, - namespace, gangSchedulingName string) (*MPIJobController, error) { + namespace, gangSchedulingName string, + workqueueRateLimiter workqueue.TypedRateLimiter[any]) (*MPIJobController, error) { // Create event broadcaster. klog.V(4).Info("Creating event broadcaster") @@ -336,7 +338,7 @@ func NewMPIJobControllerWithClock( priorityClassSynced: priorityClassSynced, mpiJobLister: mpiJobInformer.Lister(), mpiJobSynced: mpiJobInformer.Informer().HasSynced, - queue: workqueue.NewTypedRateLimitingQueueWithConfig(workqueue.DefaultTypedControllerRateLimiter[any](), workqueue.TypedRateLimitingQueueConfig[any]{Name: "MPIJob"}), + queue: workqueue.NewTypedRateLimitingQueueWithConfig(workqueueRateLimiter, workqueue.TypedRateLimitingQueueConfig[any]{Name: "MPIJob"}), recorder: recorder, clock: clock, } diff --git a/pkg/controller/mpi_job_controller_test.go b/pkg/controller/mpi_job_controller_test.go index cf51131fe..49585daa2 100644 --- a/pkg/controller/mpi_job_controller_test.go +++ b/pkg/controller/mpi_job_controller_test.go @@ -35,6 +35,7 @@ import ( core "k8s.io/client-go/testing" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/record" + "k8s.io/client-go/util/workqueue" "k8s.io/utils/clock" clocktesting "k8s.io/utils/clock/testing" "k8s.io/utils/ptr" @@ -163,6 +164,7 @@ func (f *fixture) newController(clock clock.WithTicker) (*MPIJobController, info f.kubeClient = k8sfake.NewSimpleClientset(f.kubeObjects...) i := informers.NewSharedInformerFactory(f.client, noResyncPeriodFunc()) k8sI := kubeinformers.NewSharedInformerFactory(f.kubeClient, noResyncPeriodFunc()) + workqueueRateLimiter := workqueue.DefaultTypedControllerRateLimiter[any]() c, err := NewMPIJobControllerWithClock( f.kubeClient, @@ -179,6 +181,7 @@ func (f *fixture) newController(clock clock.WithTicker) (*MPIJobController, info clock, metav1.NamespaceAll, f.gangSchedulingName, + workqueueRateLimiter, ) if err != nil { fmt.Println("Failed to setup the controller") diff --git a/test/integration/mpi_job_controller_test.go b/test/integration/mpi_job_controller_test.go index f260d829c..3d604c74e 100644 --- a/test/integration/mpi_job_controller_test.go +++ b/test/integration/mpi_job_controller_test.go @@ -32,6 +32,7 @@ import ( kubeinformers "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/reference" + "k8s.io/client-go/util/workqueue" "k8s.io/utils/ptr" schedv1alpha1 "sigs.k8s.io/scheduler-plugins/apis/scheduling/v1alpha1" schedclientset "sigs.k8s.io/scheduler-plugins/pkg/generated/clientset/versioned" @@ -909,6 +910,7 @@ func startController( ) { kubeInformerFactory := kubeinformers.NewSharedInformerFactory(kClient, 0) mpiInformerFactory := informers.NewSharedInformerFactory(mpiClient, 0) + workqueueRateLimiter := workqueue.DefaultTypedControllerRateLimiter[any]() var ( volcanoClient volcanoclient.Interface schedClient schedclientset.Interface @@ -935,6 +937,7 @@ func startController( kubeInformerFactory.Scheduling().V1().PriorityClasses(), mpiInformerFactory.Kubeflow().V2beta1().MPIJobs(), metav1.NamespaceAll, schedulerName, + workqueueRateLimiter, ) if err != nil { panic(err) From c21d709c0bea0c6f6a98963538856f9806aaa44e Mon Sep 17 00:00:00 2001 From: Rotem Elad Date: Sun, 5 Jan 2025 11:46:02 +0200 Subject: [PATCH 2/3] Fix double hyphen typo Signed-off-by: Rotem Elad --- cmd/mpi-operator/app/options/options.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/mpi-operator/app/options/options.go b/cmd/mpi-operator/app/options/options.go index 618554e61..e5179277b 100644 --- a/cmd/mpi-operator/app/options/options.go +++ b/cmd/mpi-operator/app/options/options.go @@ -79,5 +79,5 @@ func (s *ServerOption) AddFlags(fs *flag.FlagSet) { fs.IntVar(&s.Burst, "kube-api-burst", 10, "Maximum burst for throttle.") fs.IntVar(&s.ControllerRateLimit, "controller-queue-rate-limit", 10, "Rate limit of the controller events queue .") - fs.IntVar(&s.ControllerBurst, "controller-queue--burst", 100, "Maximum burst of the controller events queue.") + fs.IntVar(&s.ControllerBurst, "controller-queue-burst", 100, "Maximum burst of the controller events queue.") } From b8ce46369f22e478c8f13ebf15eacd9117aec662 Mon Sep 17 00:00:00 2001 From: Rotem Elad Date: Wed, 8 Jan 2025 11:21:09 +0200 Subject: [PATCH 3/3] Generate Signed-off-by: Rotem Elad --- pkg/apis/kubeflow/v2beta1/zz_generated.deepcopy.go | 2 +- pkg/apis/kubeflow/v2beta1/zz_generated.defaults.go | 2 +- pkg/client/applyconfiguration/internal/internal.go | 2 +- pkg/client/applyconfiguration/kubeflow/v2beta1/jobcondition.go | 2 +- pkg/client/applyconfiguration/kubeflow/v2beta1/jobstatus.go | 2 +- pkg/client/applyconfiguration/kubeflow/v2beta1/mpijob.go | 2 +- pkg/client/applyconfiguration/kubeflow/v2beta1/mpijobspec.go | 2 +- pkg/client/applyconfiguration/kubeflow/v2beta1/replicaspec.go | 2 +- pkg/client/applyconfiguration/kubeflow/v2beta1/replicastatus.go | 2 +- pkg/client/applyconfiguration/kubeflow/v2beta1/runpolicy.go | 2 +- .../applyconfiguration/kubeflow/v2beta1/schedulingpolicy.go | 2 +- pkg/client/applyconfiguration/utils.go | 2 +- pkg/client/clientset/versioned/clientset.go | 2 +- pkg/client/clientset/versioned/fake/clientset_generated.go | 2 +- pkg/client/clientset/versioned/fake/doc.go | 2 +- pkg/client/clientset/versioned/fake/register.go | 2 +- pkg/client/clientset/versioned/scheme/doc.go | 2 +- pkg/client/clientset/versioned/scheme/register.go | 2 +- pkg/client/clientset/versioned/typed/kubeflow/v2beta1/doc.go | 2 +- .../clientset/versioned/typed/kubeflow/v2beta1/fake/doc.go | 2 +- .../typed/kubeflow/v2beta1/fake/fake_kubeflow_client.go | 2 +- .../versioned/typed/kubeflow/v2beta1/fake/fake_mpijob.go | 2 +- .../versioned/typed/kubeflow/v2beta1/generated_expansion.go | 2 +- .../versioned/typed/kubeflow/v2beta1/kubeflow_client.go | 2 +- pkg/client/clientset/versioned/typed/kubeflow/v2beta1/mpijob.go | 2 +- pkg/client/informers/externalversions/factory.go | 2 +- pkg/client/informers/externalversions/generic.go | 2 +- .../externalversions/internalinterfaces/factory_interfaces.go | 2 +- pkg/client/informers/externalversions/kubeflow/interface.go | 2 +- .../informers/externalversions/kubeflow/v2beta1/interface.go | 2 +- .../informers/externalversions/kubeflow/v2beta1/mpijob.go | 2 +- pkg/client/listers/kubeflow/v2beta1/expansion_generated.go | 2 +- pkg/client/listers/kubeflow/v2beta1/mpijob.go | 2 +- 33 files changed, 33 insertions(+), 33 deletions(-) diff --git a/pkg/apis/kubeflow/v2beta1/zz_generated.deepcopy.go b/pkg/apis/kubeflow/v2beta1/zz_generated.deepcopy.go index e85549f50..f4bed7c25 100644 --- a/pkg/apis/kubeflow/v2beta1/zz_generated.deepcopy.go +++ b/pkg/apis/kubeflow/v2beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ //go:build !ignore_autogenerated // +build !ignore_autogenerated -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/apis/kubeflow/v2beta1/zz_generated.defaults.go b/pkg/apis/kubeflow/v2beta1/zz_generated.defaults.go index 1e377e17f..1c7f666c2 100644 --- a/pkg/apis/kubeflow/v2beta1/zz_generated.defaults.go +++ b/pkg/apis/kubeflow/v2beta1/zz_generated.defaults.go @@ -1,7 +1,7 @@ //go:build !ignore_autogenerated // +build !ignore_autogenerated -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/applyconfiguration/internal/internal.go b/pkg/client/applyconfiguration/internal/internal.go index d4bae37d2..392d06d96 100644 --- a/pkg/client/applyconfiguration/internal/internal.go +++ b/pkg/client/applyconfiguration/internal/internal.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/applyconfiguration/kubeflow/v2beta1/jobcondition.go b/pkg/client/applyconfiguration/kubeflow/v2beta1/jobcondition.go index d44bd9ab3..3729f0848 100644 --- a/pkg/client/applyconfiguration/kubeflow/v2beta1/jobcondition.go +++ b/pkg/client/applyconfiguration/kubeflow/v2beta1/jobcondition.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/applyconfiguration/kubeflow/v2beta1/jobstatus.go b/pkg/client/applyconfiguration/kubeflow/v2beta1/jobstatus.go index 005ae222a..6e3123e10 100644 --- a/pkg/client/applyconfiguration/kubeflow/v2beta1/jobstatus.go +++ b/pkg/client/applyconfiguration/kubeflow/v2beta1/jobstatus.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/applyconfiguration/kubeflow/v2beta1/mpijob.go b/pkg/client/applyconfiguration/kubeflow/v2beta1/mpijob.go index 978537896..6948de197 100644 --- a/pkg/client/applyconfiguration/kubeflow/v2beta1/mpijob.go +++ b/pkg/client/applyconfiguration/kubeflow/v2beta1/mpijob.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/applyconfiguration/kubeflow/v2beta1/mpijobspec.go b/pkg/client/applyconfiguration/kubeflow/v2beta1/mpijobspec.go index 65b3f3d12..6c4d8f946 100644 --- a/pkg/client/applyconfiguration/kubeflow/v2beta1/mpijobspec.go +++ b/pkg/client/applyconfiguration/kubeflow/v2beta1/mpijobspec.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/applyconfiguration/kubeflow/v2beta1/replicaspec.go b/pkg/client/applyconfiguration/kubeflow/v2beta1/replicaspec.go index c14df1cc6..073e6f927 100644 --- a/pkg/client/applyconfiguration/kubeflow/v2beta1/replicaspec.go +++ b/pkg/client/applyconfiguration/kubeflow/v2beta1/replicaspec.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/applyconfiguration/kubeflow/v2beta1/replicastatus.go b/pkg/client/applyconfiguration/kubeflow/v2beta1/replicastatus.go index 36d160968..722178dcb 100644 --- a/pkg/client/applyconfiguration/kubeflow/v2beta1/replicastatus.go +++ b/pkg/client/applyconfiguration/kubeflow/v2beta1/replicastatus.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/applyconfiguration/kubeflow/v2beta1/runpolicy.go b/pkg/client/applyconfiguration/kubeflow/v2beta1/runpolicy.go index c87a840be..7d216e0b6 100644 --- a/pkg/client/applyconfiguration/kubeflow/v2beta1/runpolicy.go +++ b/pkg/client/applyconfiguration/kubeflow/v2beta1/runpolicy.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/applyconfiguration/kubeflow/v2beta1/schedulingpolicy.go b/pkg/client/applyconfiguration/kubeflow/v2beta1/schedulingpolicy.go index a08f96718..d7c1add92 100644 --- a/pkg/client/applyconfiguration/kubeflow/v2beta1/schedulingpolicy.go +++ b/pkg/client/applyconfiguration/kubeflow/v2beta1/schedulingpolicy.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/applyconfiguration/utils.go b/pkg/client/applyconfiguration/utils.go index a4a8b4048..210aa6e3f 100644 --- a/pkg/client/applyconfiguration/utils.go +++ b/pkg/client/applyconfiguration/utils.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/clientset.go b/pkg/client/clientset/versioned/clientset.go index ddcb299fa..189d847f6 100644 --- a/pkg/client/clientset/versioned/clientset.go +++ b/pkg/client/clientset/versioned/clientset.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/fake/clientset_generated.go b/pkg/client/clientset/versioned/fake/clientset_generated.go index a01effe47..05637bbd0 100644 --- a/pkg/client/clientset/versioned/fake/clientset_generated.go +++ b/pkg/client/clientset/versioned/fake/clientset_generated.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/fake/doc.go b/pkg/client/clientset/versioned/fake/doc.go index 90b7845dc..3c95e6541 100644 --- a/pkg/client/clientset/versioned/fake/doc.go +++ b/pkg/client/clientset/versioned/fake/doc.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/fake/register.go b/pkg/client/clientset/versioned/fake/register.go index ecb01d82c..11af05365 100644 --- a/pkg/client/clientset/versioned/fake/register.go +++ b/pkg/client/clientset/versioned/fake/register.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/scheme/doc.go b/pkg/client/clientset/versioned/scheme/doc.go index a9f49ab60..3c7f71f28 100644 --- a/pkg/client/clientset/versioned/scheme/doc.go +++ b/pkg/client/clientset/versioned/scheme/doc.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/scheme/register.go b/pkg/client/clientset/versioned/scheme/register.go index 0c28704b1..74e273e5d 100644 --- a/pkg/client/clientset/versioned/scheme/register.go +++ b/pkg/client/clientset/versioned/scheme/register.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/doc.go b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/doc.go index 9be95f17e..1b04572ea 100644 --- a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/doc.go +++ b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/doc.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/fake/doc.go b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/fake/doc.go index 5f1ad32d4..982051765 100644 --- a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/fake/doc.go +++ b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/fake/doc.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/fake/fake_kubeflow_client.go b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/fake/fake_kubeflow_client.go index 7b07f3353..4637a5dc9 100644 --- a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/fake/fake_kubeflow_client.go +++ b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/fake/fake_kubeflow_client.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/fake/fake_mpijob.go b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/fake/fake_mpijob.go index 640f29e3f..b324967c5 100644 --- a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/fake/fake_mpijob.go +++ b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/fake/fake_mpijob.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/generated_expansion.go b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/generated_expansion.go index 54b586cb8..cf4562523 100644 --- a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/generated_expansion.go +++ b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/generated_expansion.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/kubeflow_client.go b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/kubeflow_client.go index 45007d556..47c71b485 100644 --- a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/kubeflow_client.go +++ b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/kubeflow_client.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/mpijob.go b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/mpijob.go index 9daf19516..2d466c23d 100644 --- a/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/mpijob.go +++ b/pkg/client/clientset/versioned/typed/kubeflow/v2beta1/mpijob.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/informers/externalversions/factory.go b/pkg/client/informers/externalversions/factory.go index 9c4945392..4dd166718 100644 --- a/pkg/client/informers/externalversions/factory.go +++ b/pkg/client/informers/externalversions/factory.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/informers/externalversions/generic.go b/pkg/client/informers/externalversions/generic.go index 31bb1e44e..ecacab8dd 100644 --- a/pkg/client/informers/externalversions/generic.go +++ b/pkg/client/informers/externalversions/generic.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go b/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go index 3e513389e..262629534 100644 --- a/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go +++ b/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/informers/externalversions/kubeflow/interface.go b/pkg/client/informers/externalversions/kubeflow/interface.go index bc3bff2ba..5835b3ed6 100644 --- a/pkg/client/informers/externalversions/kubeflow/interface.go +++ b/pkg/client/informers/externalversions/kubeflow/interface.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/informers/externalversions/kubeflow/v2beta1/interface.go b/pkg/client/informers/externalversions/kubeflow/v2beta1/interface.go index 3ca58b952..035be48c2 100644 --- a/pkg/client/informers/externalversions/kubeflow/v2beta1/interface.go +++ b/pkg/client/informers/externalversions/kubeflow/v2beta1/interface.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/informers/externalversions/kubeflow/v2beta1/mpijob.go b/pkg/client/informers/externalversions/kubeflow/v2beta1/mpijob.go index 5237102f0..daa10bed7 100644 --- a/pkg/client/informers/externalversions/kubeflow/v2beta1/mpijob.go +++ b/pkg/client/informers/externalversions/kubeflow/v2beta1/mpijob.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/listers/kubeflow/v2beta1/expansion_generated.go b/pkg/client/listers/kubeflow/v2beta1/expansion_generated.go index f95269f8b..0891d51b4 100644 --- a/pkg/client/listers/kubeflow/v2beta1/expansion_generated.go +++ b/pkg/client/listers/kubeflow/v2beta1/expansion_generated.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/pkg/client/listers/kubeflow/v2beta1/mpijob.go b/pkg/client/listers/kubeflow/v2beta1/mpijob.go index 351bf4bdc..301d6cecf 100644 --- a/pkg/client/listers/kubeflow/v2beta1/mpijob.go +++ b/pkg/client/listers/kubeflow/v2beta1/mpijob.go @@ -1,4 +1,4 @@ -// Copyright 2024 The Kubeflow Authors. +// Copyright 2025 The Kubeflow Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License.