--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.17.3 operatorframework.io/installed-alongside-8057064ebd85b550: opendatahub/opendatahub-operator.v3.4.0-ea.1 creationTimestamp: "2026-04-22T16:49:44Z" generation: 2 labels: olm.managed: "true" operators.coreos.com/opendatahub-operator.opendatahub: "" managedFields: - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:controller-gen.kubebuilder.io/version: {} f:operatorframework.io/installed-alongside-8057064ebd85b550: {} f:labels: .: {} f:olm.managed: {} f:spec: f:conversion: .: {} f:strategy: {} f:webhook: .: {} f:clientConfig: .: {} f:service: .: {} f:path: {} f:port: {} f:conversionReviewVersions: {} f:group: {} f:names: f:kind: {} f:listKind: {} f:plural: {} f:shortNames: {} f:singular: {} f:scope: {} f:versions: {} manager: catalog operation: Update time: "2026-04-22T16:49:44Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:acceptedNames: f:kind: {} f:listKind: {} f:plural: {} f:shortNames: {} 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-04-22T16:49:44Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: f:operators.coreos.com/opendatahub-operator.opendatahub: {} f:spec: f:conversion: f:webhook: f:clientConfig: f:caBundle: {} f:service: f:name: {} f:namespace: {} manager: olm operation: Update time: "2026-04-22T16:49:46Z" name: datascienceclusters.datasciencecluster.opendatahub.io resourceVersion: "18887" uid: 864045a1-be58-4bf9-8082-6f8803305c8c spec: conversion: strategy: Webhook webhook: clientConfig: caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJ2RENDQVdLZ0F3SUJBZ0lJZnNkR0pyRTdaaUV3Q2dZSUtvWkl6ajBFQXdJd1FqRVdNQlFHQTFVRUNoTU4KVW1Wa0lFaGhkQ3dnU1c1akxqRW9NQ1lHQTFVRUF4TWZiMnh0TFhObGJHWnphV2R1WldRdE4yVmpOelEyTWpaaQpNVE5pTmpZeU1UQWVGdzB5TmpBME1qSXhOalE1TkRaYUZ3MHlPREEwTWpFeE5qUTVORFphTUVJeEZqQVVCZ05WCkJBb1REVkpsWkNCSVlYUXNJRWx1WXk0eEtEQW1CZ05WQkFNVEgyOXNiUzF6Wld4bWMybG5ibVZrTFRkbFl6YzAKTmpJMllqRXpZalkyTWpFd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTeFNDTXoyOUZFZVR0UApjM0JsdjMyZ3FQL0pvcmFtRUpMS1hMMFJqMkhZN0ZNYUtEUEdnTXZxVTVIMk1ZNjRuQ1FsRkVYQmdIRHY2Q3g5CmVaK0QvdS9xbzBJd1FEQU9CZ05WSFE4QkFmOEVCQU1DQWdRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlYKSFE0RUZnUVVQWVBMaHMvR21xNU53Lzd0RGFiTVM4SmZrekV3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnU2hCUgpPQkN1dGZKLzNobDlRVDVsVXNqcXA5ckUxNUZwcG1wd21pZThRYkVDSVFDUkRwaWNLSWQ1VEJBSTQrT21Bb2lRCnFjL0JjT0xqSXREZCtMMTIzNURuaWc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== service: name: opendatahub-operator-controller-manager-service namespace: opendatahub path: /convert port: 443 conversionReviewVersions: - v1 - v2 group: datasciencecluster.opendatahub.io names: kind: DataScienceCluster listKind: DataScienceClusterList plural: datascienceclusters shortNames: - dsc singular: datasciencecluster 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: v1 schema: openAPIV3Schema: description: DataScienceCluster is the Schema for the datascienceclusters API. 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: description: DataScienceClusterSpec defines the desired state of the cluster. properties: components: description: Override and fine tune specific component configurations. properties: codeflare: description: |- CodeFlare component configuration. If CodeFlare Operator has been installed in the cluster, it should be uninstalled first before enabling component. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object dashboard: description: Dashboard component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object datasciencepipelines: description: DataSciencePipeline component configuration. properties: argoWorkflowsControllers: properties: managementState: default: Managed description: |- Set to one of the following values: - "Managed" : the operator is actively managing the bundled Argo Workflows controllers. It will only upgrade the Argo Workflows controllers if it is safe to do so. This is the default behavior. - "Removed" : the operator is not managing the bundled Argo Workflows controllers and will not install it. If it is installed, the operator will remove it but will not remove other Argo Workflows installations. enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object feastoperator: description: Feast Operator component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object kserve: description: |- Kserve component configuration. Only RawDeployment mode is supported. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string modelsAsService: description: Configures and enables Models as a Service integration properties: managementState: default: Removed enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object nim: description: Configures and enables NVIDIA NIM integration properties: airGapped: default: false description: |- When true, NIM integration assumes an air-gapped cluster. External API calls and the NIM model list ConfigMap creation are skipped, while status conditions are marked successful with an air-gapped message. type: boolean managementState: default: Managed enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object rawDeploymentServiceConfig: default: Headless description: |- Configures the type of service that is created for InferenceServices using RawDeployment. The values for RawDeploymentServiceConfig can be "Headless" (default value) or "Headed". Headless: to set "ServiceClusterIPNone = true" in the 'inferenceservice-config' configmap for Kserve. Headed: to set "ServiceClusterIPNone = false" in the 'inferenceservice-config' configmap for Kserve. enum: - Headless - Headed type: string type: object kueue: description: Kueue component configuration. properties: defaultClusterQueueName: default: default description: Configures the automatically created cluster queue name. type: string defaultLocalQueueName: default: default description: Configures the automatically created, in the managed namespaces, local queue name. type: string managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Unmanaged" : the operator will not deploy or manage the component's lifecycle, but may create supporting configuration resources. - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Unmanaged - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object llamastackoperator: description: LlamaStack Operator component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object modelmeshserving: description: ModelMeshServing component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object modelregistry: description: ModelRegistry component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string registriesNamespace: default: odh-model-registries description: Namespace for model registries to be installed, configurable only once when model registry is enabled, defaults to "odh-model-registries" maxLength: 63 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?)?$ type: string type: object x-kubernetes-validations: - message: RegistriesNamespace is immutable when model registry is Managed rule: (!has(self.managementState) || self.managementState != 'Managed') || (oldSelf.registriesNamespace == '') || (!has(oldSelf.managementState) || oldSelf.managementState != 'Managed') || (self.registriesNamespace == oldSelf.registriesNamespace) ray: description: Ray component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object trainingoperator: description: Training Operator component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object trustyai: description: TrustyAI component configuration. properties: eval: description: Eval configuration for TrustyAI evaluations properties: lmeval: description: LMEval configuration for model evaluations properties: permitCodeExecution: default: deny description: PermitCodeExecution controls whether code execution is allowed during evaluations enum: - allow - deny type: string permitOnline: default: deny description: PermitOnline controls whether online access is allowed during evaluations enum: - allow - deny type: string type: object required: - lmeval type: object managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object workbenches: description: Workbenches component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string workbenchNamespace: default: opendatahub description: Namespace for workbenches to be installed, configurable only once when workbenches are enabled, defaults to "opendatahub" maxLength: 63 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?)?$ type: string x-kubernetes-validations: - message: WorkbenchNamespace is immutable rule: self == oldSelf type: object type: object type: object status: description: DataScienceClusterStatus defines the observed state of DataScienceCluster. properties: components: description: Expose component's specific status properties: codeflare: description: CodeFlare component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object dashboard: description: Dashboard component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string url: type: string type: object datasciencepipelines: description: DataSciencePipeline component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object feastoperator: description: Feast Operator component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object kserve: description: Kserve component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object kueue: description: Kueue component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : present for backwards compatibility with OLM upgrades, but not supported at runtime. The operator will reject this value. Use "Unmanaged" or "Removed" instead. - "Unmanaged" : the operator will not deploy or manage the component's lifecycle, but may create supporting configuration resources. - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Unmanaged - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object llamastackoperator: description: LlamaStack Operator component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object modelmeshserving: description: ModelMeshServing component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object modelregistry: description: ModelRegistry component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string registriesNamespace: type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object ray: description: Ray component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object trainingoperator: description: Training Operator component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object trustyai: description: TrustyAI component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object workbenches: description: Workbenches component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map workbenchNamespace: type: string type: object type: object conditions: items: properties: lastHeartbeatTime: description: |- The last time we got an update on a given condition, this should not be set and is present only for backward compatibility reasons format: date-time type: string lastTransitionTime: description: |- lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 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. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. 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 with which to treat failures of this type of condition. When this is not specified, it defaults to Error. 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 errorMessage: type: string installedComponents: additionalProperties: type: boolean description: List of components with status if installed or not type: object observedGeneration: description: The generation observed by the resource controller. format: int64 type: integer phase: type: string relatedObjects: description: |- RelatedObjects is a list of objects created and maintained by this operator. Object references will be added to this list after they have been created AND found in the cluster. items: description: ObjectReference contains enough information to let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: |- If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. type: string kind: description: |- Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: description: |- Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: description: |- Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: description: |- UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic type: array release: description: Version and release type properties: name: type: string version: type: string type: object type: object type: object served: true storage: false subresources: status: {} - 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: v2 schema: openAPIV3Schema: description: DataScienceCluster is the Schema for the datascienceclusters API. 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: description: DataScienceClusterSpec defines the desired state of the cluster. properties: components: description: Override and fine tune specific component configurations. properties: aipipelines: description: AIPipelines component configuration. properties: argoWorkflowsControllers: properties: managementState: default: Managed description: |- Set to one of the following values: - "Managed" : the operator is actively managing the bundled Argo Workflows controllers. It will only upgrade the Argo Workflows controllers if it is safe to do so. This is the default behavior. - "Removed" : the operator is not managing the bundled Argo Workflows controllers and will not install it. If it is installed, the operator will remove it but will not remove other Argo Workflows installations. enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object dashboard: description: Dashboard component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object feastoperator: description: Feast Operator component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object kserve: description: |- Kserve component configuration. Only RawDeployment mode is supported. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string modelsAsService: description: Configures and enables Models as a Service integration properties: managementState: default: Removed enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object nim: description: Configures and enables NVIDIA NIM integration properties: airGapped: default: false description: |- When true, NIM integration assumes an air-gapped cluster. External API calls and the NIM model list ConfigMap creation are skipped, while status conditions are marked successful with an air-gapped message. type: boolean managementState: default: Managed enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object rawDeploymentServiceConfig: default: Headless description: |- Configures the type of service that is created for InferenceServices using RawDeployment. The values for RawDeploymentServiceConfig can be "Headless" (default value) or "Headed". Headless: to set "ServiceClusterIPNone = true" in the 'inferenceservice-config' configmap for Kserve. Headed: to set "ServiceClusterIPNone = false" in the 'inferenceservice-config' configmap for Kserve. enum: - Headless - Headed type: string type: object kueue: description: Kueue component configuration. properties: defaultClusterQueueName: default: default description: Configures the automatically created cluster queue name. type: string defaultLocalQueueName: default: default description: Configures the automatically created, in the managed namespaces, local queue name. type: string managementState: description: |- Set to one of the following values: - "Managed" : present for backwards compatibility with OLM upgrades, but not supported at runtime. The operator will reject this value. Use "Unmanaged" or "Removed" instead. - "Unmanaged" : the operator will not deploy or manage the component's lifecycle, but may create supporting configuration resources. - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Unmanaged - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object llamastackoperator: description: LlamaStack Operator component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object mlflowoperator: description: MLflow Operator component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object modelregistry: description: ModelRegistry component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string registriesNamespace: default: odh-model-registries description: Namespace for model registries to be installed, configurable only once when model registry is enabled, defaults to "odh-model-registries" maxLength: 63 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?)?$ type: string type: object x-kubernetes-validations: - message: RegistriesNamespace is immutable when model registry is Managed rule: (!has(self.managementState) || self.managementState != 'Managed') || (oldSelf.registriesNamespace == '') || (!has(oldSelf.managementState) || oldSelf.managementState != 'Managed') || (self.registriesNamespace == oldSelf.registriesNamespace) ray: description: Ray component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object sparkoperator: description: SparkOperator component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object trainer: description: Trainer component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object trainingoperator: description: Training Operator component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object trustyai: description: TrustyAI component configuration. properties: eval: description: Eval configuration for TrustyAI evaluations properties: lmeval: description: LMEval configuration for model evaluations properties: permitCodeExecution: default: deny description: PermitCodeExecution controls whether code execution is allowed during evaluations enum: - allow - deny type: string permitOnline: default: deny description: PermitOnline controls whether online access is allowed during evaluations enum: - allow - deny type: string type: object required: - lmeval type: object managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string type: object workbenches: description: Workbenches component configuration. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string workbenchNamespace: default: opendatahub description: Namespace for workbenches to be installed, configurable only once when workbenches are enabled, defaults to "opendatahub" maxLength: 63 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?)?$ type: string x-kubernetes-validations: - message: WorkbenchNamespace is immutable rule: self == oldSelf type: object type: object type: object status: description: DataScienceClusterStatus defines the observed state of DataScienceCluster. properties: components: description: Expose component's specific status properties: aipipelines: description: AIPipelines component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object dashboard: description: Dashboard component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string url: type: string type: object feastoperator: description: Feast Operator component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object kserve: description: Kserve component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object kueue: description: Kueue component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : present for backwards compatibility with OLM upgrades, but not supported at runtime. The operator will reject this value. Use "Unmanaged" or "Removed" instead. - "Unmanaged" : the operator will not deploy or manage the component's lifecycle, but may create supporting configuration resources. - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Unmanaged - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object llamastackoperator: description: LlamaStack Operator component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object mlflowoperator: description: MLflow Operator component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object modelregistry: description: ModelRegistry component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string registriesNamespace: type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object ray: description: Ray component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object sparkoperator: description: SparkOperator component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object trainer: description: Trainer component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object trainingoperator: description: Training Operator component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object trustyai: description: TrustyAI component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map type: object workbenches: description: Workbenches component status. properties: managementState: description: |- Set to one of the following values: - "Managed" : the operator is actively managing the component and trying to keep it active. It will only upgrade the component if it is safe to do so - "Removed" : the operator is actively managing the component and will not install it, or if it is installed, the operator will try to remove it enum: - Managed - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string releases: items: description: ComponentRelease represents the detailed status of a component release. properties: name: type: string repoUrl: type: string version: type: string required: - name type: object type: array x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map workbenchNamespace: type: string type: object type: object conditions: items: properties: lastHeartbeatTime: description: |- The last time we got an update on a given condition, this should not be set and is present only for backward compatibility reasons format: date-time type: string lastTransitionTime: description: |- lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. 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. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. 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 with which to treat failures of this type of condition. When this is not specified, it defaults to Error. 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 errorMessage: type: string observedGeneration: description: The generation observed by the resource controller. format: int64 type: integer phase: type: string relatedObjects: description: |- RelatedObjects is a list of objects created and maintained by this operator. Object references will be added to this list after they have been created AND found in the cluster. items: description: ObjectReference contains enough information to let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: |- If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. type: string kind: description: |- Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: description: |- Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: description: |- Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: description: |- UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic type: array release: description: Version and release type properties: name: type: string version: type: string type: object type: object type: object served: true storage: true subresources: status: {} status: acceptedNames: kind: DataScienceCluster listKind: DataScienceClusterList plural: datascienceclusters shortNames: - dsc singular: datasciencecluster conditions: - lastTransitionTime: "2026-04-22T16:49:44Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2026-04-22T16:49:44Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v2