Skip to content

Commit

Permalink
Switch CronJobs to v1 in VPA code
Browse files Browse the repository at this point in the history
So it will work with K8s 1.25
  • Loading branch information
jbartosik committed May 13, 2022
1 parent 3af1001 commit c79bdaf
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import (
appsv1 "k8s.io/api/apps/v1"
autoscalingapi "k8s.io/api/autoscaling/v1"
batchv1 "k8s.io/api/batch/v1"
batchv1beta1 "k8s.io/api/batch/v1beta1"
corev1 "k8s.io/api/core/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
apimeta "k8s.io/apimachinery/pkg/api/meta"
Expand All @@ -40,7 +39,7 @@ import (
"k8s.io/client-go/restmapper"
"k8s.io/client-go/scale"
"k8s.io/client-go/tools/cache"
"k8s.io/klog/v2"
klog "k8s.io/klog/v2"
)

type wellKnownController string
Expand Down Expand Up @@ -129,7 +128,7 @@ func NewControllerFetcher(config *rest.Config, kubeClient kube_client.Interface,
statefulSet: factory.Apps().V1().StatefulSets().Informer(),
replicationController: factory.Core().V1().ReplicationControllers().Informer(),
job: factory.Batch().V1().Jobs().Informer(),
cronJob: factory.Batch().V1beta1().CronJobs().Informer(),
cronJob: factory.Batch().V1().CronJobs().Informer(),
}

for kind, informer := range informersMap {
Expand Down Expand Up @@ -191,7 +190,7 @@ func getParentOfWellKnownController(informer cache.SharedIndexInformer, controll
return getOwnerController(apiObj.OwnerReferences, namespace), nil
case (*batchv1.Job):
return getOwnerController(apiObj.OwnerReferences, namespace), nil
case (*batchv1beta1.CronJob):
case (*batchv1.CronJob):
return getOwnerController(apiObj.OwnerReferences, namespace), nil
case (*corev1.ReplicationController):
return getOwnerController(apiObj.OwnerReferences, namespace), nil
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import (
appsv1 "k8s.io/api/apps/v1"
autoscalingv1 "k8s.io/api/autoscaling/v1"
batchv1 "k8s.io/api/batch/v1"
batchv1beta1 "k8s.io/api/batch/v1beta1"
corev1 "k8s.io/api/core/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand Down Expand Up @@ -231,7 +230,7 @@ func TestControllerFetcher(t *testing.T) {
},
},
},
}, &batchv1beta1.CronJob{
}, &batchv1.CronJob{
TypeMeta: metav1.TypeMeta{
Kind: "CronJob",
},
Expand All @@ -248,7 +247,7 @@ func TestControllerFetcher(t *testing.T) {
name: "CronJob no parent",
key: &ControllerKeyWithAPIVersion{ControllerKey: ControllerKey{
Name: "test-cronjob", Kind: "CronJob", Namespace: "test-namespace"}},
objects: []runtime.Object{&batchv1beta1.CronJob{
objects: []runtime.Object{&batchv1.CronJob{
TypeMeta: metav1.TypeMeta{
Kind: "CronJob",
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import (
"testing"
"time"

"github.com/prometheus/client_golang/api"
prometheusv1 "github.com/prometheus/client_golang/api/prometheus/v1"
prommodel "github.com/prometheus/common/model"
"github.com/stretchr/testify/assert"
Expand Down Expand Up @@ -83,15 +82,15 @@ func (m *mockPrometheusAPI) Flags(ctx context.Context) (prometheusv1.FlagsResult
panic("not implemented")
}

func (m *mockPrometheusAPI) LabelNames(ctx context.Context) ([]string, error) {
func (m *mockPrometheusAPI) LabelNames(ctx context.Context, matches []string, startTime time.Time, endTime time.Time) ([]string, prometheusv1.Warnings, error) {
panic("not implemented")
}

func (m *mockPrometheusAPI) LabelValues(ctx context.Context, label string) (prommodel.LabelValues, error) {
func (m *mockPrometheusAPI) LabelValues(ctx context.Context, label string, matches []string, startTime time.Time, endTime time.Time) (prommodel.LabelValues, prometheusv1.Warnings, error) {
panic("not implemented")
}

func (m *mockPrometheusAPI) Series(ctx context.Context, matches []string, startTime time.Time, endTime time.Time) ([]prommodel.LabelSet, api.Warnings, error) {
func (m *mockPrometheusAPI) Series(ctx context.Context, matches []string, startTime time.Time, endTime time.Time) ([]prommodel.LabelSet, prometheusv1.Warnings, error) {
panic("not implemented")
}

Expand All @@ -111,7 +110,31 @@ func (m *mockPrometheusAPI) TargetsMetadata(ctx context.Context, _, _, _ string)
panic("not implemented")
}

func (m *mockPrometheusAPI) Query(ctx context.Context, query string, ts time.Time) (prommodel.Value, api.Warnings, error) {
func (m *mockPrometheusAPI) Buildinfo(ctx context.Context) (prometheusv1.BuildinfoResult, error) {
panic("not implemented")
}

func (m *mockPrometheusAPI) Metadata(ctx context.Context, metric string, limit string) (map[string][]prometheusv1.Metadata, error) {
panic("not implemented")
}

func (m *mockPrometheusAPI) QueryExemplars(ctx context.Context, query string, startTime time.Time, endTime time.Time) ([]prometheusv1.ExemplarQueryResult, error) {
panic("not implemented")
}

func (m *mockPrometheusAPI) Runtimeinfo(ctx context.Context) (prometheusv1.RuntimeinfoResult, error) {
panic("not implemented")
}

func (m *mockPrometheusAPI) TSDB(ctx context.Context) (prometheusv1.TSDBResult, error) {
panic("not implemented")
}

func (m *mockPrometheusAPI) WalReplay(ctx context.Context) (prometheusv1.WalReplayStatus, error) {
panic("not implemented")
}

func (m *mockPrometheusAPI) Query(ctx context.Context, query string, ts time.Time) (prommodel.Value, prometheusv1.Warnings, error) {
args := m.Called(ctx, query, ts)
var returnArg prommodel.Value
if args.Get(0) != nil {
Expand All @@ -120,7 +143,7 @@ func (m *mockPrometheusAPI) Query(ctx context.Context, query string, ts time.Tim
return returnArg, nil, args.Error(1)
}

func (m *mockPrometheusAPI) QueryRange(ctx context.Context, query string, r prometheusv1.Range) (prommodel.Value, api.Warnings, error) {
func (m *mockPrometheusAPI) QueryRange(ctx context.Context, query string, r prometheusv1.Range) (prommodel.Value, prometheusv1.Warnings, error) {
args := m.Called(ctx, query, r)
var returnArg prommodel.Value
if args.Get(0) != nil {
Expand Down
7 changes: 3 additions & 4 deletions vertical-pod-autoscaler/pkg/target/fetcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import (

appsv1 "k8s.io/api/apps/v1"
batchv1 "k8s.io/api/batch/v1"
batchv1beta1 "k8s.io/api/batch/v1beta1"
corev1 "k8s.io/api/core/v1"
apimeta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand All @@ -40,7 +39,7 @@ import (
"k8s.io/client-go/restmapper"
"k8s.io/client-go/scale"
"k8s.io/client-go/tools/cache"
"k8s.io/klog/v2"
klog "k8s.io/klog/v2"
)

const (
Expand Down Expand Up @@ -87,7 +86,7 @@ func NewVpaTargetSelectorFetcher(config *rest.Config, kubeClient kube_client.Int
statefulSet: factory.Apps().V1().StatefulSets().Informer(),
replicationController: factory.Core().V1().ReplicationControllers().Informer(),
job: factory.Batch().V1().Jobs().Informer(),
cronJob: factory.Batch().V1beta1().CronJobs().Informer(),
cronJob: factory.Batch().V1().CronJobs().Informer(),
}

for kind, informer := range informersMap {
Expand Down Expand Up @@ -165,7 +164,7 @@ func getLabelSelector(informer cache.SharedIndexInformer, kind, namespace, name
return metav1.LabelSelectorAsSelector(apiObj.Spec.Selector)
case (*batchv1.Job):
return metav1.LabelSelectorAsSelector(apiObj.Spec.Selector)
case (*batchv1beta1.CronJob):
case (*batchv1.CronJob):
return metav1.LabelSelectorAsSelector(metav1.SetAsLabelSelector(apiObj.Spec.JobTemplate.Spec.Template.Labels))
case (*corev1.ReplicationController):
return metav1.LabelSelectorAsSelector(metav1.SetAsLabelSelector(apiObj.Spec.Selector))
Expand Down

0 comments on commit c79bdaf

Please sign in to comment.