odh-model-controller: Dataflow¶
Controller Watches¶
Kubernetes resources this controller monitors for changes. Each watch triggers reconciliation when the watched resource is created, updated, or deleted.
Reconciliation Flow¶
How the controller interacts with the Kubernetes API during reconciliation.
sequenceDiagram
%% Static dataflow for odh-model-controller
participant KubernetesAPI as Kubernetes API
participant odh_model_controller as odh-model-controller
KubernetesAPI->>+odh_model_controller: Watch ConfigMap (reconcile)
KubernetesAPI->>+odh_model_controller: Watch Pod (reconcile)
KubernetesAPI->>+odh_model_controller: Watch Secret (reconcile)
KubernetesAPI->>+odh_model_controller: Watch Gateway (reconcile)
KubernetesAPI->>+odh_model_controller: Watch Account (reconcile)
KubernetesAPI->>+odh_model_controller: Watch InferenceGraph (reconcile)
KubernetesAPI->>+odh_model_controller: Watch ServingRuntime (reconcile)
KubernetesAPI->>+odh_model_controller: Watch LLMInferenceService (reconcile)
KubernetesAPI->>+odh_model_controller: Watch InferenceService (reconcile)
odh_model_controller->>KubernetesAPI: Create/Update ConfigMap
odh_model_controller->>KubernetesAPI: Create/Update ConfigMap
odh_model_controller->>KubernetesAPI: Create/Update Namespace
odh_model_controller->>KubernetesAPI: Create/Update Secret
odh_model_controller->>KubernetesAPI: Create/Update Secret
odh_model_controller->>KubernetesAPI: Create/Update Service
odh_model_controller->>KubernetesAPI: Create/Update ServiceAccount
odh_model_controller->>KubernetesAPI: Create/Update AuthPolicy
odh_model_controller->>KubernetesAPI: Create/Update TriggerAuthentication
odh_model_controller->>KubernetesAPI: Create/Update PodMonitor
odh_model_controller->>KubernetesAPI: Create/Update ServiceMonitor
odh_model_controller->>KubernetesAPI: Create/Update NetworkPolicy
odh_model_controller->>KubernetesAPI: Create/Update EnvoyFilter
odh_model_controller->>KubernetesAPI: Create/Update ClusterRoleBinding
odh_model_controller->>KubernetesAPI: Create/Update Role
odh_model_controller->>KubernetesAPI: Create/Update RoleBinding
odh_model_controller->>KubernetesAPI: Create/Update RoleBinding
odh_model_controller->>KubernetesAPI: Create/Update Route
odh_model_controller->>KubernetesAPI: Create/Update ServingRuntime
odh_model_controller->>KubernetesAPI: Create/Update Template
KubernetesAPI-->>+odh_model_controller: Watch ConfigMap (informer)
KubernetesAPI-->>+odh_model_controller: Watch Namespace (informer)
KubernetesAPI-->>+odh_model_controller: Watch Secret (informer)
KubernetesAPI-->>+odh_model_controller: Watch Secret (informer)
KubernetesAPI-->>+odh_model_controller: Watch AuthPolicy (informer)
KubernetesAPI-->>+odh_model_controller: Watch Authorino (informer)
KubernetesAPI-->>+odh_model_controller: Watch Kuadrant (informer)
KubernetesAPI-->>+odh_model_controller: Watch RoleBinding (informer)
KubernetesAPI-->>+odh_model_controller: Watch ServingRuntime (informer)
KubernetesAPI-->>+odh_model_controller: Watch LLMInferenceService (informer)
KubernetesAPI-->>+odh_model_controller: Watch LLMInferenceServiceConfig (informer)
Note over odh_model_controller: Exposed Services
Note right of odh_model_controller: model-serving-api:443/TCP [https]
Note right of odh_model_controller: model-serving-api:9090/TCP [metrics]
Note right of odh_model_controller: odh-model-controller-webhook-service:443/TCP []
Note over KubernetesAPI: Defined CRDs
Note right of KubernetesAPI: Account (nim.opendatahub.io/v1)
Webhooks¶
| Name | Type | Path | Failure Policy | Service | Source |
|---|---|---|---|---|---|
| minferencegraph-v1alpha1.odh-model-controller.opendatahub.io | mutating | /mutate-serving-kserve-io-v1alpha1-inferencegraph | Fail | system/webhook-service | config/webhook/manifests.yaml |
| minferenceservice-v1beta1.odh-model-controller.opendatahub.io | mutating | /mutate-serving-kserve-io-v1beta1-inferenceservice | Fail | system/webhook-service | config/webhook/manifests.yaml |
| mutating.pod.odh-model-controller.opendatahub.io | mutating | /mutate--v1-pod | Fail | system/webhook-service | config/webhook/manifests.yaml |
| validating.isvc.odh-model-controller.opendatahub.io | validating | /validate-serving-kserve-io-v1beta1-inferenceservice | Fail | system/webhook-service | config/webhook/manifests.yaml |
| validating.nim.account.odh-model-controller.opendatahub.io | validating | /validate-nim-opendatahub-io-v1-account | Fail | system/webhook-service | config/webhook/manifests.yaml |
| vinferencegraph-v1alpha1.odh-model-controller.opendatahub.io | validating | /validate-serving-kserve-io-v1alpha1-inferencegraph | Fail | system/webhook-service | config/webhook/manifests.yaml |
HTTP Endpoints¶
| Method | Path | Source |
|---|---|---|
| * | /api/v1/gateways | server/server.go:23 |
| * | /healthz | server/server.go:19 |
| * | /metrics | server/observability/observability.go:87 |
| * | /readyz | server/server.go:20 |
| * | gateway.networking.k8s.io | internal/controller/serving/llm/fixture/gwapi_builders.go:258 |
| * | gateway.networking.k8s.io | internal/controller/serving/llm/fixture/gwapi_builders.go:276 |
| * | gateway.networking.k8s.io | internal/controller/serving/llm/fixture/gwapi_builders.go:448 |
| * | inference.networking.x-k8s.io | internal/controller/serving/llm/fixture/gwapi_builders.go:350 |
Configuration¶
ConfigMaps and Helm values that control this component's runtime behavior.