--- apiVersion: apps/v1 items: - apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" internal.config.kubernetes.io/previousKinds: Deployment internal.config.kubernetes.io/previousNames: kserve-controller-manager internal.config.kubernetes.io/previousNamespaces: opendatahub platform.opendatahub.io/instance.generation: "1" platform.opendatahub.io/instance.name: default-kserve platform.opendatahub.io/instance.uid: d6dc92e2-8ba7-4caf-a551-1f55b68e0efa creationTimestamp: "2026-09-19T04:19:52Z" generation: 1 labels: app.kubernetes.io/component: kserve app.kubernetes.io/name: kserve control-plane: kserve-controller-manager controller-tools.k8s.io: "1.0" platform.opendatahub.io/part-of: kserve managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:internal.config.kubernetes.io/previousKinds: {} f:internal.config.kubernetes.io/previousNames: {} f:internal.config.kubernetes.io/previousNamespaces: {} f:platform.opendatahub.io/instance.generation: {} f:platform.opendatahub.io/instance.name: {} f:platform.opendatahub.io/instance.uid: {} f:labels: f:app.kubernetes.io/component: {} f:app.kubernetes.io/name: {} f:control-plane: {} f:controller-tools.k8s.io: {} f:platform.opendatahub.io/part-of: {} f:ownerReferences: k:{"uid":"d6dc92e2-8ba7-4caf-a551-1f55b68e0efa"}: {} f:spec: f:replicas: {} f:selector: {} f:strategy: {} f:template: f:metadata: f:annotations: f:kserve-module/config-hash: {} f:kubectl.kubernetes.io/default-container: {} f:labels: f:app.kubernetes.io/name: {} f:control-plane: {} f:controller-tools.k8s.io: {} f:spec: f:containers: k:{"name":"manager"}: .: {} f:args: {} f:command: {} f:env: k:{"name":"POD_NAMESPACE"}: .: {} f:name: {} f:valueFrom: f:fieldRef: {} k:{"name":"SECRET_NAME"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:livenessProbe: f:failureThreshold: {} f:httpGet: f:path: {} f:port: {} f:initialDelaySeconds: {} f:timeoutSeconds: {} f:name: {} f:ports: k:{"containerPort":8443,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} k:{"containerPort":9443,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: f:failureThreshold: {} f:httpGet: f:path: {} f:port: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:timeoutSeconds: {} f:resources: f:limits: f:cpu: {} f:memory: {} f:requests: f:cpu: {} f:memory: {} f:securityContext: f:allowPrivilegeEscalation: {} f:capabilities: f:drop: {} f:privileged: {} f:readOnlyRootFilesystem: {} f:runAsNonRoot: {} f:volumeMounts: k:{"mountPath":"/tmp/k8s-webhook-server/serving-certs"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} f:securityContext: f:runAsNonRoot: {} f:seccompProfile: f:type: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:volumes: k:{"name":"cert"}: .: {} f:name: {} f:secret: f:defaultMode: {} f:secretName: {} manager: kserve-module-controller operation: Apply time: "2026-09-19T04:20:06Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:deployment.kubernetes.io/revision: {} f:status: f:availableReplicas: {} f:conditions: .: {} k:{"type":"Available"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"Progressing"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} f:observedGeneration: {} f:readyReplicas: {} f:replicas: {} f:updatedReplicas: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-09-19T04:20:28Z" name: kserve-controller-manager namespace: opendatahub ownerReferences: - apiVersion: components.platform.opendatahub.io/v1alpha1 blockOwnerDeletion: true controller: true kind: Kserve name: default-kserve uid: d6dc92e2-8ba7-4caf-a551-1f55b68e0efa resourceVersion: "18419" uid: dc936423-5dfd-49ea-81ca-0617cfe1fac0 spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: control-plane: kserve-controller-manager controller-tools.k8s.io: "1.0" strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: annotations: kserve-module/config-hash: mnFTZVcLE1RngSuvQ42NZ89WslzZJi_-HxuscRuxXHY kubectl.kubernetes.io/default-container: manager labels: app.kubernetes.io/name: kserve-controller-manager control-plane: kserve-controller-manager controller-tools.k8s.io: "1.0" spec: containers: - args: - --metrics-addr=:8443 - --metrics-secure - --leader-elect command: - /manager env: - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: SECRET_NAME value: kserve-webhook-server-cert image: quay.io/opendatahub/kserve-controller:odh-stable imagePullPolicy: Always livenessProbe: failureThreshold: 5 httpGet: path: /healthz port: 8081 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 5 name: manager ports: - containerPort: 8443 name: metrics protocol: TCP - containerPort: 9443 name: webhook-server protocol: TCP readinessProbe: failureThreshold: 5 httpGet: path: /readyz port: 8081 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 5 successThreshold: 1 timeoutSeconds: 5 resources: limits: cpu: 500m memory: 500Mi requests: cpu: 100m memory: 200Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL privileged: false readOnlyRootFilesystem: true runAsNonRoot: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /tmp/k8s-webhook-server/serving-certs name: cert readOnly: true dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault serviceAccount: kserve-controller-manager serviceAccountName: kserve-controller-manager terminationGracePeriodSeconds: 10 volumes: - name: cert secret: defaultMode: 420 secretName: kserve-webhook-server-cert status: availableReplicas: 1 conditions: - lastTransitionTime: "2026-09-19T04:20:28Z" lastUpdateTime: "2026-09-19T04:20:28Z" message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: "2026-09-19T04:19:52Z" lastUpdateTime: "2026-09-19T04:20:28Z" message: ReplicaSet "kserve-controller-manager-7645b9c6f5" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing observedGeneration: 1 readyReplicas: 1 replicas: 1 updatedReplicas: 1 - apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" internal.config.kubernetes.io/previousKinds: Deployment internal.config.kubernetes.io/previousNames: kserve-module-controller-manager internal.config.kubernetes.io/previousNamespaces: opendatahub platform.opendatahub.io/instance.generation: "2" platform.opendatahub.io/instance.name: default platform.opendatahub.io/instance.uid: 42c4bad7-7f23-49c4-9345-d19522d835f6 platform.opendatahub.io/type: Open Data Hub platform.opendatahub.io/version: 3.6.0-ea.1 creationTimestamp: "2026-09-19T04:18:55Z" generation: 2 labels: app.kubernetes.io/component: controller app.kubernetes.io/name: kserve-module-controller-manager control-plane: kserve-module-controller-manager platform.opendatahub.io/part-of: platform managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:internal.config.kubernetes.io/previousKinds: {} f:internal.config.kubernetes.io/previousNames: {} f:internal.config.kubernetes.io/previousNamespaces: {} f:platform.opendatahub.io/instance.generation: {} f:platform.opendatahub.io/instance.name: {} f:platform.opendatahub.io/instance.uid: {} f:platform.opendatahub.io/type: {} f:platform.opendatahub.io/version: {} f:labels: f:app.kubernetes.io/component: {} f:app.kubernetes.io/name: {} f:control-plane: {} f:platform.opendatahub.io/part-of: {} f:ownerReferences: k:{"uid":"42c4bad7-7f23-49c4-9345-d19522d835f6"}: {} f:spec: f:replicas: {} f:selector: {} f:template: f:metadata: f:annotations: f:kubectl.kubernetes.io/default-container: {} f:labels: f:app.kubernetes.io/component: {} f:app.kubernetes.io/name: {} f:control-plane: {} f:spec: f:containers: k:{"name":"manager"}: .: {} f:args: {} f:command: {} f:env: k:{"name":"APPLICATIONS_NAMESPACE"}: .: {} f:name: {} f:value: {} k:{"name":"MONITORING_NAMESPACE"}: .: {} f:name: {} f:value: {} k:{"name":"ODH_MODULE_OPERATOR_PLATFORM_TYPE"}: .: {} f:name: {} f:value: {} k:{"name":"POD_NAMESPACE"}: .: {} f:name: {} f:valueFrom: f:fieldRef: {} k:{"name":"RELATED_IMAGE_ODH_KUBE_RBAC_PROXY_IMAGE"}: .: {} f:name: {} f:value: {} f:image: {} f:livenessProbe: f:failureThreshold: {} f:httpGet: f:path: {} f:port: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:timeoutSeconds: {} f:name: {} f:readinessProbe: f:failureThreshold: {} f:httpGet: f:path: {} f:port: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:timeoutSeconds: {} f:resources: f:limits: f:cpu: {} f:memory: {} f:requests: f:cpu: {} f:memory: {} f:securityContext: f:allowPrivilegeEscalation: {} f:capabilities: f:drop: {} f:privileged: {} f:readOnlyRootFilesystem: {} f:runAsNonRoot: {} f:seccompProfile: f:type: {} f:volumeMounts: k:{"mountPath":"/etc/pki/tls/custom"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/opt/manifests"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} f:securityContext: f:runAsNonRoot: {} f:seccompProfile: f:type: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:volumes: k:{"name":"manifests"}: .: {} f:emptyDir: f:sizeLimit: {} f:name: {} k:{"name":"tmp"}: .: {} f:emptyDir: {} f:name: {} k:{"name":"trusted-ca"}: .: {} f:configMap: f:name: {} f:optional: {} f:name: {} manager: platform operation: Apply time: "2026-09-19T04:18:57Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:deployment.kubernetes.io/revision: {} f:status: f:availableReplicas: {} f:conditions: .: {} k:{"type":"Available"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"Progressing"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} f:observedGeneration: {} f:readyReplicas: {} f:replicas: {} f:updatedReplicas: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-09-19T04:19:19Z" name: kserve-module-controller-manager namespace: opendatahub ownerReferences: - apiVersion: config.opendatahub.io/v1alpha1 blockOwnerDeletion: true controller: true kind: Platform name: default uid: 42c4bad7-7f23-49c4-9345-d19522d835f6 resourceVersion: "17016" uid: 5e501793-2c05-4f98-b309-fb7d8ef9baab spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: control-plane: kserve-module-controller-manager strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: annotations: kubectl.kubernetes.io/default-container: manager labels: app.kubernetes.io/component: controller app.kubernetes.io/name: kserve-module-controller-manager control-plane: kserve-module-controller-manager spec: containers: - args: - --leader-elect command: - /manager env: - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: RELATED_IMAGE_ODH_KUBE_RBAC_PROXY_IMAGE value: quay.io/opendatahub/odh-kube-rbac-proxy:v3.6.0-ea.1 - name: APPLICATIONS_NAMESPACE value: opendatahub - name: MONITORING_NAMESPACE value: opendatahub - name: ODH_MODULE_OPERATOR_PLATFORM_TYPE value: Open Data Hub image: quay.io/opendatahub/odh-kserve-module-operator:odh-stable imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 10 httpGet: path: /healthz port: 8081 scheme: HTTP initialDelaySeconds: 15 periodSeconds: 20 successThreshold: 1 timeoutSeconds: 5 name: manager readinessProbe: failureThreshold: 15 httpGet: path: /readyz port: 8081 scheme: HTTP initialDelaySeconds: 15 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 5 resources: limits: cpu: 500m memory: 1Gi requests: cpu: 100m memory: 256Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL privileged: false readOnlyRootFilesystem: true runAsNonRoot: true seccompProfile: type: RuntimeDefault terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /opt/manifests name: manifests - mountPath: /tmp name: tmp - mountPath: /etc/pki/tls/custom name: trusted-ca readOnly: true dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault serviceAccount: kserve-module-controller-manager serviceAccountName: kserve-module-controller-manager terminationGracePeriodSeconds: 30 volumes: - emptyDir: sizeLimit: 256Mi name: manifests - emptyDir: {} name: tmp - configMap: defaultMode: 420 name: odh-trusted-ca-bundle optional: true name: trusted-ca status: availableReplicas: 1 conditions: - lastTransitionTime: "2026-09-19T04:19:19Z" lastUpdateTime: "2026-09-19T04:19:19Z" message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: "2026-09-19T04:18:55Z" lastUpdateTime: "2026-09-19T04:19:19Z" message: ReplicaSet "kserve-module-controller-manager-54765d59fd" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing observedGeneration: 2 readyReplicas: 1 replicas: 1 updatedReplicas: 1 - apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" internal.config.kubernetes.io/previousKinds: Deployment internal.config.kubernetes.io/previousNames: llmisvc-controller-manager internal.config.kubernetes.io/previousNamespaces: opendatahub platform.opendatahub.io/instance.generation: "1" platform.opendatahub.io/instance.name: default-kserve platform.opendatahub.io/instance.uid: d6dc92e2-8ba7-4caf-a551-1f55b68e0efa creationTimestamp: "2026-09-19T04:19:52Z" generation: 1 labels: app.kubernetes.io/component: controller app.kubernetes.io/name: llmisvc-controller-manager control-plane: llmisvc-controller-manager controller-tools.k8s.io: "1.0" platform.opendatahub.io/part-of: kserve managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:internal.config.kubernetes.io/previousKinds: {} f:internal.config.kubernetes.io/previousNames: {} f:internal.config.kubernetes.io/previousNamespaces: {} f:platform.opendatahub.io/instance.generation: {} f:platform.opendatahub.io/instance.name: {} f:platform.opendatahub.io/instance.uid: {} f:labels: f:app.kubernetes.io/component: {} f:app.kubernetes.io/name: {} f:control-plane: {} f:controller-tools.k8s.io: {} f:platform.opendatahub.io/part-of: {} f:ownerReferences: k:{"uid":"d6dc92e2-8ba7-4caf-a551-1f55b68e0efa"}: {} f:spec: f:replicas: {} f:selector: {} f:strategy: {} f:template: f:metadata: f:annotations: f:kubectl.kubernetes.io/default-container: {} f:labels: f:app.kubernetes.io/component: {} f:app.kubernetes.io/name: {} f:control-plane: {} f:controller-tools.k8s.io: {} f:spec: f:containers: k:{"name":"manager"}: .: {} f:args: {} f:command: {} f:env: k:{"name":"LLM_INFERENCE_SERVICE_CONFIG_PREFIX"}: .: {} f:name: {} f:value: {} k:{"name":"POD_NAMESPACE"}: .: {} f:name: {} f:valueFrom: f:fieldRef: {} f:image: {} f:imagePullPolicy: {} f:livenessProbe: f:failureThreshold: {} f:httpGet: f:path: {} f:port: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:timeoutSeconds: {} f:name: {} f:ports: k:{"containerPort":8443,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} k:{"containerPort":9443,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: f:failureThreshold: {} f:httpGet: f:path: {} f:port: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:timeoutSeconds: {} f:resources: f:limits: f:cpu: {} f:memory: {} f:requests: f:cpu: {} f:memory: {} f:securityContext: f:allowPrivilegeEscalation: {} f:capabilities: f:drop: {} f:privileged: {} f:readOnlyRootFilesystem: {} f:runAsNonRoot: {} f:seccompProfile: f:type: {} f:volumeMounts: k:{"mountPath":"/tmp/k8s-webhook-server/serving-certs"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} f:securityContext: f:runAsNonRoot: {} f:seccompProfile: f:type: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:volumes: k:{"name":"cert"}: .: {} f:name: {} f:secret: f:defaultMode: {} f:secretName: {} manager: kserve-module-controller operation: Apply time: "2026-09-19T04:20:06Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:deployment.kubernetes.io/revision: {} f:status: f:availableReplicas: {} f:conditions: .: {} k:{"type":"Available"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"Progressing"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} f:observedGeneration: {} f:readyReplicas: {} f:replicas: {} f:updatedReplicas: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-09-19T04:20:27Z" name: llmisvc-controller-manager namespace: opendatahub ownerReferences: - apiVersion: components.platform.opendatahub.io/v1alpha1 blockOwnerDeletion: true controller: true kind: Kserve name: default-kserve uid: d6dc92e2-8ba7-4caf-a551-1f55b68e0efa resourceVersion: "18359" uid: fa002abf-5f60-48bf-bff5-feef697efc7d spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: control-plane: llmisvc-controller-manager controller-tools.k8s.io: "1.0" strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: annotations: kubectl.kubernetes.io/default-container: manager labels: app.kubernetes.io/component: controller app.kubernetes.io/name: llmisvc-controller-manager control-plane: llmisvc-controller-manager controller-tools.k8s.io: "1.0" spec: containers: - args: - --metrics-addr=:8443 - --metrics-secure - --leader-elect command: - /manager env: - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: LLM_INFERENCE_SERVICE_CONFIG_PREFIX value: v3-6-0-ea-1-kserve- image: quay.io/opendatahub/odh-kserve-llmisvc-controller:odh-stable imagePullPolicy: Always livenessProbe: failureThreshold: 5 httpGet: path: /healthz port: 8081 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 5 name: manager ports: - containerPort: 9443 name: webhook-server protocol: TCP - containerPort: 8443 name: metrics protocol: TCP readinessProbe: failureThreshold: 5 httpGet: path: /readyz port: 8081 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 5 successThreshold: 1 timeoutSeconds: 5 resources: limits: cpu: 100m memory: 300Mi requests: cpu: 100m memory: 300Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL privileged: false readOnlyRootFilesystem: true runAsNonRoot: true seccompProfile: type: RuntimeDefault terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /tmp/k8s-webhook-server/serving-certs name: cert readOnly: true dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault serviceAccount: llmisvc-controller-manager serviceAccountName: llmisvc-controller-manager terminationGracePeriodSeconds: 30 volumes: - name: cert secret: defaultMode: 420 secretName: llmisvc-webhook-server-cert status: availableReplicas: 1 conditions: - lastTransitionTime: "2026-09-19T04:20:27Z" lastUpdateTime: "2026-09-19T04:20:27Z" message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: "2026-09-19T04:19:52Z" lastUpdateTime: "2026-09-19T04:20:27Z" message: ReplicaSet "llmisvc-controller-manager-78f7d99c47" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing observedGeneration: 1 readyReplicas: 1 replicas: 1 updatedReplicas: 1 - apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "2" kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app":"maas-controller","app.kubernetes.io/component":"models-as-a-service","app.kubernetes.io/name":"maas-controller","app.kubernetes.io/part-of":"models-as-a-service","control-plane":"maas-controller"},"name":"maas-controller","namespace":"opendatahub"},"spec":{"replicas":1,"selector":{"matchLabels":{"control-plane":"maas-controller"}},"template":{"metadata":{"labels":{"app":"maas-controller","control-plane":"maas-controller"}},"spec":{"containers":[{"args":["--leader-elect","--health-probe-bind-address=:8081","--metrics-bind-address=:8443","--metrics-secure=true","--controller-namespace=$(CONTROLLER_NAMESPACE)","--gateway-name=$(GATEWAY_NAME)","--gateway-namespace=$(GATEWAY_NAMESPACE)","--infra-namespace=$(INFRA_NAMESPACE)","--maas-subscription-namespace=$(MAAS_SUBSCRIPTION_NAMESPACE)","--aitenant-namespace=$(AITENANT_NAMESPACE)","--monitoring-namespace=$(MONITORING_NAMESPACE)","--enable-tenant-namespace-discovery","--metadata-cache-ttl=60","--authz-cache-ttl=60","--log-format=otel-json"],"command":["/manager"],"env":[{"name":"CONTROLLER_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}},{"name":"GATEWAY_NAME","value":"maas-default-gateway"},{"name":"GATEWAY_NAMESPACE","value":"openshift-ingress"},{"name":"INFRA_NAMESPACE","value":"AUTO"},{"name":"MAAS_SUBSCRIPTION_NAMESPACE","value":"models-as-a-service"},{"name":"AITENANT_NAMESPACE","value":"ai-tenants"},{"name":"RELATED_IMAGE_ODH_MAAS_API_IMAGE","valueFrom":{"configMapKeyRef":{"key":"maas-api-image","name":"maas-parameters","optional":true}}},{"name":"RELATED_IMAGE_ODH_AI_GATEWAY_PAYLOAD_PROCESSING_IMAGE","valueFrom":{"configMapKeyRef":{"key":"payload-processing-image","name":"maas-parameters","optional":true}}},{"name":"RELATED_IMAGE_UBI_MINIMAL_IMAGE","valueFrom":{"configMapKeyRef":{"key":"maas-api-key-cleanup-image","name":"maas-parameters","optional":true}}},{"name":"RELATED_IMAGE_ODH_PYTHON_312_IMAGE","valueFrom":{"configMapKeyRef":{"key":"usage-logs-tenancy-proxy-image","name":"maas-parameters","optional":true}}},{"name":"MONITORING_NAMESPACE","valueFrom":{"configMapKeyRef":{"key":"monitoring-namespace","name":"maas-parameters","optional":true}}}],"image":"quay.io/opendatahub/maas-controller@sha256:571595da75fefc4c79e730950e0a5a0b0042ee289bb1ff59a0667c7549af44e9","imagePullPolicy":"Always","livenessProbe":{"httpGet":{"path":"/healthz","port":8081},"initialDelaySeconds":15,"periodSeconds":20},"name":"manager","ports":[{"containerPort":8443,"name":"metrics","protocol":"TCP"}],"readinessProbe":{"httpGet":{"path":"/readyz","port":8081},"initialDelaySeconds":5,"periodSeconds":10},"resources":{"limits":{"cpu":"500m","memory":"512Mi"},"requests":{"cpu":"10m","memory":"64Mi"}},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"seccompProfile":{"type":"RuntimeDefault"}},"volumeMounts":[{"mountPath":"/tmp/k8s-webhook-server/serving-certs","name":"webhook-cert","readOnly":true},{"mountPath":"/tmp/k8s-metrics-server/metrics-certs","name":"metrics-certs","readOnly":true}]}],"securityContext":{"runAsNonRoot":true},"serviceAccountName":"maas-controller","terminationGracePeriodSeconds":30,"volumes":[{"name":"webhook-cert","secret":{"defaultMode":420,"secretName":"maas-controller-webhook-cert"}},{"name":"metrics-certs","secret":{"defaultMode":420,"secretName":"maas-controller-metrics-tls"}}]}}}} creationTimestamp: "2026-09-19T04:30:06Z" generation: 6 labels: app: maas-controller app.kubernetes.io/component: models-as-a-service app.kubernetes.io/name: maas-controller app.kubernetes.io/part-of: models-as-a-service control-plane: maas-controller managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:kubectl.kubernetes.io/last-applied-configuration: {} f:labels: .: {} f:app: {} f:app.kubernetes.io/component: {} f:app.kubernetes.io/name: {} f:app.kubernetes.io/part-of: {} f:control-plane: {} f:spec: f:progressDeadlineSeconds: {} f:revisionHistoryLimit: {} f:selector: {} f:strategy: f:rollingUpdate: .: {} f:maxSurge: {} f:maxUnavailable: {} f:type: {} f:template: f:metadata: f:labels: .: {} f:app: {} f:control-plane: {} f:spec: f:containers: k:{"name":"manager"}: .: {} f:args: {} f:command: {} f:env: .: {} k:{"name":"AITENANT_NAMESPACE"}: .: {} f:name: {} f:value: {} k:{"name":"CONTROLLER_NAMESPACE"}: .: {} f:name: {} f:valueFrom: .: {} f:fieldRef: {} k:{"name":"GATEWAY_NAME"}: .: {} f:name: {} f:value: {} k:{"name":"GATEWAY_NAMESPACE"}: .: {} f:name: {} f:value: {} k:{"name":"INFRA_NAMESPACE"}: .: {} f:name: {} f:value: {} k:{"name":"MAAS_SUBSCRIPTION_NAMESPACE"}: .: {} f:name: {} f:value: {} k:{"name":"MONITORING_NAMESPACE"}: .: {} f:name: {} f:valueFrom: .: {} f:configMapKeyRef: {} k:{"name":"RELATED_IMAGE_ODH_AI_GATEWAY_PAYLOAD_PROCESSING_IMAGE"}: .: {} f:name: {} f:valueFrom: .: {} f:configMapKeyRef: {} k:{"name":"RELATED_IMAGE_ODH_MAAS_API_IMAGE"}: .: {} f:name: {} f:valueFrom: .: {} f:configMapKeyRef: {} k:{"name":"RELATED_IMAGE_ODH_PYTHON_312_IMAGE"}: .: {} f:name: {} f:valueFrom: .: {} f:configMapKeyRef: {} k:{"name":"RELATED_IMAGE_UBI_MINIMAL_IMAGE"}: .: {} f:name: {} f:valueFrom: .: {} f:configMapKeyRef: {} f:image: {} f:imagePullPolicy: {} f:livenessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:ports: .: {} k:{"containerPort":8443,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:resources: .: {} f:limits: .: {} f:cpu: {} f:memory: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:allowPrivilegeEscalation: {} f:capabilities: .: {} f:drop: {} f:readOnlyRootFilesystem: {} f:seccompProfile: .: {} f:type: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/tmp/k8s-metrics-server/metrics-certs"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/tmp/k8s-webhook-server/serving-certs"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} f:dnsPolicy: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: .: {} f:runAsNonRoot: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:volumes: .: {} k:{"name":"metrics-certs"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"webhook-cert"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} manager: kubectl-client-side-apply operation: Update time: "2026-09-19T04:30:06Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:spec: f:template: f:metadata: f:annotations: .: {} f:kubectl.kubernetes.io/restartedAt: {} manager: kubectl-rollout operation: Update time: "2026-09-19T04:30:06Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:deployment.kubernetes.io/revision: {} f:status: f:availableReplicas: {} f:conditions: .: {} k:{"type":"Available"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"Progressing"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} f:observedGeneration: {} f:readyReplicas: {} f:replicas: {} f:updatedReplicas: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-09-19T04:59:00Z" name: maas-controller namespace: opendatahub resourceVersion: "69507" uid: 4ff9cd1e-3893-48a1-9e93-0cf57885aabf spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: control-plane: maas-controller strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: annotations: kubectl.kubernetes.io/restartedAt: "2026-09-19T04:30:06Z" labels: app: maas-controller control-plane: maas-controller spec: containers: - args: - --leader-elect - --health-probe-bind-address=:8081 - --metrics-bind-address=:8443 - --metrics-secure=true - --controller-namespace=$(CONTROLLER_NAMESPACE) - --gateway-name=$(GATEWAY_NAME) - --gateway-namespace=$(GATEWAY_NAMESPACE) - --infra-namespace=$(INFRA_NAMESPACE) - --maas-subscription-namespace=$(MAAS_SUBSCRIPTION_NAMESPACE) - --aitenant-namespace=$(AITENANT_NAMESPACE) - --monitoring-namespace=$(MONITORING_NAMESPACE) - --enable-tenant-namespace-discovery - --metadata-cache-ttl=60 - --authz-cache-ttl=60 - --log-format=otel-json command: - /manager env: - name: CONTROLLER_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: GATEWAY_NAME value: maas-default-gateway - name: GATEWAY_NAMESPACE value: openshift-ingress - name: INFRA_NAMESPACE value: AUTO - name: MAAS_SUBSCRIPTION_NAMESPACE value: models-as-a-service - name: AITENANT_NAMESPACE value: ai-tenants - name: RELATED_IMAGE_ODH_MAAS_API_IMAGE valueFrom: configMapKeyRef: key: maas-api-image name: maas-parameters optional: true - name: RELATED_IMAGE_ODH_AI_GATEWAY_PAYLOAD_PROCESSING_IMAGE valueFrom: configMapKeyRef: key: payload-processing-image name: maas-parameters optional: true - name: RELATED_IMAGE_UBI_MINIMAL_IMAGE valueFrom: configMapKeyRef: key: maas-api-key-cleanup-image name: maas-parameters optional: true - name: RELATED_IMAGE_ODH_PYTHON_312_IMAGE valueFrom: configMapKeyRef: key: usage-logs-tenancy-proxy-image name: maas-parameters optional: true - name: MONITORING_NAMESPACE valueFrom: configMapKeyRef: key: monitoring-namespace name: maas-parameters optional: true image: quay.io/opendatahub/maas-controller@sha256:571595da75fefc4c79e730950e0a5a0b0042ee289bb1ff59a0667c7549af44e9 imagePullPolicy: Always livenessProbe: failureThreshold: 3 httpGet: path: /healthz port: 8081 scheme: HTTP initialDelaySeconds: 15 periodSeconds: 20 successThreshold: 1 timeoutSeconds: 1 name: manager ports: - containerPort: 8443 name: metrics protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /readyz port: 8081 scheme: HTTP initialDelaySeconds: 5 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: limits: cpu: 500m memory: 512Mi requests: cpu: 10m memory: 64Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true seccompProfile: type: RuntimeDefault terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /tmp/k8s-webhook-server/serving-certs name: webhook-cert readOnly: true - mountPath: /tmp/k8s-metrics-server/metrics-certs name: metrics-certs readOnly: true dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true serviceAccount: maas-controller serviceAccountName: maas-controller terminationGracePeriodSeconds: 30 volumes: - name: webhook-cert secret: defaultMode: 420 secretName: maas-controller-webhook-cert - name: metrics-certs secret: defaultMode: 420 secretName: maas-controller-metrics-tls status: availableReplicas: 1 conditions: - lastTransitionTime: "2026-09-19T04:30:06Z" lastUpdateTime: "2026-09-19T04:30:21Z" message: ReplicaSet "maas-controller-7bf95c4bb8" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing - lastTransitionTime: "2026-09-19T04:59:00Z" lastUpdateTime: "2026-09-19T04:59:00Z" message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available observedGeneration: 6 readyReplicas: 1 replicas: 1 updatedReplicas: 1 - apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" internal.config.kubernetes.io/previousKinds: Deployment internal.config.kubernetes.io/previousNames: model-serving-api internal.config.kubernetes.io/previousNamespaces: opendatahub platform.opendatahub.io/instance.generation: "1" platform.opendatahub.io/instance.name: default-kserve platform.opendatahub.io/instance.uid: d6dc92e2-8ba7-4caf-a551-1f55b68e0efa creationTimestamp: "2026-09-19T04:19:52Z" generation: 1 labels: app.kubernetes.io/component: server app.kubernetes.io/name: model-serving-api app.kubernetes.io/part-of: odh-model-controller platform.opendatahub.io/part-of: kserve managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:internal.config.kubernetes.io/previousKinds: {} f:internal.config.kubernetes.io/previousNames: {} f:internal.config.kubernetes.io/previousNamespaces: {} f:platform.opendatahub.io/instance.generation: {} f:platform.opendatahub.io/instance.name: {} f:platform.opendatahub.io/instance.uid: {} f:labels: f:app.kubernetes.io/component: {} f:app.kubernetes.io/name: {} f:app.kubernetes.io/part-of: {} f:platform.opendatahub.io/part-of: {} f:ownerReferences: k:{"uid":"d6dc92e2-8ba7-4caf-a551-1f55b68e0efa"}: {} f:spec: f:replicas: {} f:selector: {} f:template: f:metadata: f:labels: f:app: {} f:app.kubernetes.io/component: {} f:app.kubernetes.io/name: {} f:app.kubernetes.io/part-of: {} f:spec: f:containers: k:{"name":"server"}: .: {} f:env: k:{"name":"GATEWAY_LABEL_SELECTOR"}: .: {} f:name: {} f:value: {} k:{"name":"TLS_CERT_DIR"}: .: {} f:name: {} f:value: {} f:image: {} f:livenessProbe: f:httpGet: f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:name: {} f:ports: k:{"containerPort":8080,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} k:{"containerPort":8443,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: f:httpGet: f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:resources: f:limits: f:cpu: {} f:memory: {} f:requests: f:cpu: {} f:memory: {} f:securityContext: f:allowPrivilegeEscalation: {} f:capabilities: f:drop: {} f:readOnlyRootFilesystem: {} f:volumeMounts: k:{"mountPath":"/tls"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} f:securityContext: f:runAsNonRoot: {} f:seccompProfile: f:type: {} f:serviceAccountName: {} f:topologySpreadConstraints: k:{"topologyKey":"kubernetes.io/hostname","whenUnsatisfiable":"ScheduleAnyway"}: .: {} f:labelSelector: {} f:maxSkew: {} f:topologyKey: {} f:whenUnsatisfiable: {} k:{"topologyKey":"topology.kubernetes.io/zone","whenUnsatisfiable":"ScheduleAnyway"}: .: {} f:labelSelector: {} f:maxSkew: {} f:topologyKey: {} f:whenUnsatisfiable: {} f:volumes: k:{"name":"tls-certs"}: .: {} f:name: {} f:secret: f:secretName: {} manager: kserve-module-controller operation: Apply time: "2026-09-19T04:20:06Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:deployment.kubernetes.io/revision: {} f:status: f:availableReplicas: {} f:conditions: .: {} k:{"type":"Available"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"Progressing"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} f:observedGeneration: {} f:readyReplicas: {} f:replicas: {} f:updatedReplicas: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-09-19T04:20:07Z" name: model-serving-api namespace: opendatahub ownerReferences: - apiVersion: components.platform.opendatahub.io/v1alpha1 blockOwnerDeletion: true controller: true kind: Kserve name: default-kserve uid: d6dc92e2-8ba7-4caf-a551-1f55b68e0efa resourceVersion: "18094" uid: b659ebc5-f941-4cc3-abc5-2b336066f6c9 spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: model-serving-api app.kubernetes.io/component: server app.kubernetes.io/name: model-serving-api app.kubernetes.io/part-of: odh-model-controller strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: labels: app: model-serving-api app.kubernetes.io/component: server app.kubernetes.io/name: model-serving-api app.kubernetes.io/part-of: odh-model-controller spec: containers: - env: - name: TLS_CERT_DIR value: /tls - name: GATEWAY_LABEL_SELECTOR image: quay.io/opendatahub/odh-model-serving-api:odh-stable imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 3 httpGet: path: /healthz port: 8443 scheme: HTTPS initialDelaySeconds: 5 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 name: server ports: - containerPort: 8443 name: https protocol: TCP - containerPort: 8080 name: metrics protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /readyz port: 8443 scheme: HTTPS initialDelaySeconds: 5 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: limits: cpu: 500m memory: 1Gi requests: cpu: 50m memory: 64Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /tls name: tls-certs readOnly: true dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault serviceAccount: model-serving-api serviceAccountName: model-serving-api terminationGracePeriodSeconds: 30 topologySpreadConstraints: - labelSelector: matchLabels: app: model-serving-api app.kubernetes.io/component: server app.kubernetes.io/name: model-serving-api app.kubernetes.io/part-of: odh-model-controller maxSkew: 1 topologyKey: topology.kubernetes.io/zone whenUnsatisfiable: ScheduleAnyway - labelSelector: matchLabels: app: model-serving-api app.kubernetes.io/component: server app.kubernetes.io/name: model-serving-api app.kubernetes.io/part-of: odh-model-controller maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: ScheduleAnyway volumes: - name: tls-certs secret: defaultMode: 420 secretName: model-serving-api-tls status: availableReplicas: 1 conditions: - lastTransitionTime: "2026-09-19T04:20:07Z" lastUpdateTime: "2026-09-19T04:20:07Z" message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: "2026-09-19T04:19:52Z" lastUpdateTime: "2026-09-19T04:20:07Z" message: ReplicaSet "model-serving-api-77df98bf98" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing observedGeneration: 1 readyReplicas: 1 replicas: 1 updatedReplicas: 1 - apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" internal.config.kubernetes.io/previousKinds: Deployment internal.config.kubernetes.io/previousNames: odh-model-controller internal.config.kubernetes.io/previousNamespaces: opendatahub platform.opendatahub.io/instance.generation: "1" platform.opendatahub.io/instance.name: default-kserve platform.opendatahub.io/instance.uid: d6dc92e2-8ba7-4caf-a551-1f55b68e0efa creationTimestamp: "2026-09-19T04:19:52Z" generation: 1 labels: app: odh-model-controller control-plane: odh-model-controller platform.opendatahub.io/part-of: kserve managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:internal.config.kubernetes.io/previousKinds: {} f:internal.config.kubernetes.io/previousNames: {} f:internal.config.kubernetes.io/previousNamespaces: {} f:platform.opendatahub.io/instance.generation: {} f:platform.opendatahub.io/instance.name: {} f:platform.opendatahub.io/instance.uid: {} f:labels: f:app: {} f:control-plane: {} f:platform.opendatahub.io/part-of: {} f:ownerReferences: k:{"uid":"d6dc92e2-8ba7-4caf-a551-1f55b68e0efa"}: {} f:spec: f:replicas: {} f:selector: {} f:template: f:metadata: f:annotations: f:kubectl.kubernetes.io/default-container: {} f:labels: f:app: {} f:control-plane: {} f:spec: f:containers: k:{"name":"manager"}: .: {} f:args: {} f:command: {} f:env: k:{"name":"GOMEMLIMIT"}: .: {} f:name: {} f:value: {} k:{"name":"KSERVE_STATE"}: .: {} f:name: {} f:value: {} k:{"name":"MODELREGISTRY_STATE"}: .: {} f:name: {} f:value: {} k:{"name":"NIM_STATE"}: .: {} f:name: {} f:value: {} k:{"name":"POD_NAMESPACE"}: .: {} f:name: {} f:valueFrom: f:fieldRef: {} f:image: {} f:imagePullPolicy: {} f:livenessProbe: f:httpGet: f:path: {} f:port: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:name: {} f:ports: k:{"containerPort":9443,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: f:httpGet: f:path: {} f:port: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:resources: f:limits: f:cpu: {} f:memory: {} f:requests: f:cpu: {} f:memory: {} f:securityContext: f:allowPrivilegeEscalation: {} f:capabilities: f:drop: {} f:volumeMounts: k:{"mountPath":"/tmp/k8s-metrics-server/metrics-certs"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/tmp/k8s-webhook-server/serving-certs"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} f:securityContext: f:runAsNonRoot: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:volumes: k:{"name":"cert"}: .: {} f:name: {} f:secret: f:defaultMode: {} f:secretName: {} k:{"name":"metrics-certs"}: .: {} f:name: {} f:secret: f:secretName: {} manager: kserve-module-controller operation: Apply time: "2026-09-19T04:19:52Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:deployment.kubernetes.io/revision: {} f:status: f:availableReplicas: {} f:conditions: .: {} k:{"type":"Available"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"Progressing"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} f:observedGeneration: {} f:readyReplicas: {} f:replicas: {} f:updatedReplicas: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-09-19T04:20:07Z" name: odh-model-controller namespace: opendatahub ownerReferences: - apiVersion: components.platform.opendatahub.io/v1alpha1 blockOwnerDeletion: true controller: true kind: Kserve name: default-kserve uid: d6dc92e2-8ba7-4caf-a551-1f55b68e0efa resourceVersion: "18104" uid: f454738b-4a86-4377-aa5e-bf2981f0420a spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: control-plane: odh-model-controller strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: annotations: kubectl.kubernetes.io/default-container: manager labels: app: odh-model-controller control-plane: odh-model-controller spec: containers: - args: - --metrics-bind-address=:8443 - --leader-elect - --health-probe-bind-address=:8081 command: - /manager env: - name: GOMEMLIMIT value: 1800MiB - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: NIM_STATE value: removed - name: KSERVE_STATE value: managed - name: MODELREGISTRY_STATE value: removed image: quay.io/opendatahub/odh-model-controller:odh-stable imagePullPolicy: Always livenessProbe: failureThreshold: 3 httpGet: path: /healthz port: 8081 scheme: HTTP initialDelaySeconds: 15 periodSeconds: 20 successThreshold: 1 timeoutSeconds: 1 name: manager ports: - containerPort: 9443 name: webhook-server protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /readyz port: 8081 scheme: HTTP initialDelaySeconds: 5 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: limits: cpu: 500m memory: 2Gi requests: cpu: 10m memory: 64Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /tmp/k8s-webhook-server/serving-certs name: cert readOnly: true - mountPath: /tmp/k8s-metrics-server/metrics-certs name: metrics-certs readOnly: true dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true serviceAccount: odh-model-controller serviceAccountName: odh-model-controller terminationGracePeriodSeconds: 10 volumes: - name: cert secret: defaultMode: 420 secretName: odh-model-controller-webhook-cert - name: metrics-certs secret: defaultMode: 420 secretName: odh-model-controller-metrics-tls status: availableReplicas: 1 conditions: - lastTransitionTime: "2026-09-19T04:20:07Z" lastUpdateTime: "2026-09-19T04:20:07Z" message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: "2026-09-19T04:19:52Z" lastUpdateTime: "2026-09-19T04:20:07Z" message: ReplicaSet "odh-model-controller-7db885c774" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing observedGeneration: 1 readyReplicas: 1 replicas: 1 updatedReplicas: 1 kind: DeploymentList metadata: resourceVersion: "74324"