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:odh-pr-1508","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-19T10:42:41Z" 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 name: maas-controller namespace: opendatahub resourceVersion: "61697" uid: a12d4a6c-47b5-4a87-b43a-80dd8622b98b 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-19T10:42:41Z" 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:odh-pr-1508 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-19T10:42:41Z" lastUpdateTime: "2026-09-19T10:42:56Z" message: ReplicaSet "maas-controller-bb96ff4f5" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing - lastTransitionTime: "2026-09-19T11:07:00Z" lastUpdateTime: "2026-09-19T11:07:00Z" message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available observedGeneration: 6 readyReplicas: 1 replicas: 1 updatedReplicas: 1