Skip to content

Conversation

madmecodes
Copy link

Motivation

This PR makes the Kubeflow controllers (notebook-controller, tensorboard-controller, and pvcviewer-controller)
compatible with Kubernetes Gateway API, which is required for Istio ambient mode support.

Why this change is needed

Istio ambient mode is the service mesh architecture that provides simplified operations and
improved performance. However, it requires different routing resources compared to traditional Istio sidecar
mode:

  • Sidecar mode (current): Uses Istio-specific VirtualService resources for L7 routing
  • Ambient mode (new): Uses Kubernetes-native HTTPRoute resources from the Gateway API for L7 routing

What this PR accomplishes

  1. Adds Gateway API support: Controllers can now create and manage HTTPRoute resources alongside existing
    VirtualService support
  2. Maintains backward compatibility: Default behavior remains unchanged (sidecar mode with VirtualService)
  3. Proper separation of concerns: USE_ISTIO controls VirtualService creation, USE_GATEWAY_API controls HTTPRoute
    creation
  4. Configurable deployment: Environment variables allow switching between modes without code changes

Configuration

  • Sidecar mode (default): USE_ISTIO=true, USE_GATEWAY_API=false
  • Ambient mode: USE_ISTIO=false, USE_GATEWAY_API=true
  • Gateway configuration: K8S_GATEWAY_NAME and K8S_GATEWAY_NAMESPACE specify the target Gateway resource

This change enables Kubeflow to work seamlessly in both traditional sidecar environments and modern ambient mesh
deployments.

Reference: kubeflow/kubeflow#7736

Signed-off-by: madmecodes <ayushguptadev1@gmail.com>
Signed-off-by: madmecodes <ayushguptadev1@gmail.com>
Signed-off-by: madmecodes <ayushguptadev1@gmail.com>
Signed-off-by: madmecodes <ayushguptadev1@gmail.com>
Signed-off-by: madmecodes <ayushguptadev1@gmail.com>
@github-project-automation github-project-automation bot moved this to Needs Triage in Kubeflow Notebooks Sep 30, 2025
@google-oss-prow google-oss-prow bot added the area/controller area - related to controller components label Sep 30, 2025
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign thesuperzapper for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@juliusvonkohout
Copy link
Member

@kimwnasptd @orfeas-k for review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/controller area - related to controller components area/v1 area - version - kubeflow notebooks v1 size/XL
Projects
Status: Needs Triage
Development

Successfully merging this pull request may close these issues.

2 participants