--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 internal.config.kubernetes.io/previousKinds: CustomResourceDefinition internal.config.kubernetes.io/previousNames: kserves.components.platform.opendatahub.io internal.config.kubernetes.io/previousNamespaces: _non_namespaceable_ creationTimestamp: "2026-09-18T04:11:53Z" generation: 1 labels: platform.opendatahub.io/part-of: platform managedFields: - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:controller-gen.kubebuilder.io/version: {} f:internal.config.kubernetes.io/previousKinds: {} f:internal.config.kubernetes.io/previousNames: {} f:internal.config.kubernetes.io/previousNamespaces: {} f:labels: f:platform.opendatahub.io/part-of: {} f:spec: f:group: {} f:names: f:kind: {} f:listKind: {} f:plural: {} f:singular: {} f:scope: {} f:versions: {} manager: platform.opendatahub.io operation: Apply time: "2026-09-18T04:11:53Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:acceptedNames: f:kind: {} f:listKind: {} f:plural: {} f:singular: {} f:conditions: k:{"type":"Established"}: .: {} f:lastTransitionTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"NamesAccepted"}: .: {} f:lastTransitionTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} manager: kube-apiserver operation: Update subresource: status time: "2026-09-18T04:11:53Z" name: kserves.components.platform.opendatahub.io resourceVersion: "16507" uid: b0fa0fa9-b39f-42a3-bc66-803aad955a59 spec: conversion: strategy: None group: components.platform.opendatahub.io names: kind: Kserve listKind: KserveList plural: kserves singular: kserve scope: Cluster versions: - additionalPrinterColumns: - description: Ready jsonPath: .status.conditions[?(@.type=="Ready")].status name: Ready type: string - description: Reason jsonPath: .status.conditions[?(@.type=="Ready")].reason name: Reason type: string name: v1alpha1 schema: openAPIV3Schema: properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: properties: auditLogging: default: Removed description: |- AuditLogging controls inference request audit logging. Managed writes openshiftConfig.enableAuditLogging=true on inferenceservice-config. Removed writes openshiftConfig.enableAuditLogging=false. enum: - Managed - Removed type: string enableLLMInferenceServiceConsoleDashboards: description: |- Enables OpenShift Developer Console dashboards for LLMInferenceService. Enabled by default. type: boolean enableLLMInferenceServiceTLS: description: |- Enables TLS for LLMInferenceService deployments. When unset, the KServe default (TLS enabled) is preserved. type: boolean managementState: default: Managed description: |- ManagementState controls whether the operator actively manages the component (Managed) or removes it (Removed). enum: - Managed - Removed type: string modelCache: properties: cacheSize: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true managementState: default: Removed description: |- ManagementState defines whether a component is actively managed by the operator or scheduled for removal. enum: - Managed - Removed type: string nodeNames: items: minLength: 1 type: string minItems: 1 type: array nodeSelector: description: |- A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: description: |- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: description: |- operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: |- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string description: |- matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic type: object x-kubernetes-validations: - message: cacheSize is required when managementState is Managed rule: self.managementState != 'Managed' || has(self.cacheSize) - message: one non-empty nodeNames or nodeSelector is required when managementState is Managed rule: self.managementState != 'Managed' || (has(self.nodeNames) && size(self.nodeNames) > 0) || (has(self.nodeSelector) && ((has(self.nodeSelector.matchLabels) && size(self.nodeSelector.matchLabels) > 0) || (has(self.nodeSelector.matchExpressions) && size(self.nodeSelector.matchExpressions) > 0))) - message: nodeNames and nodeSelector are mutually exclusive rule: '!(has(self.nodeNames) && has(self.nodeSelector))' modelRegistry: properties: managementState: default: Removed description: |- ManagementState defines whether a component is actively managed by the operator or scheduled for removal. enum: - Managed - Removed type: string type: object nim: properties: airGapped: type: boolean managementState: default: Managed description: |- ManagementState defines whether a component is actively managed by the operator or scheduled for removal. enum: - Managed - Removed type: string type: object oauthProxy: description: |- OAuthProxyConfig configures the OAuth proxy sidecar container in the inferenceservice-config ConfigMap. properties: resources: description: |- OAuthProxyResourceRequirements describes the resource requirements for the OAuth proxy sidecar container. properties: limits: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: ResourceList is a set of (resource name, quantity) pairs. type: object requests: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: ResourceList is a set of (resource name, quantity) pairs. type: object type: object type: object rawDeploymentServiceConfig: default: Headless enum: - Headless - Headed type: string wva: properties: managementState: default: Removed description: |- ManagementState defines whether a component is actively managed by the operator or scheduled for removal. enum: - Managed - Removed type: string type: object type: object status: properties: conditions: description: Conditions is the set of condition observations for this module. items: description: |- Condition represents an observation of a module's state at a point in time. Module controllers set conditions to communicate health signals to the orchestrator and to human operators. properties: lastHeartbeatTime: description: |- Deprecated: LastHeartbeatTime is present only for backward compatibility with existing CRDs. New code should not set this field. format: date-time type: string lastTransitionTime: description: |- lastTransitionTime is the last time the condition transitioned from one status to another. format: date-time type: string message: description: |- message is a human-readable message indicating details about the transition. type: string observedGeneration: description: |- observedGeneration represents the .metadata.generation that the condition was set based upon. If this does not match the resource's current generation, the condition is likely stale. format: int64 minimum: 0 type: integer reason: description: |- reason contains a programmatic identifier indicating the reason for the condition's last transition. The value should be a CamelCase string. type: string severity: description: |- Severity indicates whether this condition represents an error or is purely informational. Empty string (default) indicates error severity. type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - status - type type: object type: array x-kubernetes-list-type: atomic observedGeneration: description: |- ObservedGeneration is the most recent .metadata.generation observed by the controller. It allows consumers to determine whether the controller has processed the latest spec changes. format: int64 type: integer phase: description: Phase is the top-level lifecycle phase of the module. type: string releases: description: Releases is the list of deployed component releases. items: description: ComponentRelease describes a single software component's release metadata. properties: name: description: Name is the component name, used as the merge key in lists. type: string repoUrl: description: RepoURL is the source repository URL for this component release. type: string version: description: Version is the semantic version of the component. type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object type: object x-kubernetes-validations: - message: Kserve name must be 'default-kserve' rule: self.metadata.name == 'default-kserve' served: true storage: true subresources: status: {} status: acceptedNames: kind: Kserve listKind: KserveList plural: kserves singular: kserve conditions: - lastTransitionTime: "2026-09-18T04:11:53Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2026-09-18T04:11:53Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1alpha1