Skip to content

Commit 5980cf6

Browse files
andyi2ityuzisun
andauthored
Add disable ingress feature for raw deployment (kserve#2773)
Signed-off-by: Andrews Arokiam <[email protected]> Signed-off-by: Dan Sun <[email protected]> Co-authored-by: Dan Sun <[email protected]>
1 parent 7933c43 commit 5980cf6

File tree

3 files changed

+42
-24
lines changed

3 files changed

+42
-24
lines changed

pkg/constants/constants.go

+7
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,13 @@ var (
116116
PredictorProtocolAnnotationKey = InferenceServiceInternalAnnotationsPrefix + "/predictor-protocol"
117117
)
118118

119+
// kserve networking constants
120+
const (
121+
NetworkVisibility = "networking.kserve.io/visibility"
122+
ClusterLocalVisibility = "cluster-local"
123+
ClusterLocalDomain = "svc.cluster.local"
124+
)
125+
119126
// StorageSpec Constants
120127
var (
121128
DefaultStorageSpecSecret = "storage-config"

pkg/controller/v1beta1/inferenceservice/reconcilers/ingress/ingress_reconciler.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ func createIngress(isvc *v1beta1.InferenceService, useDefault bool, config *v1be
307307
}
308308
isInternal := false
309309
//if service is labelled with cluster local or knative domain is configured as internal
310-
if val, ok := isvc.Labels[constants.VisibilityLabel]; ok && val == "cluster-local" {
310+
if val, ok := isvc.Labels[constants.VisibilityLabel]; ok && val == constants.ClusterLocalVisibility {
311311
isInternal = true
312312
}
313313
serviceInternalHostName := network.GetServiceHostname(isvc.Name, isvc.Namespace)

pkg/controller/v1beta1/inferenceservice/reconcilers/ingress/kube_ingress_reconciler.go

+34-23
Original file line numberDiff line numberDiff line change
@@ -255,34 +255,45 @@ func semanticIngressEquals(desired, existing *netv1.Ingress) bool {
255255
}
256256

257257
func (r *RawIngressReconciler) Reconcile(isvc *v1beta1api.InferenceService) error {
258-
ingress, err := createRawIngress(r.scheme, isvc, r.ingressConfig, r.client)
259-
if ingress == nil {
260-
return nil
258+
var err error
259+
isInternal := false
260+
// disable ingress creation if service is labelled with cluster local or kserve domain is cluster local
261+
if val, ok := isvc.Labels[constants.NetworkVisibility]; ok && val == constants.ClusterLocalVisibility {
262+
isInternal = true
261263
}
262-
if err != nil {
263-
return err
264+
if r.ingressConfig.IngressDomain == constants.ClusterLocalDomain {
265+
isInternal = true
264266
}
265-
//reconcile ingress
266-
existingIngress := &netv1.Ingress{}
267-
err = r.client.Get(context.TODO(), types.NamespacedName{
268-
Namespace: isvc.Namespace,
269-
Name: isvc.Name,
270-
}, existingIngress)
271-
if err != nil {
272-
if apierr.IsNotFound(err) {
273-
err = r.client.Create(context.TODO(), ingress)
274-
log.Info("creating ingress", "ingressName", isvc.Name, "err", err)
275-
} else {
267+
if !isInternal {
268+
ingress, err := createRawIngress(r.scheme, isvc, r.ingressConfig, r.client)
269+
if ingress == nil {
270+
return nil
271+
}
272+
if err != nil {
276273
return err
277274
}
278-
} else {
279-
if !semanticIngressEquals(ingress, existingIngress) {
280-
err = r.client.Update(context.TODO(), ingress)
281-
log.Info("updating ingress", "ingressName", isvc.Name, "err", err)
275+
//reconcile ingress
276+
existingIngress := &netv1.Ingress{}
277+
err = r.client.Get(context.TODO(), types.NamespacedName{
278+
Namespace: isvc.Namespace,
279+
Name: isvc.Name,
280+
}, existingIngress)
281+
if err != nil {
282+
if apierr.IsNotFound(err) {
283+
err = r.client.Create(context.TODO(), ingress)
284+
log.Info("creating ingress", "ingressName", isvc.Name, "err", err)
285+
} else {
286+
return err
287+
}
288+
} else {
289+
if !semanticIngressEquals(ingress, existingIngress) {
290+
err = r.client.Update(context.TODO(), ingress)
291+
log.Info("updating ingress", "ingressName", isvc.Name, "err", err)
292+
}
293+
}
294+
if err != nil {
295+
return err
282296
}
283-
}
284-
if err != nil {
285-
return err
286297
}
287298
isvc.Status.URL, err = createRawURL(isvc, r.ingressConfig)
288299
if err != nil {

0 commit comments

Comments
 (0)