--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.1 creationTimestamp: "2026-03-18T16:49:44Z" generation: 1 managedFields: - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:controller-gen.kubebuilder.io/version: {} f:spec: f:group: {} f:names: f:kind: {} f:listKind: {} f:plural: {} f:shortNames: {} f:singular: {} f:scope: {} f:versions: {} manager: kubectl operation: Apply time: "2026-03-18T16: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-03-18T16:49:44Z" name: datascienceclusters.datasciencecluster.opendatahub.io resourceVersion: "12037" uid: 0ae38ea0-da4a-44e3-8bb1-e08f6c3163c7 spec: conversion: strategy: None group: datasciencecluster.opendatahub.io names: kind: DataScienceCluster listKind: DataScienceClusterList plural: datascienceclusters shortNames: - dsc singular: datasciencecluster scope: Cluster versions: - 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 enabled component. properties: devFlags: description: Add developer fields properties: manifests: description: List of custom manifests for the given component items: properties: contextDir: default: manifests description: contextDir is the relative path to the folder containing manifests in a repository, default value "manifests" type: string sourcePath: default: "" description: 'sourcePath is the subpath within contextDir where kustomize builds start. Examples include any sub-folder or path: `base`, `overlays/dev`, `default`, `odh` etc.' type: string uri: default: "" description: uri is the URI point to a git repo with tag/branch. e.g. https://github.com/org/repo/tarball/ type: string type: object type: array 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: devFlags: description: Add developer fields properties: manifests: description: List of custom manifests for the given component items: properties: contextDir: default: manifests description: contextDir is the relative path to the folder containing manifests in a repository, default value "manifests" type: string sourcePath: default: "" description: 'sourcePath is the subpath within contextDir where kustomize builds start. Examples include any sub-folder or path: `base`, `overlays/dev`, `default`, `odh` etc.' type: string uri: default: "" description: uri is the URI point to a git repo with tag/branch. e.g. https://github.com/org/repo/tarball/ type: string type: object type: array 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 datasciencepipelines: description: |- DataServicePipeline component configuration. Require OpenShift Pipelines Operator to be installed before enable component properties: devFlags: description: Add developer fields properties: manifests: description: List of custom manifests for the given component items: properties: contextDir: default: manifests description: contextDir is the relative path to the folder containing manifests in a repository, default value "manifests" type: string sourcePath: default: "" description: 'sourcePath is the subpath within contextDir where kustomize builds start. Examples include any sub-folder or path: `base`, `overlays/dev`, `default`, `odh` etc.' type: string uri: default: "" description: uri is the URI point to a git repo with tag/branch. e.g. https://github.com/org/repo/tarball/ type: string type: object type: array 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 kserve: description: |- Kserve component configuration. Require OpenShift Serverless and OpenShift Service Mesh Operators to be installed before enable component Does not support enabled ModelMeshServing at the same time properties: defaultDeploymentMode: description: |- Configures the default deployment mode for Kserve. This can be set to 'Serverless' or 'RawDeployment'. The value specified in this field will be used to set the default deployment mode in the 'inferenceservice-config' configmap for Kserve. This field is optional. If no default deployment mode is specified, Kserve will use Serverless mode. enum: - Serverless - RawDeployment pattern: ^(Serverless|RawDeployment)$ type: string devFlags: description: Add developer fields properties: manifests: description: List of custom manifests for the given component items: properties: contextDir: default: manifests description: contextDir is the relative path to the folder containing manifests in a repository, default value "manifests" type: string sourcePath: default: "" description: 'sourcePath is the subpath within contextDir where kustomize builds start. Examples include any sub-folder or path: `base`, `overlays/dev`, `default`, `odh` etc.' type: string uri: default: "" description: uri is the URI point to a git repo with tag/branch. e.g. https://github.com/org/repo/tarball/ type: string type: object type: array 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 serving: description: |- Serving configures the KNative-Serving stack used for model serving. A Service Mesh (Istio) is prerequisite, since it is used as networking layer. properties: ingressGateway: description: |- IngressGateway allows to customize some parameters for the Istio Ingress Gateway that is bound to KNative-Serving. properties: certificate: description: |- Certificate specifies configuration of the TLS certificate securing communication for the gateway. properties: secretName: description: |- SecretName specifies the name of the Kubernetes Secret resource that contains a TLS certificate secure HTTP communications for the KNative network. type: string type: default: OpenshiftDefaultIngress description: |- Type specifies if the TLS certificate should be generated automatically, or if the certificate is provided by the user. Allowed values are: * SelfSigned: A certificate is going to be generated using an own private key. * Provided: Pre-existence of the TLS Secret (see SecretName) with a valid certificate is assumed. * OpenshiftDefaultIngress: Default ingress certificate configured for OpenShift enum: - SelfSigned - Provided - OpenshiftDefaultIngress type: string type: object domain: description: |- Domain specifies the host name for intercepting incoming requests. Most likely, you will want to use a wildcard name, like *.example.com. If not set, the domain of the OpenShift Ingress is used. If you choose to generate a certificate, this is the domain used for the certificate request. type: string type: object managementState: default: Managed enum: - Managed - Unmanaged - Removed pattern: ^(Managed|Unmanaged|Force|Removed)$ type: string name: default: knative-serving description: |- Name specifies the name of the KNativeServing resource that is going to be created to instruct the KNative Operator to deploy KNative serving components. This resource is created in the "knative-serving" namespace. type: string type: object type: object kueue: description: Kueue component configuration. properties: devFlags: description: Add developer fields properties: manifests: description: List of custom manifests for the given component items: properties: contextDir: default: manifests description: contextDir is the relative path to the folder containing manifests in a repository, default value "manifests" type: string sourcePath: default: "" description: 'sourcePath is the subpath within contextDir where kustomize builds start. Examples include any sub-folder or path: `base`, `overlays/dev`, `default`, `odh` etc.' type: string uri: default: "" description: uri is the URI point to a git repo with tag/branch. e.g. https://github.com/org/repo/tarball/ type: string type: object type: array 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 modelmeshserving: description: |- ModelMeshServing component configuration. Does not support enabled Kserve at the same time properties: devFlags: description: Add developer fields properties: manifests: description: List of custom manifests for the given component items: properties: contextDir: default: manifests description: contextDir is the relative path to the folder containing manifests in a repository, default value "manifests" type: string sourcePath: default: "" description: 'sourcePath is the subpath within contextDir where kustomize builds start. Examples include any sub-folder or path: `base`, `overlays/dev`, `default`, `odh` etc.' type: string uri: default: "" description: uri is the URI point to a git repo with tag/branch. e.g. https://github.com/org/repo/tarball/ type: string type: object type: array 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 modelregistry: description: ModelRegistry component configuration. properties: devFlags: description: Add developer fields properties: manifests: description: List of custom manifests for the given component items: properties: contextDir: default: manifests description: contextDir is the relative path to the folder containing manifests in a repository, default value "manifests" type: string sourcePath: default: "" description: 'sourcePath is the subpath within contextDir where kustomize builds start. Examples include any sub-folder or path: `base`, `overlays/dev`, `default`, `odh` etc.' type: string uri: default: "" description: uri is the URI point to a git repo with tag/branch. e.g. https://github.com/org/repo/tarball/ type: string type: object type: array 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 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: (self.managementState != 'Managed') || (oldSelf.registriesNamespace == '') || (oldSelf.managementState != 'Managed')|| (self.registriesNamespace == oldSelf.registriesNamespace) ray: description: Ray component configuration. properties: devFlags: description: Add developer fields properties: manifests: description: List of custom manifests for the given component items: properties: contextDir: default: manifests description: contextDir is the relative path to the folder containing manifests in a repository, default value "manifests" type: string sourcePath: default: "" description: 'sourcePath is the subpath within contextDir where kustomize builds start. Examples include any sub-folder or path: `base`, `overlays/dev`, `default`, `odh` etc.' type: string uri: default: "" description: uri is the URI point to a git repo with tag/branch. e.g. https://github.com/org/repo/tarball/ type: string type: object type: array 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 trainingoperator: description: Training Operator component configuration. properties: devFlags: description: Add developer fields properties: manifests: description: List of custom manifests for the given component items: properties: contextDir: default: manifests description: contextDir is the relative path to the folder containing manifests in a repository, default value "manifests" type: string sourcePath: default: "" description: 'sourcePath is the subpath within contextDir where kustomize builds start. Examples include any sub-folder or path: `base`, `overlays/dev`, `default`, `odh` etc.' type: string uri: default: "" description: uri is the URI point to a git repo with tag/branch. e.g. https://github.com/org/repo/tarball/ type: string type: object type: array 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 trustyai: description: TrustyAI component configuration. properties: devFlags: description: Add developer fields properties: manifests: description: List of custom manifests for the given component items: properties: contextDir: default: manifests description: contextDir is the relative path to the folder containing manifests in a repository, default value "manifests" type: string sourcePath: default: "" description: 'sourcePath is the subpath within contextDir where kustomize builds start. Examples include any sub-folder or path: `base`, `overlays/dev`, `default`, `odh` etc.' type: string uri: default: "" description: uri is the URI point to a git repo with tag/branch. e.g. https://github.com/org/repo/tarball/ type: string type: object type: array 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: devFlags: description: Add developer fields properties: manifests: description: List of custom manifests for the given component items: properties: contextDir: default: manifests description: contextDir is the relative path to the folder containing manifests in a repository, default value "manifests" type: string sourcePath: default: "" description: 'sourcePath is the subpath within contextDir where kustomize builds start. Examples include any sub-folder or path: `base`, `overlays/dev`, `default`, `odh` etc.' type: string uri: default: "" description: uri is the URI point to a git repo with tag/branch. e.g. https://github.com/org/repo/tarball/ type: string type: object type: array 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 type: object type: object status: description: DataScienceClusterStatus defines the observed state of DataScienceCluster. properties: components: description: Expose component's specific status properties: modelregistry: description: ModelRegistry component status properties: registriesNamespace: type: string type: object type: object conditions: description: Conditions describes the state of the DataScienceCluster resource. items: description: |- Condition represents the state of the operator's reconciliation functionality. properties: lastHeartbeatTime: format: date-time type: string lastTransitionTime: format: date-time type: string message: type: string reason: type: string status: type: string type: description: ConditionType is the state of the operator's reconciliation functionality. type: string required: - status - type type: object type: array errorMessage: type: string installedComponents: additionalProperties: type: boolean description: List of components with status if installed or not type: object phase: description: |- Phase describes the Phase of DataScienceCluster reconciliation state This is used by OLM UI to provide status information to the user 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-03-18T16:49:44Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2026-03-18T16:49:44Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1