Skip to content

Scaling of ClusterScoped resources might not work #6658

Open
@zroubalik

Description

@zroubalik

Discussed in #6631

Originally posted by vasyly71 March 20, 2025
Hi,
I tried it with keda 2.16.1 nd KEDA 2.15.1 on EKS cluster 1.30

Attached zip test.zip contains resource

  • CRD (test-crds.yaml):
    • nstest - namespaced CRD
    • cltest - cluster scoped crd
  • Resources
    • nstest - example of namespaced resource
    • cltest - example of cluster scoped resource
  • scaled objects
    • nstest - scaledobject for namespaced resource
    • cltest - scaledobject for cluster scoped resource

when i create all elements above and execute "kubectl get so" i get:

kubectl get so
NAME     SCALETARGETKIND                 SCALETARGETNAME   MIN   MAX   TRIGGERS     AUTHENTICATION   READY   ACTIVE    FALLBACK   PAUSED    AGE
cltest                                   cltest            1     10    prometheus                    False   Unknown   Unknown    Unknown   22h
nstest   mygroup.example.com/v1.nstest   nstest            1     10    prometheus                    True    True      Unknown    Unknown   22h

The only difference between resources is one is namespaced another is cluster scoped and scaledobject for cluster scoped does not become ready.

Here is a log and its fragment, note that first log sais no scale subresource but it is there, and thenScaledObject doesn't have correct scaleTargetRef specification {"controller": "scaledobject", "controllerGroup": "keda.sh", "controllerKind": "ScaledObject", "ScaledObject": {"name":"cltest","namespace":"default"}, "namespace": "default", "name": "cltest", "reconcileID": "6a1f18f7-5dbc-4175-93ff-5a9fa7a14a84", "error": "the server could not find the requested resource (get cltests.meta.k8s.io cltest)"}

keda-operator.log

2025-03-19T22:35:31Z	INFO	Reconciling ScaledObject	{"controller": "scaledobject", "controllerGroup": "keda.sh", "controllerKind": "ScaledObject", "ScaledObject": {"name":"cltest","namespace":"default"}, "namespace": "default", "name": "cltest", "reconcileID": "6a1f18f7-5dbc-4175-93ff-5a9fa7a14a84"}
2025-03-19T22:35:31Z	INFO	Starting workers	{"controller": "clustertriggerauthentication", "controllerGroup": "keda.sh", "controllerKind": "ClusterTriggerAuthentication", "worker count": 1}
2025-03-19T22:35:31Z	INFO	Reconciling ScaledObject	{"controller": "scaledobject", "controllerGroup": "keda.sh", "controllerKind": "ScaledObject", "ScaledObject": {"name":"nstest","namespace":"default"}, "namespace": "default", "name": "nstest", "reconcileID": "f4648b29-0cbd-40d6-9df6-b3c1f511cb9c"}
2025-03-19T22:35:31Z	INFO	Starting workers	{"controller": "scaledjob", "controllerGroup": "keda.sh", "controllerKind": "ScaledJob", "worker count": 1}
2025-03-19T22:35:31Z	INFO	cert-rotation	certs are ready in /certs
2025-03-19T22:35:31Z	INFO	Starting workers	{"controller": "triggerauthentication", "controllerGroup": "keda.sh", "controllerKind": "TriggerAuthentication", "worker count": 1}
2025-03-19T22:35:31Z	INFO	Starting workers	{"controller": "cert-rotator", "worker count": 1}
2025-03-19T22:35:31Z	INFO	cert-rotation	no cert refresh needed
2025-03-19T22:35:31Z	INFO	cert-rotation	Ensuring CA cert	{"name": "keda-admission", "gvk": "admissionregistration.k8s.io/v1, Kind=ValidatingWebhookConfiguration", "name": "keda-admission", "gvk": "admissionregistration.k8s.io/v1, Kind=ValidatingWebhookConfiguration"}
2025-03-19T22:35:31Z	ERROR	Target resource doesn't expose /scale subresource	{"controller": "scaledobject", "controllerGroup": "keda.sh", "controllerKind": "ScaledObject", "ScaledObject": {"name":"cltest","namespace":"default"}, "namespace": "default", "name": "cltest", "reconcileID": "6a1f18f7-5dbc-4175-93ff-5a9fa7a14a84", "resource": "mygroup.example.com/v1.cltest", "name": "cltest", "error": "the server could not find the requested resource (get cltests.meta.k8s.io cltest)"}
github.com/kedacore/keda/v2/controllers/keda.(*ScaledObjectReconciler).checkTargetResourceIsScalable
	/workspace/controllers/keda/scaledobject_controller.go:401
github.com/kedacore/keda/v2/controllers/keda.(*ScaledObjectReconciler).reconcileScaledObject
	/workspace/controllers/keda/scaledobject_controller.go:265
github.com/kedacore/keda/v2/controllers/keda.(*ScaledObjectReconciler).Reconcile
	/workspace/controllers/keda/scaledobject_controller.go:192
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile
	/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:119
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
	/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:316
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
	/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:266
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
	/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:227
2025-03-19T22:35:31Z	ERROR	ScaledObject doesn't have correct scaleTargetRef specification	{"controller": "scaledobject", "controllerGroup": "keda.sh", "controllerKind": "ScaledObject", "ScaledObject": {"name":"cltest","namespace":"default"}, "namespace": "default", "name": "cltest", "reconcileID": "6a1f18f7-5dbc-4175-93ff-5a9fa7a14a84", "error": "the server could not find the requested resource (get cltests.meta.k8s.io cltest)"}
github.com/kedacore/keda/v2/controllers/keda.(*ScaledObjectReconciler).Reconcile
	/workspace/controllers/keda/scaledobject_controller.go:194
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile
	/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:119
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
	/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:316
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
	/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:266
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
	/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:227
2025-03-19T22:35:31Z	INFO	cert-rotation	Ensuring CA cert	{"name": "v1beta1.external.metrics.k8s.io", "gvk": "apiregistration.k8s.io/v1, Kind=APIService", "name": "v1beta1.external.metrics.k8s.io", "gvk": "apiregistration.k8s.io/v1, Kind=APIService"}
2025-03-19T22:35:31Z	INFO	Detected resource targeted for scaling	{"controller": "scaledobject", "controllerGroup": "keda.sh", "controllerKind": "ScaledObject", "ScaledObject": {"name":"nstest","namespace":"default"}, "namespace": "default", "name": "nstest", "reconcileID": "f4648b29-0cbd-40d6-9df6-b3c1f511cb9c", "resource": "mygroup.example.com/v1.nstest", "name": "nstest"}
2025-03-19T22:35:31Z	ERROR	Reconciler error	{"controller": "scaledobject", "controllerGroup": "keda.sh", "controllerKind": "ScaledObject", "ScaledObject": {"name":"cltest","namespace":"default"}, "namespace": "default", "name": "cltest", "reconcileID": "6a1f18f7-5dbc-4175-93ff-5a9fa7a14a84", "error": "the server could not find the requested resource (get cltests.meta.k8s.io cltest)"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
	/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:329
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
	/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:266
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
	/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:227

Thank You
Vasyl

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    To Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions