Skip to content

Commit 3b6d478

Browse files
restoring zero initial scale behavior (#646)
Signed-off-by: Brett Thompson <[email protected]>
1 parent 4bb6c77 commit 3b6d478

File tree

21 files changed

+270
-2692
lines changed

21 files changed

+270
-2692
lines changed

charts/kserve-resources/templates/clusterrole.yaml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -186,14 +186,6 @@ rules:
186186
- get
187187
- patch
188188
- update
189-
- apiGroups:
190-
- operator.knative.dev
191-
resources:
192-
- knativeservings
193-
verbs:
194-
- get
195-
- list
196-
- watch
197189
- apiGroups:
198190
- rbac.authorization.k8s.io
199191
resourceNames:

cmd/manager/main.go

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import (
3131
typedcorev1 "k8s.io/client-go/kubernetes/typed/core/v1"
3232
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
3333
"k8s.io/client-go/tools/record"
34-
operatorv1beta1 "knative.dev/operator/pkg/apis/operator/v1beta1"
3534
knservingv1 "knative.dev/serving/pkg/apis/serving/v1"
3635
ctrl "sigs.k8s.io/controller-runtime"
3736
"sigs.k8s.io/controller-runtime/pkg/client/config"
@@ -191,19 +190,6 @@ func main() {
191190
}
192191
}
193192

194-
knServingFound, knServingCheckErr := utils.IsCrdAvailable(cfg, operatorv1beta1.SchemeGroupVersion.String(), constants.KnativeServingKind)
195-
if knServingCheckErr != nil {
196-
setupLog.Error(knServingCheckErr, "error when checking if Knative KnativeServing kind is available")
197-
os.Exit(1)
198-
}
199-
if knServingFound {
200-
setupLog.Info("Setting up Knative Operator scheme")
201-
if err := operatorv1beta1.AddToScheme(mgr.GetScheme()); err != nil {
202-
setupLog.Error(err, "unable to add Knative Operator APIs to scheme")
203-
os.Exit(1)
204-
}
205-
}
206-
207193
if !ingressConfig.DisableIstioVirtualHost {
208194
vsFound, vsCheckErr := utils.IsCrdAvailable(cfg, istioclientv1beta1.SchemeGroupVersion.String(), constants.IstioVirtualServiceKind)
209195
if vsCheckErr != nil {

config/configmap/inferenceservice.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ data:
5959
# revisions, which prevents the reconciliation loop to be triggered if the annotations is
6060
# configured here are used.
6161
# Default values are:
62-
# "autoscaling.knative.dev/initial-scale",
6362
# "autoscaling.knative.dev/min-scale",
6463
# "autoscaling.knative.dev/max-scale",
6564
# "internal.serving.kserve.io/storage-initializer-sourceuri",

config/overlays/odh/inferenceservice-config-patch.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ data:
8888
inferenceService: |-
8989
{
9090
"serviceAnnotationDisallowedList": [
91-
"autoscaling.knative.dev/initial-scale",
9291
"autoscaling.knative.dev/min-scale",
9392
"autoscaling.knative.dev/max-scale",
9493
"internal.serving.kserve.io/storage-initializer-sourceuri",

config/overlays/test/configmap/inferenceservice-openshift-ci-serverless-predictor.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ data:
8888
inferenceService: |-
8989
{
9090
"serviceAnnotationDisallowedList": [
91-
"autoscaling.knative.dev/initial-scale",
9291
"autoscaling.knative.dev/min-scale",
9392
"autoscaling.knative.dev/max-scale",
9493
"internal.serving.kserve.io/storage-initializer-sourceuri",

config/rbac/role.yaml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,6 @@ rules:
173173
- get
174174
- patch
175175
- update
176-
- apiGroups:
177-
- operator.knative.dev
178-
resources:
179-
- knativeservings
180-
verbs:
181-
- get
182-
- list
183-
- watch
184176
- apiGroups:
185177
- rbac.authorization.k8s.io
186178
resourceNames:

go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ require (
4444
k8s.io/kube-openapi v0.0.0-20250304201544-e5f78fe3ede9
4545
k8s.io/utils v0.0.0-20241210054802-24370beab758
4646
knative.dev/networking v0.0.0-20250117155906-67d1c274ba6a
47-
knative.dev/operator v0.42.2
4847
knative.dev/pkg v0.0.0-20250117084104-c43477f0052b
4948
knative.dev/serving v0.44.0
5049
sigs.k8s.io/controller-runtime v0.19.1

go.sum

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -397,8 +397,6 @@ github.com/linode/linodego v1.40.0 h1:7ESY0PwK94hoggoCtIroT1Xk6b1flrFBNZ6KwqbTql
397397
github.com/linode/linodego v1.40.0/go.mod h1:NsUw4l8QrLdIofRg1NYFBbW5ZERnmbZykVBszPZLORM=
398398
github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
399399
github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
400-
github.com/manifestival/manifestival v0.7.2 h1:l4uFdWX/xQK4QcRfqGoMtBvaZeWPEuwD6hVsCwUqZY4=
401-
github.com/manifestival/manifestival v0.7.2/go.mod h1:nl3T6HlfHCeidooWVTMI9vYNTBkQ1GdhLNb+smozbdk=
402400
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
403401
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
404402
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
@@ -959,12 +957,8 @@ k8s.io/kube-openapi v0.0.0-20250304201544-e5f78fe3ede9 h1:t0huyHnz6HsokckRxAF1bY
959957
k8s.io/kube-openapi v0.0.0-20250304201544-e5f78fe3ede9/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8=
960958
k8s.io/utils v0.0.0-20241210054802-24370beab758 h1:sdbE21q2nlQtFh65saZY+rRM6x6aJJI8IUa1AmH/qa0=
961959
k8s.io/utils v0.0.0-20241210054802-24370beab758/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
962-
knative.dev/caching v0.0.0-20250117155405-a76aa7cd2bb6 h1:a6oO186Ibm9iBmy9GzJPlJCVJnPPCppwo8NEm12Nnus=
963-
knative.dev/caching v0.0.0-20250117155405-a76aa7cd2bb6/go.mod h1:xCMZSPoup5BSZ5GQ/Xa8xTEWNIZLLHx9mhPMeREt/ck=
964960
knative.dev/networking v0.0.0-20250117155906-67d1c274ba6a h1:FaDPXtv42+AkYh/mE269pttPSZ3fDVAjJiEsYUaM4SM=
965961
knative.dev/networking v0.0.0-20250117155906-67d1c274ba6a/go.mod h1:AIKYMfZydhwXR/60c/3KXEnqEnH6aNEEqulifdqJVcQ=
966-
knative.dev/operator v0.42.2 h1:wgAWYHwoSFmV+wPHCt5dZahHTHLy2VCM4G82PEo9iSc=
967-
knative.dev/operator v0.42.2/go.mod h1:cfSpJMgvwmuZ7USaxC+zgEuizMFc/xweREW5DG6J1DA=
968962
knative.dev/pkg v0.0.0-20250117084104-c43477f0052b h1:a+gP7Yzu5NmoX2w1p8nfTgmSKF+aHLKGzqYT82ijJTw=
969963
knative.dev/pkg v0.0.0-20250117084104-c43477f0052b/go.mod h1:bedSpkdLybR6JhL1J7XDLpd+JMKM/x8M5Apr80i5TeE=
970964
knative.dev/serving v0.44.0 h1:c6TXhoSAI6eXt0/1ET3C69jMWYA4ES9FskSan/fBaac=

pkg/constants/constants.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -283,11 +283,8 @@ type InferenceServiceProtocol string
283283

284284
// Knative constants
285285
const (
286-
AutoscalerKey = "autoscaler"
287-
AutoscalerInitialScaleKey = "initial-scale"
288286
AutoscalerConfigmapName = "config-autoscaler"
289287
AutoscalerAllowZeroScaleKey = "allow-zero-initial-scale"
290-
DefaultKnServingName = "knative-serving"
291288
DefaultKnServingNamespace = "knative-serving"
292289
KnativeLocalGateway = "knative-serving/knative-local-gateway"
293290
KnativeIngressGateway = "knative-serving/knative-ingress-gateway"
@@ -407,7 +404,6 @@ var (
407404
// revisions, which prevents the reconciliation loop to be triggered if the annotations is
408405
// configured here are used.
409406
ServiceAnnotationDisallowedList = []string{
410-
autoscaling.InitialScaleAnnotationKey,
411407
autoscaling.MinScaleAnnotationKey,
412408
autoscaling.MaxScaleAnnotationKey,
413409
StorageInitializerSourceUriInternalAnnotationKey,
@@ -533,7 +529,6 @@ const (
533529
const (
534530
IstioVirtualServiceKind = "VirtualService"
535531
KnativeServiceKind = "Service"
536-
KnativeServingKind = "KnativeServing"
537532
HTTPRouteKind = "HTTPRoute"
538533
GatewayKind = "Gateway"
539534
ServiceKind = "Service"

pkg/controller/v1alpha1/inferencegraph/controller.go

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ limitations under the License.
2323
// +kubebuilder:rbac:groups=serving.knative.dev,resources=services/status,verbs=get;update;patch
2424
// +kubebuilder:rbac:groups=route.openshift.io,resources=routes,verbs=create;get;update;patch;watch;delete
2525
// +kubebuilder:rbac:groups=route.openshift.io,resources=routes/status,verbs=get
26-
// +kubebuilder:rbac:groups=operator.knative.dev,resources=knativeservings,verbs=get;list;watch
2726
package inferencegraph
2827

2928
import (
@@ -48,7 +47,6 @@ import (
4847
"k8s.io/client-go/kubernetes"
4948
"k8s.io/client-go/rest"
5049
"k8s.io/client-go/tools/record"
51-
operatorv1beta1 "knative.dev/operator/pkg/apis/operator/v1beta1"
5250
"knative.dev/pkg/apis"
5351
knservingv1 "knative.dev/serving/pkg/apis/serving/v1"
5452
ctrl "sigs.k8s.io/controller-runtime"
@@ -285,19 +283,7 @@ func (r *InferenceGraphReconciler) Reconcile(ctx context.Context, req ctrl.Reque
285283
if !ksvcAvailable {
286284
r.Recorder.Event(graph, corev1.EventTypeWarning, "ServerlessModeRejected",
287285
"It is not possible to use Serverless deployment mode when Knative Services are not available")
288-
return reconcile.Result{Requeue: false}, reconcile.TerminalError(fmt.Errorf("the resolved deployment mode of InferenceGraph '%s' is Serverless, but Knative Services are not available", graph.Name))
289-
}
290-
291-
// Abort if Knative KnativeServings are not available
292-
knServingFound, knServingCheckErr := utils.IsCrdAvailable(r.ClientConfig, operatorv1beta1.SchemeGroupVersion.String(), constants.KnativeServingKind)
293-
if knServingCheckErr != nil {
294-
return reconcile.Result{}, knServingCheckErr
295-
}
296-
297-
if !knServingFound {
298-
r.Recorder.Event(graph, corev1.EventTypeWarning, "ServerlessModeRejected",
299-
"It is not possible to use Serverless deployment mode when Knative KnativeServings are not available")
300-
return reconcile.Result{Requeue: false}, reconcile.TerminalError(fmt.Errorf("the resolved deployment mode of InferenceGraph '%s' is Serverless, but Knative KnativeServings are not available", graph.Name))
286+
return reconcile.Result{Requeue: false}, reconcile.TerminalError(fmt.Errorf("the resolved deployment mode of InferenceGraph '%s' is Serverless, but Knative Serving is not available", graph.Name))
301287
}
302288

303289
// Retrieve the allow-zero-initial-scale value from the knative autoscaler configuration.
@@ -306,7 +292,7 @@ func (r *InferenceGraphReconciler) Reconcile(ctx context.Context, req ctrl.Reque
306292
return ctrl.Result{}, errors.Wrapf(err, "failed to retrieve the knative autoscaler configuration")
307293
}
308294

309-
knutils.ValidateInitialScaleAnnotation(graph.Annotations, allowZeroInitialScale, r.Log)
295+
knutils.ValidateInitialScaleAnnotation(graph.Annotations, allowZeroInitialScale, graph.Spec.MinReplicas, r.Log)
310296

311297
desired := createKnativeService(graph.ObjectMeta, graph, routerConfig)
312298

0 commit comments

Comments
 (0)