diff --git a/bundle/manifests/console.openshift.io_odhquickstarts.yaml b/bundle/manifests/console.openshift.io_odhquickstarts.yaml new file mode 100644 index 00000000000..fa5cfa2f850 --- /dev/null +++ b/bundle/manifests/console.openshift.io_odhquickstarts.yaml @@ -0,0 +1,216 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + description: Extension for guiding user through various workflows in the Red Hat + OpenShift Data Science dashboard. + displayName: OdhQuickStart + include.release.openshift.io/ibm-cloud-managed: "true" + include.release.openshift.io/self-managed-high-availability: "true" + include.release.openshift.io/single-node-developer: "true" + creationTimestamp: null + labels: + opendatahub.io/dashboardcrd: "true" + name: odhquickstarts.console.openshift.io +spec: + group: console.openshift.io + names: + kind: OdhQuickStart + listKind: OdhQuickStartList + plural: odhquickstarts + singular: odhquickstart + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: OdhQuickStart is an extension for guiding user through various + workflows in the Red Hat OpenShift Data Science dashboard. + 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: OdhQuickStartSpec is the desired quick start configuration. + properties: + accessReviewResources: + description: accessReviewResources contains a list of resources that + the user's access will be reviewed against in order for the user + to complete the Quick Start. The Quick Start will be hidden if any + of the access reviews fail. + items: + description: ResourceAttributes includes the authorization attributes + available for resource requests to the Authorizer interface + properties: + group: + description: Group is the API Group of the Resource. "*" means + all. + type: string + name: + description: Name is the name of the resource being requested + for a "get" or deleted for a "delete". "" (empty) means all. + type: string + namespace: + description: Namespace is the namespace of the action being + requested. Currently, there is no distinction between no + namespace and all namespaces "" (empty) is defaulted for LocalSubjectAccessReviews + "" (empty) is empty for cluster-scoped resources "" (empty) + means "all" for namespace scoped resources from a SubjectAccessReview + or SelfSubjectAccessReview + type: string + resource: + description: Resource is one of the existing resource types. "*" + means all. + type: string + subresource: + description: Subresource is one of the existing resource types. "" + means none. + type: string + verb: + description: 'Verb is a kubernetes resource API verb, like: + get, list, watch, create, update, delete, proxy. "*" means + all.' + type: string + version: + description: Version is the API Version of the Resource. "*" + means all. + type: string + type: object + type: array + appName: + description: the name/id of the odh application the quick start pertains + to + type: string + conclusion: + description: conclusion sums up the Quick Start and suggests the possible + next steps. (includes markdown) + type: string + description: + description: description is the description of the Quick Start. (includes + markdown) + maxLength: 256 + minLength: 1 + type: string + displayName: + description: displayName is the display name of the Quick Start. + minLength: 1 + type: string + durationMinutes: + description: durationMinutes describes approximately how many minutes + it will take to complete the Quick Start. + minimum: 1 + type: integer + icon: + description: icon is a base64 encoded image that will be displayed + beside the Quick Start display name. The icon should be an vector + image for easy scaling. The size of the icon should be 40x40. + type: string + introduction: + description: introduction describes the purpose of the Quick Start. + (includes markdown) + minLength: 1 + type: string + nextQuickStart: + description: nextQuickStart is a list of the following Quick Starts, + suggested for the user to try. + items: + type: string + type: array + prerequisites: + description: prerequisites contains all prerequisites that need to + be met before taking a Quick Start. (includes markdown) + items: + type: string + type: array + tags: + description: tags is a list of strings that describe the Quick Start. + items: + type: string + type: array + tasks: + description: tasks is the list of steps the user has to perform to + complete the Quick Start. + items: + description: OdhQuickStartTask is a single step in a Quick Start. + properties: + description: + description: description describes the steps needed to complete + the task. (includes markdown) + minLength: 1 + type: string + review: + description: review contains instructions to validate the task + is complete. The user will select 'Yes' or 'No'. using a radio + button, which indicates whether the step was completed successfully. + properties: + failedTaskHelp: + description: failedTaskHelp contains suggestions for a failed + task review and is shown at the end of task. (includes + markdown) + minLength: 1 + type: string + instructions: + description: instructions contains steps that user needs + to take in order to validate his work after going through + a task. (includes markdown) + minLength: 1 + type: string + required: + - failedTaskHelp + - instructions + type: object + summary: + description: summary contains information about the passed step. + properties: + failed: + description: failed briefly describes the unsuccessfully + passed task. (includes markdown) + maxLength: 128 + minLength: 1 + type: string + success: + description: success describes the succesfully passed task. + minLength: 1 + type: string + required: + - failed + - success + type: object + title: + description: title describes the task and is displayed as a + step heading. + minLength: 1 + type: string + required: + - description + - title + type: object + minItems: 1 + type: array + required: + - description + - displayName + - durationMinutes + - introduction + - tasks + type: object + required: + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/bundle/manifests/dashboard.opendatahub.io_odhapplications.yaml b/bundle/manifests/dashboard.opendatahub.io_odhapplications.yaml new file mode 100644 index 00000000000..c7964163a03 --- /dev/null +++ b/bundle/manifests/dashboard.opendatahub.io_odhapplications.yaml @@ -0,0 +1,167 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + opendatahub.io/dashboardcrd: "true" + name: odhapplications.dashboard.opendatahub.io +spec: + group: dashboard.opendatahub.io + names: + kind: OdhApplication + listKind: OdhApplicationList + plural: odhapplications + singular: odhapplication + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: OdhApplication is the Schema for the odhapplications 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: OdhApplicationSpec defines the desired state of OdhApplication + properties: + beta: + type: boolean + betaText: + type: string + betaTitle: + type: string + category: + type: string + comingSoon: + type: boolean + consoleLink: + type: string + csvName: + type: string + description: + type: string + displayName: + type: string + docsLink: + type: string + enable: + properties: + actionLabel: + type: string + description: + type: string + link: + type: string + linkPreface: + type: string + title: + type: string + validationConfigMap: + type: string + validationJob: + type: string + validationSecret: + type: string + variableDisplayText: + additionalProperties: + type: string + type: object + variableHelpText: + additionalProperties: + type: string + type: object + variables: + additionalProperties: + type: string + type: object + type: object + enableCR: + properties: + field: + type: string + group: + type: string + name: + type: string + namespace: + type: string + plural: + type: string + value: + type: string + version: + type: string + type: object + endpoint: + type: string + featureFlag: + type: string + getStartedLink: + type: string + getStartedMarkDown: + type: string + img: + type: string + internalRoute: + type: string + isEnabled: + type: boolean + kfdefApplications: + items: + type: string + type: array + link: + type: string + provider: + type: string + quickStart: + type: string + route: + type: string + routeNamespace: + type: string + routeSuffix: + type: string + serviceName: + type: string + support: + type: string + required: + - description + - displayName + - docsLink + - getStartedLink + - getStartedMarkDown + - img + - provider + - support + type: object + status: + description: OdhApplicationStatus defines the observed state of OdhApplication + properties: + enabled: + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/bundle/manifests/dashboard.opendatahub.io_odhdocuments.yaml b/bundle/manifests/dashboard.opendatahub.io_odhdocuments.yaml new file mode 100644 index 00000000000..8d23a66cfed --- /dev/null +++ b/bundle/manifests/dashboard.opendatahub.io_odhdocuments.yaml @@ -0,0 +1,82 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + opendatahub.io/dashboardcrd: "true" + name: odhdocuments.dashboard.opendatahub.io +spec: + group: dashboard.opendatahub.io + names: + kind: OdhDocument + listKind: OdhDocumentList + plural: odhdocuments + singular: odhdocument + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: OdhDocument is the Schema for the odhdocuments 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: OdhDocumentSpec defines the desired state of OdhDocument + properties: + appName: + type: string + description: + type: string + displayName: + type: string + durationMinutes: + type: integer + featureFlag: + type: string + icon: + type: string + img: + type: string + provider: + type: string + type: + type: string + url: + type: string + required: + - description + - displayName + - durationMinutes + - type + - url + type: object + status: + description: OdhDocumentStatus defines the observed state of OdhDocument + properties: + enabled: + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/bundle/manifests/datasciencecluster.opendatahub.io_datascienceclusters.yaml b/bundle/manifests/datasciencecluster.opendatahub.io_datascienceclusters.yaml new file mode 100644 index 00000000000..7114ff7674a --- /dev/null +++ b/bundle/manifests/datasciencecluster.opendatahub.io_datascienceclusters.yaml @@ -0,0 +1,252 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null + name: datascienceclusters.datasciencecluster.opendatahub.io +spec: + group: datasciencecluster.opendatahub.io + names: + kind: DataScienceCluster + listKind: DataScienceClusterList + plural: datascienceclusters + singular: datasciencecluster + scope: Cluster + versions: + - name: v1alpha1 + 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 DataScienceCluster + properties: + components: + description: Components are used to override and fine tune specific + component configurations. + properties: + dashboard: + description: Dashboard component configuration + properties: + enabled: + description: enables or disables the component. A disabled + component will not be installed. + type: boolean + type: object + serving: + description: Serving component configuration + properties: + enabled: + description: enables or disables the component. A disabled + component will not be installed. + type: boolean + testConfigMap: + description: ConfigMap holds configuration data for pods to + consume. + 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 + binaryData: + additionalProperties: + format: byte + type: string + description: BinaryData contains the binary data. Each + key must consist of alphanumeric characters, '-', '_' + or '.'. BinaryData can contain byte sequences that are + not in the UTF-8 range. The keys stored in BinaryData + must not overlap with the ones in the Data field, this + is enforced during validation process. Using this field + will require 1.10+ apiserver and kubelet. + type: object + data: + additionalProperties: + type: string + description: Data contains the configuration data. Each + key must consist of alphanumeric characters, '-', '_' + or '.'. Values with non-UTF-8 byte sequences must use + the BinaryData field. The keys stored in Data must not + overlap with the keys in the BinaryData field, this + is enforced during validation process. + type: object + immutable: + description: Immutable, if set to true, ensures that data + stored in the ConfigMap cannot be updated (only object + metadata can be modified). If not set to true, the field + can be modified at any time. Defaulted to nil. + type: boolean + 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: + description: 'Standard object''s metadata. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' + type: object + type: object + type: object + training: + description: DataServicePipeline component configuration + properties: + enabled: + description: enables or disables the component. A disabled + component will not be installed. + type: boolean + type: object + workbenches: + description: Workbenches component configuration + properties: + enabled: + description: enables or disables the component. A disabled + component will not be installed. + type: boolean + managedImages: + description: List of configurable controllers/deployments + type: boolean + type: object + type: object + profile: + description: 'A profile sets the default components and configuration + to install for a given use case. The profile configuration can still + be overriden by the user on a per component basis. If not defined, + the ''full'' profile is used. Valid values are: - full: all components + are installed - serving: only serving components are installed - + training: only training components are installed - workbench: only + workbench components are installed' + type: string + type: object + status: + description: DataScienceClusterStatus defines the observed state of DataScienceCluster + properties: + 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 + 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. --- New uses of this + type are discouraged because of difficulty describing its usage + when embedded in APIs. 1. Ignored fields. It includes many fields + which are not generally honored. For instance, ResourceVersion + and FieldPath are both very rarely valid in actual usage. 2. Invalid + usage help. It is impossible to add specific help for individual + usage. In most embedded usages, there are particular restrictions + like, \"must refer only to types A and B\" or \"UID not honored\" + or \"name must be restricted\". Those cannot be well described + when embedded. 3. Inconsistent validation. Because the usages + are different, the validation rules are different by usage, which + makes it hard for users to predict what will happen. 4. The fields + are both imprecise and overly precise. Kind is not a precise + mapping to a URL. This can produce ambiguity during interpretation + and require a REST mapping. In most cases, the dependency is + on the group,resource tuple and the version of the actual struct + is irrelevant. 5. We cannot easily change it. Because this type + is embedded in many locations, updates to this type will affect + numerous schemas. Don't make new APIs embed an underspecified + API type they do not control. \n Instead of using this type, create + a locally provided and used type that is well-focused on your + reference. For example, ServiceReferences for admission registration: + https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 + ." + 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. TODO: this design is not final and this field is + subject to change in the future.' + 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 + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/bundle/manifests/opendatahub-operator.clusterserviceversion.yaml b/bundle/manifests/opendatahub-operator.clusterserviceversion.yaml index e848b9a96f7..e4195471a7b 100644 --- a/bundle/manifests/opendatahub-operator.clusterserviceversion.yaml +++ b/bundle/manifests/opendatahub-operator.clusterserviceversion.yaml @@ -4,6 +4,21 @@ metadata: annotations: alm-examples: |- [ + { + "apiVersion": "datasciencecluster.opendatahub.io/v1alpha1", + "kind": "DataScienceCluster", + "metadata": { + "labels": { + "app.kubernetes.io/created-by": "opendatahub-operator", + "app.kubernetes.io/instance": "datasciencecluster-sample", + "app.kubernetes.io/managed-by": "kustomize", + "app.kubernetes.io/name": "datasciencecluster", + "app.kubernetes.io/part-of": "opendatahub-operator" + }, + "name": "datasciencecluster-sample" + }, + "spec": null + }, { "apiVersion": "dscinitialization.opendatahub.io/v1alpha1", "kind": "DSCInitialization", @@ -29,11 +44,28 @@ spec: apiservicedefinitions: {} customresourcedefinitions: owned: + - description: DataScienceCluster is the Schema for the datascienceclusters API + displayName: Data Science Cluster + kind: DataScienceCluster + name: datascienceclusters.datasciencecluster.opendatahub.io + version: v1alpha1 - description: DSCInitialization is the Schema for the dscinitializations API displayName: DSC Initialization kind: DSCInitialization name: dscinitializations.dscinitialization.opendatahub.io version: v1alpha1 + - kind: OdhApplication + name: odhapplications.dashboard.opendatahub.io + version: v1 + - kind: OdhDashboardConfig + name: odhdashboardconfigs.opendatahub.io + version: v1alpha + - kind: OdhDocument + name: odhdocuments.dashboard.opendatahub.io + version: v1 + - kind: OdhQuickStart + name: odhquickstarts.console.openshift.io + version: v1 description: Primary operator provided by ODH to enable Data Science components displayName: Open Data Hub Operator icon: @@ -71,6 +103,32 @@ spec: verbs: - get - list + - apiGroups: + - datasciencecluster.opendatahub.io + resources: + - datascienceclusters + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - datasciencecluster.opendatahub.io + resources: + - datascienceclusters/finalizers + verbs: + - update + - apiGroups: + - datasciencecluster.opendatahub.io + resources: + - datascienceclusters/status + verbs: + - get + - patch + - update - apiGroups: - dscinitialization.opendatahub.io resources: @@ -182,7 +240,7 @@ spec: - --leader-elect command: - /manager - image: quay.io/vhire/opendatahub-operator:dev-0.0.1 + image: registry.jharmison.com/library/opendatahub-operator:dev imagePullPolicy: Always livenessProbe: httpGet: diff --git a/bundle/manifests/opendatahub.io_odhdashboardconfigs.yaml b/bundle/manifests/opendatahub.io_odhdashboardconfigs.yaml new file mode 100644 index 00000000000..42abfac7c1b --- /dev/null +++ b/bundle/manifests/opendatahub.io_odhdashboardconfigs.yaml @@ -0,0 +1,172 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: odhdashboardconfigs.opendatahub.io +spec: + group: opendatahub.io + names: + kind: OdhDashboardConfig + plural: odhdashboardconfigs + singular: odhdashboardconfig + scope: Namespaced + versions: + - name: v1alpha + schema: + openAPIV3Schema: + properties: + spec: + properties: + dashboardConfig: + properties: + disableBYONImageStream: + type: boolean + disableClusterManager: + type: boolean + disableCustomServingRuntimes: + type: boolean + disableISVBadges: + type: boolean + disableInfo: + type: boolean + disableModelServing: + type: boolean + disablePipelines: + type: boolean + disableProjectSharing: + type: boolean + disableProjects: + type: boolean + disableSupport: + type: boolean + disableTracking: + type: boolean + disableUserManagement: + type: boolean + enablement: + type: boolean + modelMetricsNamespace: + type: string + type: object + groupsConfig: + properties: + adminGroups: + type: string + allowedGroups: + type: string + required: + - adminGroups + - allowedGroups + type: object + modelServerSizes: + items: + properties: + name: + type: string + resources: + properties: + limits: + properties: + cpu: + type: string + memory: + type: string + type: object + requests: + properties: + cpu: + type: string + memory: + type: string + type: object + type: object + required: + - name + - resources + type: object + type: array + notebookController: + properties: + enabled: + type: boolean + gpuSetting: + description: Configure how the GPU field works on the Jupyter + tile. One of 'autodetect' (default, fetches for information), + 'hidden' (remove the field) or a number-string (eg '5') to specify + a hardcoded 0 to that number options + type: string + notebookNamespace: + type: string + notebookTolerationSettings: + properties: + enabled: + type: boolean + key: + type: string + type: object + pvcSize: + type: string + storageClassName: + type: string + required: + - enabled + type: object + notebookSizes: + items: + properties: + name: + type: string + resources: + properties: + limits: + properties: + cpu: + type: string + memory: + type: string + type: object + requests: + properties: + cpu: + type: string + memory: + type: string + type: object + type: object + required: + - name + - resources + type: object + type: array + templateOrder: + items: + type: string + type: array + type: object + status: + properties: + notebookControllerState: + items: + properties: + lastActivity: + type: number + lastSelectedImage: + type: string + lastSelectedSize: + type: string + user: + type: string + type: object + type: array + type: object + required: + - spec + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/config/crd/bases/datasciencecluster.opendatahub.io_datascienceclusters.yaml b/config/crd/bases/datasciencecluster.opendatahub.io_datascienceclusters.yaml index f5e0521543c..52933b00a87 100644 --- a/config/crd/bases/datasciencecluster.opendatahub.io_datascienceclusters.yaml +++ b/config/crd/bases/datasciencecluster.opendatahub.io_datascienceclusters.yaml @@ -178,7 +178,7 @@ spec: 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 + description: "ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields @@ -186,10 +186,10 @@ spec: and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions - like, "must refer only to types A and B" or "UID not honored" - or "name must be restricted". Those cannot be well described when - embedded. 3. Inconsistent validation. Because the usages are - different, the validation rules are different by usage, which + like, \"must refer only to types A and B\" or \"UID not honored\" + or \"name must be restricted\". Those cannot be well described + when embedded. 3. Inconsistent validation. Because the usages + are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation @@ -197,12 +197,12 @@ spec: on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect - numerous schemas. Don''t make new APIs embed an underspecified - API type they do not control. Instead of using this type, create + numerous schemas. Don't make new APIs embed an underspecified + API type they do not control. \n Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 - .' + ." properties: apiVersion: description: API version of the referent. diff --git a/config/crd/bases/odhapplications.dashboard.opendatahub.io_odhapplications.yaml b/config/crd/bases/odhapplications.dashboard.opendatahub.io_odhapplications.yaml new file mode 100644 index 00000000000..69cf43d3d62 --- /dev/null +++ b/config/crd/bases/odhapplications.dashboard.opendatahub.io_odhapplications.yaml @@ -0,0 +1,168 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + name: odhapplications.dashboard.opendatahub.io + labels: + opendatahub.io/dashboardcrd: "true" +spec: + group: dashboard.opendatahub.io + names: + kind: OdhApplication + listKind: OdhApplicationList + plural: odhapplications + singular: odhapplication + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: OdhApplication is the Schema for the odhapplications + 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: OdhApplicationSpec defines the desired state of OdhApplication + properties: + beta: + type: boolean + betaText: + type: string + betaTitle: + type: string + category: + type: string + comingSoon: + type: boolean + consoleLink: + type: string + csvName: + type: string + description: + type: string + displayName: + type: string + docsLink: + type: string + enable: + properties: + actionLabel: + type: string + description: + type: string + link: + type: string + linkPreface: + type: string + title: + type: string + validationConfigMap: + type: string + validationJob: + type: string + validationSecret: + type: string + variableDisplayText: + additionalProperties: + type: string + type: object + variableHelpText: + additionalProperties: + type: string + type: object + variables: + additionalProperties: + type: string + type: object + type: object + enableCR: + properties: + field: + type: string + group: + type: string + name: + type: string + namespace: + type: string + plural: + type: string + value: + type: string + version: + type: string + type: object + endpoint: + type: string + featureFlag: + type: string + getStartedLink: + type: string + getStartedMarkDown: + type: string + img: + type: string + isEnabled: + type: boolean + kfdefApplications: + items: + type: string + type: array + link: + type: string + provider: + type: string + quickStart: + type: string + internalRoute: + type: string + route: + type: string + routeNamespace: + type: string + routeSuffix: + type: string + serviceName: + type: string + support: + type: string + required: + - description + - displayName + - docsLink + - getStartedLink + - getStartedMarkDown + - img + - provider + - support + type: object + status: + description: OdhApplicationStatus defines the observed state of OdhApplication + properties: + enabled: + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/config/crd/bases/odhdashboardconfigs.opendatahub.io_odhdashboardconfigs.yaml b/config/crd/bases/odhdashboardconfigs.opendatahub.io_odhdashboardconfigs.yaml new file mode 100644 index 00000000000..d284b65f78a --- /dev/null +++ b/config/crd/bases/odhdashboardconfigs.opendatahub.io_odhdashboardconfigs.yaml @@ -0,0 +1,162 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: odhdashboardconfigs.opendatahub.io +spec: + group: opendatahub.io + scope: Namespaced + names: + plural: odhdashboardconfigs + singular: odhdashboardconfig + kind: OdhDashboardConfig + versions: + - name: v1alpha + served: true + storage: true + schema: + openAPIV3Schema: + type: object + required: + - spec + properties: + spec: + type: object + properties: + dashboardConfig: + type: object + properties: + enablement: + type: boolean + disableInfo: + type: boolean + disableSupport: + type: boolean + disableClusterManager: + type: boolean + disableTracking: + type: boolean + disableBYONImageStream: + type: boolean + disableISVBadges: + type: boolean + disableUserManagement: + type: boolean + disableProjects: + type: boolean + disableModelServing: + type: boolean + disableProjectSharing: + type: boolean + disableCustomServingRuntimes: + type: boolean + modelMetricsNamespace: + type: string + disablePipelines: + type: boolean + groupsConfig: + type: object + required: + - adminGroups + - allowedGroups + properties: + adminGroups: + type: string + allowedGroups: + type: string + notebookSizes: + type: array + items: + type: object + required: + - name + - resources + properties: + name: + type: string + resources: + type: object + properties: + requests: + type: object + properties: + cpu: + type: string + memory: + type: string + limits: + type: object + properties: + cpu: + type: string + memory: + type: string + modelServerSizes: + type: array + items: + type: object + required: + - name + - resources + properties: + name: + type: string + resources: + type: object + properties: + requests: + type: object + properties: + cpu: + type: string + memory: + type: string + limits: + type: object + properties: + cpu: + type: string + memory: + type: string + notebookController: + type: object + required: + - enabled + properties: + enabled: + type: boolean + notebookNamespace: + type: string + pvcSize: + type: string + gpuSetting: + description: Configure how the GPU field works on the Jupyter tile. One of 'autodetect' (default, fetches for information), 'hidden' (remove the field) or a number-string (eg '5') to specify a hardcoded 0 to that number options + type: string + notebookTolerationSettings: + type: object + properties: + enabled: + type: boolean + key: + type: string + storageClassName: + type: string + templateOrder: + type: array + items: + type: string + status: + type: object + properties: + notebookControllerState: + type: array + items: + type: object + properties: + user: + type: string + lastSelectedImage: + type: string + lastSelectedSize: + type: string + lastActivity: + type: number diff --git a/config/crd/bases/odhdocuments.dashboard.opendatahub.io_odhdocuments.yaml b/config/crd/bases/odhdocuments.dashboard.opendatahub.io_odhdocuments.yaml new file mode 100644 index 00000000000..c8b34e75af8 --- /dev/null +++ b/config/crd/bases/odhdocuments.dashboard.opendatahub.io_odhdocuments.yaml @@ -0,0 +1,83 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + name: odhdocuments.dashboard.opendatahub.io + labels: + opendatahub.io/dashboardcrd: "true" +spec: + group: dashboard.opendatahub.io + names: + kind: OdhDocument + listKind: OdhDocumentList + plural: odhdocuments + singular: odhdocument + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: OdhDocument is the Schema for the odhdocuments + 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: OdhDocumentSpec defines the desired state of OdhDocument + properties: + appName: + type: string + description: + type: string + displayName: + type: string + durationMinutes: + type: integer + featureFlag: + type: string + icon: + type: string + img: + type: string + provider: + type: string + type: + type: string + url: + type: string + required: + - description + - displayName + - durationMinutes + - type + - url + type: object + status: + description: OdhDocumentStatus defines the observed state of OdhDocument + properties: + enabled: + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/config/crd/bases/odhquickstarts.console.openshift.io_odhquickstarts.yaml b/config/crd/bases/odhquickstarts.console.openshift.io_odhquickstarts.yaml new file mode 100644 index 00000000000..405266950b2 --- /dev/null +++ b/config/crd/bases/odhquickstarts.console.openshift.io_odhquickstarts.yaml @@ -0,0 +1,208 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: odhquickstarts.console.openshift.io + labels: + opendatahub.io/dashboardcrd: "true" + annotations: + description: Extension for guiding user through various workflows in the Red Hat + OpenShift Data Science dashboard. + displayName: OdhQuickStart + include.release.openshift.io/ibm-cloud-managed: "true" + include.release.openshift.io/self-managed-high-availability: "true" + include.release.openshift.io/single-node-developer: "true" +spec: + scope: Namespaced + group: console.openshift.io + names: + plural: odhquickstarts + singular: odhquickstart + kind: OdhQuickStart + listKind: OdhQuickStartList + versions: + - name: v1 + served: true + storage: true + schema: + openAPIV3Schema: + description: OdhQuickStart is an extension for guiding user through various + workflows in the Red Hat OpenShift Data Science dashboard. + type: object + required: + - spec + 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: OdhQuickStartSpec is the desired quick start configuration. + type: object + required: + - description + - displayName + - durationMinutes + - introduction + - tasks + properties: + accessReviewResources: + description: accessReviewResources contains a list of resources that + the user's access will be reviewed against in order for the user + to complete the Quick Start. The Quick Start will be hidden if any + of the access reviews fail. + type: array + items: + description: ResourceAttributes includes the authorization attributes + available for resource requests to the Authorizer interface + type: object + properties: + group: + description: Group is the API Group of the Resource. "*" means + all. + type: string + name: + description: Name is the name of the resource being requested + for a "get" or deleted for a "delete". "" (empty) means all. + type: string + namespace: + description: Namespace is the namespace of the action being + requested. Currently, there is no distinction between no + namespace and all namespaces "" (empty) is defaulted for LocalSubjectAccessReviews + "" (empty) is empty for cluster-scoped resources "" (empty) + means "all" for namespace scoped resources from a SubjectAccessReview + or SelfSubjectAccessReview + type: string + resource: + description: Resource is one of the existing resource types. "*" + means all. + type: string + subresource: + description: Subresource is one of the existing resource types. "" + means none. + type: string + verb: + description: 'Verb is a kubernetes resource API verb, like: + get, list, watch, create, update, delete, proxy. "*" means + all.' + type: string + version: + description: Version is the API Version of the Resource. "*" + means all. + type: string + appName: + description: the name/id of the odh application the quick start pertains to + type: string + conclusion: + description: conclusion sums up the Quick Start and suggests the possible + next steps. (includes markdown) + type: string + description: + description: description is the description of the Quick Start. (includes + markdown) + type: string + maxLength: 256 + minLength: 1 + displayName: + description: displayName is the display name of the Quick Start. + type: string + minLength: 1 + durationMinutes: + description: durationMinutes describes approximately how many minutes + it will take to complete the Quick Start. + type: integer + minimum: 1 + icon: + description: icon is a base64 encoded image that will be displayed + beside the Quick Start display name. The icon should be an vector + image for easy scaling. The size of the icon should be 40x40. + type: string + introduction: + description: introduction describes the purpose of the Quick Start. + (includes markdown) + type: string + minLength: 1 + nextQuickStart: + description: nextQuickStart is a list of the following Quick Starts, + suggested for the user to try. + type: array + items: + type: string + prerequisites: + description: prerequisites contains all prerequisites that need to + be met before taking a Quick Start. (includes markdown) + type: array + items: + type: string + tags: + description: tags is a list of strings that describe the Quick Start. + type: array + items: + type: string + tasks: + description: tasks is the list of steps the user has to perform to + complete the Quick Start. + type: array + minItems: 1 + items: + description: OdhQuickStartTask is a single step in a Quick Start. + type: object + required: + - description + - title + properties: + description: + description: description describes the steps needed to complete + the task. (includes markdown) + type: string + minLength: 1 + review: + description: review contains instructions to validate the task + is complete. The user will select 'Yes' or 'No'. using a radio + button, which indicates whether the step was completed successfully. + type: object + required: + - failedTaskHelp + - instructions + properties: + failedTaskHelp: + description: failedTaskHelp contains suggestions for a failed + task review and is shown at the end of task. (includes + markdown) + type: string + minLength: 1 + instructions: + description: instructions contains steps that user needs + to take in order to validate his work after going through + a task. (includes markdown) + type: string + minLength: 1 + summary: + description: summary contains information about the passed step. + type: object + required: + - failed + - success + properties: + failed: + description: failed briefly describes the unsuccessfully + passed task. (includes markdown) + type: string + maxLength: 128 + minLength: 1 + success: + description: success describes the succesfully passed task. + type: string + minLength: 1 + title: + description: title describes the task and is displayed as a + step heading. + type: string + minLength: 1 diff --git a/config/crd/kustomization.yaml b/config/crd/kustomization.yaml index 2d7e34f1ed1..a32ce17ef22 100644 --- a/config/crd/kustomization.yaml +++ b/config/crd/kustomization.yaml @@ -4,6 +4,10 @@ resources: - bases/dscinitialization.opendatahub.io_dscinitializations.yaml - bases/datasciencecluster.opendatahub.io_datascienceclusters.yaml +- bases/odhapplications.dashboard.opendatahub.io_odhapplications.yaml +- bases/odhdashboardconfigs.opendatahub.io_odhdashboardconfigs.yaml +- bases/odhdocuments.dashboard.opendatahub.io_odhdocuments.yaml +- bases/odhquickstarts.console.openshift.io_odhquickstarts.yaml #+kubebuilder:scaffold:crdkustomizeresource patchesStrategicMerge: diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml index 49dcbcb0932..a7d507e6194 100644 --- a/config/manager/kustomization.yaml +++ b/config/manager/kustomization.yaml @@ -12,5 +12,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization images: - name: controller - newName: quay.io/vhire/opendatahub-operator - newTag: dev-0.0.1 + newName: registry.jharmison.com/library/opendatahub-operator + newTag: dev diff --git a/config/manifests/bases/opendatahub-operator.clusterserviceversion.yaml b/config/manifests/bases/opendatahub-operator.clusterserviceversion.yaml index 6b1c4e78f84..29e29e15bae 100644 --- a/config/manifests/bases/opendatahub-operator.clusterserviceversion.yaml +++ b/config/manifests/bases/opendatahub-operator.clusterserviceversion.yaml @@ -10,6 +10,11 @@ spec: apiservicedefinitions: {} customresourcedefinitions: owned: + - description: DataScienceCluster is the Schema for the datascienceclusters API + displayName: Data Science Cluster + kind: DataScienceCluster + name: datascienceclusters.datasciencecluster.opendatahub.io + version: v1alpha1 - description: DSCInitialization is the Schema for the dscinitializations API displayName: DSC Initialization kind: DSCInitialization diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index 6dbd22f8a60..310f8ec5383 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -5,10 +5,108 @@ metadata: creationTimestamp: null name: manager-role rules: +- apiGroups: + - "" + resources: + - configmaps + - namespaces + - secrets + - serviceaccounts + - services + verbs: + - create + - get + - list + - patch + - update + - watch - apiGroups: - '*' resources: - '*' verbs: - '*' - +- apiGroups: + - addons.managed.openshift.io + resources: + - addons + verbs: + - get + - list +- apiGroups: + - datasciencecluster.opendatahub.io + resources: + - datascienceclusters + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datasciencecluster.opendatahub.io + resources: + - datascienceclusters/finalizers + verbs: + - update +- apiGroups: + - datasciencecluster.opendatahub.io + resources: + - datascienceclusters/status + verbs: + - get + - patch + - update +- apiGroups: + - dscinitialization.opendatahub.io + resources: + - dscinitializations + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - dscinitialization.opendatahub.io + resources: + - dscinitializations/finalizers + verbs: + - update +- apiGroups: + - dscinitialization.opendatahub.io + resources: + - dscinitializations/status + verbs: + - get + - patch + - update +- apiGroups: + - networking.k8s.io + resources: + - networkpolicies + verbs: + - create + - get + - list + - patch + - update + - watch +- apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + - clusterroles + - rolebindings + - roles + verbs: + - create + - get + - list + - patch + - update + - watch