diff --git a/apis/components/v1/datasciencepipelines_types.go b/apis/components/v1/datasciencepipelines_types.go index a490c35fe3f..51e76815d31 100644 --- a/apis/components/v1/datasciencepipelines_types.go +++ b/apis/components/v1/datasciencepipelines_types.go @@ -21,26 +21,17 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! -// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. - -// DataSciencePipelinesSpec defines the desired state of DataSciencePipelines -type DataSciencePipelinesSpec struct { - // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster - // Important: Run "make" to regenerate code after modifying this file - - // Foo is an example field of DataSciencePipelines. Edit datasciencepipelines_types.go to remove/update - Foo string `json:"foo,omitempty"` -} - -// DataSciencePipelinesStatus defines the observed state of DataSciencePipelines -type DataSciencePipelinesStatus struct { - components.Status `json:",inline"` -} +const ( + DataSciencePipelinesComponentName = "datasciencepipelines" + // value should match whats set in the XValidation below + DataSciencePipelinesInstanceName = "default-datasciencepipelines" + DataSciencePipelinesKind = "DataSciencePipelines" +) // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:resource:scope=Cluster +// +kubebuilder:validation:XValidation:rule="self.metadata.name == 'default-datasciencepipelines'",message="DataSciencePipelines name must be default-datasciencepipelines" // DataSciencePipelines is the Schema for the datasciencepipelines API type DataSciencePipelines struct { @@ -51,6 +42,20 @@ type DataSciencePipelines struct { Status DataSciencePipelinesStatus `json:"status,omitempty"` } +// DataSciencePipelinesSpec defines the desired state of DataSciencePipelines +type DataSciencePipelinesSpec struct { + DataSciencePipelinesCommonSpec `json:",inline"` +} + +type DataSciencePipelinesCommonSpec struct { + components.DevFlagsSpec `json:",inline"` +} + +// DataSciencePipelinesStatus defines the observed state of DataSciencePipelines +type DataSciencePipelinesStatus struct { + components.Status `json:",inline"` +} + func (c *DataSciencePipelines) GetDevFlags() *components.DevFlags { return nil } @@ -71,3 +76,11 @@ type DataSciencePipelinesList struct { func init() { SchemeBuilder.Register(&DataSciencePipelines{}, &DataSciencePipelinesList{}) } + +// DSCDataSciencePipelines contains all the configuration exposed in DSC instance for DataSciencePipelines component +type DSCDataSciencePipelines struct { + // configuration fields common across components + components.ManagementSpec `json:",inline"` + // datasciencepipelines specific field + DataSciencePipelinesCommonSpec `json:",inline"` +} diff --git a/apis/components/v1/zz_generated.deepcopy.go b/apis/components/v1/zz_generated.deepcopy.go index f9264ae5659..c437b22259c 100644 --- a/apis/components/v1/zz_generated.deepcopy.go +++ b/apis/components/v1/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. @@ -131,6 +132,23 @@ func (in *DSCDashboard) DeepCopy() *DSCDashboard { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DSCDataSciencePipelines) DeepCopyInto(out *DSCDataSciencePipelines) { + *out = *in + out.ManagementSpec = in.ManagementSpec + in.DataSciencePipelinesCommonSpec.DeepCopyInto(&out.DataSciencePipelinesCommonSpec) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DSCDataSciencePipelines. +func (in *DSCDataSciencePipelines) DeepCopy() *DSCDataSciencePipelines { + if in == nil { + return nil + } + out := new(DSCDataSciencePipelines) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DSCRay) DeepCopyInto(out *DSCRay) { *out = *in @@ -260,7 +278,7 @@ func (in *DataSciencePipelines) DeepCopyInto(out *DataSciencePipelines) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec + in.Spec.DeepCopyInto(&out.Spec) in.Status.DeepCopyInto(&out.Status) } @@ -282,6 +300,22 @@ func (in *DataSciencePipelines) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataSciencePipelinesCommonSpec) DeepCopyInto(out *DataSciencePipelinesCommonSpec) { + *out = *in + in.DevFlagsSpec.DeepCopyInto(&out.DevFlagsSpec) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataSciencePipelinesCommonSpec. +func (in *DataSciencePipelinesCommonSpec) DeepCopy() *DataSciencePipelinesCommonSpec { + if in == nil { + return nil + } + out := new(DataSciencePipelinesCommonSpec) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DataSciencePipelinesList) DeepCopyInto(out *DataSciencePipelinesList) { *out = *in @@ -317,6 +351,7 @@ func (in *DataSciencePipelinesList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DataSciencePipelinesSpec) DeepCopyInto(out *DataSciencePipelinesSpec) { *out = *in + in.DataSciencePipelinesCommonSpec.DeepCopyInto(&out.DataSciencePipelinesCommonSpec) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataSciencePipelinesSpec. diff --git a/apis/components/zz_generated.deepcopy.go b/apis/components/zz_generated.deepcopy.go index 3164b3e0729..bf441fc4013 100644 --- a/apis/components/zz_generated.deepcopy.go +++ b/apis/components/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/apis/datasciencecluster/v1/datasciencecluster_types.go b/apis/datasciencecluster/v1/datasciencecluster_types.go index 0cac0fd8a9a..84dea96deca 100644 --- a/apis/datasciencecluster/v1/datasciencecluster_types.go +++ b/apis/datasciencecluster/v1/datasciencecluster_types.go @@ -27,7 +27,6 @@ import ( componentsv1 "github.com/opendatahub-io/opendatahub-operator/v2/apis/components/v1" "github.com/opendatahub-io/opendatahub-operator/v2/components" "github.com/opendatahub-io/opendatahub-operator/v2/components/codeflare" - "github.com/opendatahub-io/opendatahub-operator/v2/components/datasciencepipelines" "github.com/opendatahub-io/opendatahub-operator/v2/components/kserve" "github.com/opendatahub-io/opendatahub-operator/v2/components/kueue" "github.com/opendatahub-io/opendatahub-operator/v2/components/modelmeshserving" @@ -59,7 +58,7 @@ type Components struct { // DataServicePipeline component configuration. // Require OpenShift Pipelines Operator to be installed before enable component - DataSciencePipelines datasciencepipelines.DataSciencePipelines `json:"datasciencepipelines,omitempty"` + DataSciencePipelines componentsv1.DSCDataSciencePipelines `json:"datasciencepipelines,omitempty"` // Kserve component configuration. // Require OpenShift Serverless and OpenShift Service Mesh Operators to be installed before enable component diff --git a/apis/datasciencecluster/v1/zz_generated.deepcopy.go b/apis/datasciencecluster/v1/zz_generated.deepcopy.go index f089d70e9ee..a73dcc0f24e 100644 --- a/apis/datasciencecluster/v1/zz_generated.deepcopy.go +++ b/apis/datasciencecluster/v1/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/apis/dscinitialization/v1/zz_generated.deepcopy.go b/apis/dscinitialization/v1/zz_generated.deepcopy.go index 4f9bb201778..bb8d3139e7e 100644 --- a/apis/dscinitialization/v1/zz_generated.deepcopy.go +++ b/apis/dscinitialization/v1/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/apis/features/v1/zz_generated.deepcopy.go b/apis/features/v1/zz_generated.deepcopy.go index 6da1067b623..1b62f0ce915 100644 --- a/apis/features/v1/zz_generated.deepcopy.go +++ b/apis/features/v1/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/apis/infrastructure/v1/zz_generated.deepcopy.go b/apis/infrastructure/v1/zz_generated.deepcopy.go index e0bf63ff9c9..3c0cae523fd 100644 --- a/apis/infrastructure/v1/zz_generated.deepcopy.go +++ b/apis/infrastructure/v1/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/components/codeflare/zz_generated.deepcopy.go b/components/codeflare/zz_generated.deepcopy.go index f761b2dbbd5..2de3746fcd8 100644 --- a/components/codeflare/zz_generated.deepcopy.go +++ b/components/codeflare/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/components/datasciencepipelines/zz_generated.deepcopy.go b/components/datasciencepipelines/zz_generated.deepcopy.go index 11c4e758555..83d66b16af5 100644 --- a/components/datasciencepipelines/zz_generated.deepcopy.go +++ b/components/datasciencepipelines/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/components/kserve/zz_generated.deepcopy.go b/components/kserve/zz_generated.deepcopy.go index da6e99960b7..0f22d6fb461 100644 --- a/components/kserve/zz_generated.deepcopy.go +++ b/components/kserve/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/components/kueue/zz_generated.deepcopy.go b/components/kueue/zz_generated.deepcopy.go index 9ab2279f9bf..2acbd510ffa 100644 --- a/components/kueue/zz_generated.deepcopy.go +++ b/components/kueue/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/components/modelmeshserving/zz_generated.deepcopy.go b/components/modelmeshserving/zz_generated.deepcopy.go index fee91980836..6dac684c861 100644 --- a/components/modelmeshserving/zz_generated.deepcopy.go +++ b/components/modelmeshserving/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/components/modelregistry/zz_generated.deepcopy.go b/components/modelregistry/zz_generated.deepcopy.go index 86c4a17e14c..3ed241dd7f1 100644 --- a/components/modelregistry/zz_generated.deepcopy.go +++ b/components/modelregistry/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/components/trainingoperator/zz_generated.deepcopy.go b/components/trainingoperator/zz_generated.deepcopy.go index 57245a95044..994a849c318 100644 --- a/components/trainingoperator/zz_generated.deepcopy.go +++ b/components/trainingoperator/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/components/trustyai/zz_generated.deepcopy.go b/components/trustyai/zz_generated.deepcopy.go index 98dab130477..22617c11860 100644 --- a/components/trustyai/zz_generated.deepcopy.go +++ b/components/trustyai/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/components/workbenches/zz_generated.deepcopy.go b/components/workbenches/zz_generated.deepcopy.go index 61045d7db98..04de9307fe2 100644 --- a/components/workbenches/zz_generated.deepcopy.go +++ b/components/workbenches/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/components/zz_generated.deepcopy.go b/components/zz_generated.deepcopy.go index 245aa470b3b..0d6a310a74f 100644 --- a/components/zz_generated.deepcopy.go +++ b/components/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/config/crd/bases/components.opendatahub.io_codeflares.yaml b/config/crd/bases/components.opendatahub.io_codeflares.yaml index 5dd73ac04c8..2edbdfbaeb4 100644 --- a/config/crd/bases/components.opendatahub.io_codeflares.yaml +++ b/config/crd/bases/components.opendatahub.io_codeflares.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: codeflares.components.opendatahub.io spec: group: components.opendatahub.io @@ -20,19 +21,14 @@ spec: description: CodeFlare is the Schema for the codeflares 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 + 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 + 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 @@ -49,35 +45,43 @@ spec: properties: conditions: items: - description: Condition contains details for one aspect of the current - state of this API Resource. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: 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. + 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. - This may be an empty string. + description: message is a human readable message indicating + details about the transition. This may be an empty string. maxLength: 32768 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. + 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. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -92,6 +96,10 @@ spec: type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 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 diff --git a/config/crd/bases/components.opendatahub.io_dashboards.yaml b/config/crd/bases/components.opendatahub.io_dashboards.yaml index 89a27b606b1..d6375c77b6e 100644 --- a/config/crd/bases/components.opendatahub.io_dashboards.yaml +++ b/config/crd/bases/components.opendatahub.io_dashboards.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: dashboards.components.opendatahub.io spec: group: components.opendatahub.io @@ -33,19 +34,14 @@ spec: description: Dashboard is the Schema for the dashboards 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 + 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 + 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 @@ -84,35 +80,43 @@ spec: properties: conditions: items: - description: Condition contains details for one aspect of the current - state of this API Resource. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: 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. + 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. - This may be an empty string. + description: message is a human readable message indicating + details about the transition. This may be an empty string. maxLength: 32768 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. + 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. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -127,6 +131,10 @@ spec: type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 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 diff --git a/config/crd/bases/components.opendatahub.io_datasciencepipelines.yaml b/config/crd/bases/components.opendatahub.io_datasciencepipelines.yaml index 8783503a55f..91de243cdc0 100644 --- a/config/crd/bases/components.opendatahub.io_datasciencepipelines.yaml +++ b/config/crd/bases/components.opendatahub.io_datasciencepipelines.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: datasciencepipelines.components.opendatahub.io spec: group: components.opendatahub.io @@ -21,29 +22,46 @@ spec: 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 + 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 + 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: DataSciencePipelinesSpec defines the desired state of DataSciencePipelines properties: - foo: - description: Foo is an example field of DataSciencePipelines. Edit - datasciencepipelines_types.go to remove/update - 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 type: object status: description: DataSciencePipelinesStatus defines the observed state of @@ -51,35 +69,43 @@ spec: properties: conditions: items: - description: Condition contains details for one aspect of the current - state of this API Resource. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: 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. + 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. - This may be an empty string. + description: message is a human readable message indicating + details about the transition. This may be an empty string. maxLength: 32768 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. + 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. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -94,6 +120,10 @@ spec: type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 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 @@ -112,6 +142,9 @@ spec: type: string type: object type: object + x-kubernetes-validations: + - message: DataSciencePipelines name must be default-datasciencepipelines + rule: self.metadata.name == 'default-datasciencepipelines' served: true storage: true subresources: diff --git a/config/crd/bases/components.opendatahub.io_kserves.yaml b/config/crd/bases/components.opendatahub.io_kserves.yaml index e4772479834..3489406c2f6 100644 --- a/config/crd/bases/components.opendatahub.io_kserves.yaml +++ b/config/crd/bases/components.opendatahub.io_kserves.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: kserves.components.opendatahub.io spec: group: components.opendatahub.io @@ -20,19 +21,14 @@ spec: description: Kserve is the Schema for the kserves 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 + 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 + 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 @@ -49,35 +45,43 @@ spec: properties: conditions: items: - description: Condition contains details for one aspect of the current - state of this API Resource. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: 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. + 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. - This may be an empty string. + description: message is a human readable message indicating + details about the transition. This may be an empty string. maxLength: 32768 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. + 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. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -92,6 +96,10 @@ spec: type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 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 diff --git a/config/crd/bases/components.opendatahub.io_kueues.yaml b/config/crd/bases/components.opendatahub.io_kueues.yaml index 6822de59481..19cf1e3ec63 100644 --- a/config/crd/bases/components.opendatahub.io_kueues.yaml +++ b/config/crd/bases/components.opendatahub.io_kueues.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: kueues.components.opendatahub.io spec: group: components.opendatahub.io @@ -20,19 +21,14 @@ spec: description: Kueue is the Schema for the kueues 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 + 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 + 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 @@ -49,35 +45,43 @@ spec: properties: conditions: items: - description: Condition contains details for one aspect of the current - state of this API Resource. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: 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. + 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. - This may be an empty string. + description: message is a human readable message indicating + details about the transition. This may be an empty string. maxLength: 32768 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. + 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. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -92,6 +96,10 @@ spec: type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 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 diff --git a/config/crd/bases/components.opendatahub.io_modelmeshservings.yaml b/config/crd/bases/components.opendatahub.io_modelmeshservings.yaml index 32d346c00e0..202f963de85 100644 --- a/config/crd/bases/components.opendatahub.io_modelmeshservings.yaml +++ b/config/crd/bases/components.opendatahub.io_modelmeshservings.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: modelmeshservings.components.opendatahub.io spec: group: components.opendatahub.io @@ -20,19 +21,14 @@ spec: description: ModelMeshServing is the Schema for the modelmeshservings 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 + 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 + 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 @@ -49,35 +45,43 @@ spec: properties: conditions: items: - description: Condition contains details for one aspect of the current - state of this API Resource. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: 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. + 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. - This may be an empty string. + description: message is a human readable message indicating + details about the transition. This may be an empty string. maxLength: 32768 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. + 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. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -92,6 +96,10 @@ spec: type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 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 diff --git a/config/crd/bases/components.opendatahub.io_modelregistries.yaml b/config/crd/bases/components.opendatahub.io_modelregistries.yaml index b2ff3377b2b..8ebd688bec0 100644 --- a/config/crd/bases/components.opendatahub.io_modelregistries.yaml +++ b/config/crd/bases/components.opendatahub.io_modelregistries.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: modelregistries.components.opendatahub.io spec: group: components.opendatahub.io @@ -20,19 +21,14 @@ spec: description: ModelRegistry is the Schema for the modelregistries 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 + 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 + 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 @@ -49,35 +45,43 @@ spec: properties: conditions: items: - description: Condition contains details for one aspect of the current - state of this API Resource. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: 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. + 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. - This may be an empty string. + description: message is a human readable message indicating + details about the transition. This may be an empty string. maxLength: 32768 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. + 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. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -92,6 +96,10 @@ spec: type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 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 diff --git a/config/crd/bases/components.opendatahub.io_rays.yaml b/config/crd/bases/components.opendatahub.io_rays.yaml index 0928d74de8c..d104945e2b0 100644 --- a/config/crd/bases/components.opendatahub.io_rays.yaml +++ b/config/crd/bases/components.opendatahub.io_rays.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: rays.components.opendatahub.io spec: group: components.opendatahub.io @@ -29,19 +30,14 @@ spec: description: Ray is the Schema for the rays 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 + 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 + 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 @@ -80,35 +76,43 @@ spec: properties: conditions: items: - description: Condition contains details for one aspect of the current - state of this API Resource. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: 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. + 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. - This may be an empty string. + description: message is a human readable message indicating + details about the transition. This may be an empty string. maxLength: 32768 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. + 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. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -123,6 +127,10 @@ spec: type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 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 diff --git a/config/crd/bases/components.opendatahub.io_trainingoperators.yaml b/config/crd/bases/components.opendatahub.io_trainingoperators.yaml index 630a7ad0f16..9269ace54f4 100644 --- a/config/crd/bases/components.opendatahub.io_trainingoperators.yaml +++ b/config/crd/bases/components.opendatahub.io_trainingoperators.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: trainingoperators.components.opendatahub.io spec: group: components.opendatahub.io @@ -20,19 +21,14 @@ spec: description: TrainingOperator is the Schema for the trainingoperators 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 + 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 + 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 @@ -49,35 +45,43 @@ spec: properties: conditions: items: - description: Condition contains details for one aspect of the current - state of this API Resource. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: 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. + 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. - This may be an empty string. + description: message is a human readable message indicating + details about the transition. This may be an empty string. maxLength: 32768 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. + 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. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -92,6 +96,10 @@ spec: type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 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 diff --git a/config/crd/bases/components.opendatahub.io_trustyais.yaml b/config/crd/bases/components.opendatahub.io_trustyais.yaml index 583351ddab7..d080c76f595 100644 --- a/config/crd/bases/components.opendatahub.io_trustyais.yaml +++ b/config/crd/bases/components.opendatahub.io_trustyais.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: trustyais.components.opendatahub.io spec: group: components.opendatahub.io @@ -20,19 +21,14 @@ spec: description: TrustyAI is the Schema for the trustyais 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 + 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 + 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 @@ -49,35 +45,43 @@ spec: properties: conditions: items: - description: Condition contains details for one aspect of the current - state of this API Resource. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: 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. + 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. - This may be an empty string. + description: message is a human readable message indicating + details about the transition. This may be an empty string. maxLength: 32768 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. + 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. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -92,6 +96,10 @@ spec: type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 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 diff --git a/config/crd/bases/components.opendatahub.io_workbenches.yaml b/config/crd/bases/components.opendatahub.io_workbenches.yaml index d67204458a3..91f7303bd93 100644 --- a/config/crd/bases/components.opendatahub.io_workbenches.yaml +++ b/config/crd/bases/components.opendatahub.io_workbenches.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: workbenches.components.opendatahub.io spec: group: components.opendatahub.io @@ -20,19 +21,14 @@ spec: description: Workbenches is the Schema for the workbenches 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 + 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 + 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 @@ -49,35 +45,43 @@ spec: properties: conditions: items: - description: Condition contains details for one aspect of the current - state of this API Resource. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: 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. + 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. - This may be an empty string. + description: message is a human readable message indicating + details about the transition. This may be an empty string. maxLength: 32768 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. + 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. - Producers of specific condition types may define expected values and meanings for this field, - and whether the values are considered a guaranteed API. - The value should be a CamelCase string. + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -92,6 +96,10 @@ spec: type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 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 diff --git a/config/crd/bases/datasciencecluster.opendatahub.io_datascienceclusters.yaml b/config/crd/bases/datasciencecluster.opendatahub.io_datascienceclusters.yaml index 41d1c76d658..73dc774981e 100644 --- a/config/crd/bases/datasciencecluster.opendatahub.io_datascienceclusters.yaml +++ b/config/crd/bases/datasciencecluster.opendatahub.io_datascienceclusters.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: datascienceclusters.datasciencecluster.opendatahub.io spec: group: datasciencecluster.opendatahub.io @@ -23,19 +24,14 @@ spec: 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 + 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 + 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 @@ -46,9 +42,9 @@ spec: 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. + 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 @@ -79,14 +75,12 @@ spec: 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 + description: "Set to one of the following values: \n - \"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 \n - \"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 @@ -125,14 +119,12 @@ spec: 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 + description: "Set to one of the following values: \n - \"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 \n - \"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 @@ -140,9 +132,8 @@ spec: type: string type: object datasciencepipelines: - description: |- - DataServicePipeline component configuration. - Require OpenShift Pipelines Operator to be installed before enable component + description: DataServicePipeline component configuration. Require + OpenShift Pipelines Operator to be installed before enable component properties: devFlags: description: Add developer fields @@ -173,14 +164,12 @@ spec: 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 + description: "Set to one of the following values: \n - \"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 \n - \"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 @@ -188,16 +177,18 @@ spec: 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 + 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. + 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 @@ -232,47 +223,48 @@ spec: 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 + description: "Set to one of the following values: \n - \"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 \n - \"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. + 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. + 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. + 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. + 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 + 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 @@ -280,11 +272,12 @@ spec: 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. + 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: @@ -297,9 +290,9 @@ spec: 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. + 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 @@ -336,14 +329,12 @@ spec: 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 + description: "Set to one of the following values: \n - \"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 \n - \"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 @@ -351,9 +342,8 @@ spec: type: string type: object modelmeshserving: - description: |- - ModelMeshServing component configuration. - Does not support enabled Kserve at the same time + description: ModelMeshServing component configuration. Does not + support enabled Kserve at the same time properties: devFlags: description: Add developer fields @@ -384,14 +374,12 @@ spec: 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 + description: "Set to one of the following values: \n - \"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 \n - \"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 @@ -430,14 +418,12 @@ spec: 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 + description: "Set to one of the following values: \n - \"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 \n - \"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 @@ -490,14 +476,12 @@ spec: 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 + description: "Set to one of the following values: \n - \"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 \n - \"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 @@ -536,14 +520,12 @@ spec: 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 + description: "Set to one of the following values: \n - \"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 \n - \"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 @@ -582,14 +564,12 @@ spec: 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 + description: "Set to one of the following values: \n - \"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 \n - \"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 @@ -628,14 +608,12 @@ spec: 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 + description: "Set to one of the following values: \n - \"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 \n - \"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 @@ -661,9 +639,8 @@ spec: description: Conditions describes the state of the DataScienceCluster resource. items: - description: |- - Condition represents the state of the operator's - reconciliation functionality. + description: Condition represents the state of the operator's reconciliation + functionality. properties: lastHeartbeatTime: format: date-time @@ -694,55 +671,72 @@ spec: 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 + 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. + 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. + 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. + 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 + 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 + 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/ + 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 + 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 + 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 diff --git a/config/crd/bases/dscinitialization.opendatahub.io_dscinitializations.yaml b/config/crd/bases/dscinitialization.opendatahub.io_dscinitializations.yaml index dd381696bb1..b448da7acc0 100644 --- a/config/crd/bases/dscinitialization.opendatahub.io_dscinitializations.yaml +++ b/config/crd/bases/dscinitialization.opendatahub.io_dscinitializations.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: dscinitializations.dscinitialization.opendatahub.io spec: group: dscinitialization.opendatahub.io @@ -33,19 +34,14 @@ spec: description: DSCInitialization is the Schema for the dscinitializations 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 + 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 + 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 @@ -63,8 +59,7 @@ spec: - message: ApplicationsNamespace is immutable rule: self == oldSelf devFlags: - description: |- - Internal development useful field to test customizations. + description: Internal development useful field to test customizations. This is not recommended to be used in production environment. properties: logmode: @@ -84,12 +79,12 @@ spec: description: Enable monitoring on specified namespace 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. + 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 @@ -103,34 +98,33 @@ spec: type: string type: object serviceMesh: - description: |- - Configures Service Mesh as networking layer for Data Science Clusters components. - The Service Mesh is a mandatory prerequisite for single model serving (KServe) and - you should review this configuration if you are planning to use KServe. - For other components, it enhances user experience; e.g. it provides unified - authentication giving a Single Sign On experience. + description: Configures Service Mesh as networking layer for Data + Science Clusters components. The Service Mesh is a mandatory prerequisite + for single model serving (KServe) and you should review this configuration + if you are planning to use KServe. For other components, it enhances + user experience; e.g. it provides unified authentication giving + a Single Sign On experience. properties: auth: - description: |- - Auth holds configuration of authentication and authorization services - used by Service Mesh in Opendatahub. + description: Auth holds configuration of authentication and authorization + services used by Service Mesh in Opendatahub. properties: audiences: default: - https://kubernetes.default.svc - description: |- - Audiences is a list of the identifiers that the resource server presented - with the token identifies as. Audience-aware token authenticators will verify - that the token was intended for at least one of the audiences in this list. - If no audiences are provided, the audience will default to the audience of the - Kubernetes apiserver (kubernetes.default.svc). + description: Audiences is a list of the identifiers that the + resource server presented with the token identifies as. + Audience-aware token authenticators will verify that the + token was intended for at least one of the audiences in + this list. If no audiences are provided, the audience will + default to the audience of the Kubernetes apiserver (kubernetes.default.svc). items: type: string type: array namespace: - description: |- - Namespace where it is deployed. If not provided, the default is to - use '-auth-provider' suffix on the ApplicationsNamespace of the DSCI. + description: Namespace where it is deployed. If not provided, + the default is to use '-auth-provider' suffix on the ApplicationsNamespace + of the DSCI. maxLength: 63 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?)?$ type: string @@ -141,10 +135,10 @@ spec: properties: metricsCollection: default: Istio - description: |- - MetricsCollection specifies if metrics from components on the Mesh namespace - should be collected. Setting the value to "Istio" will collect metrics from the - control plane and any proxies on the Mesh namespace (like gateway pods). Setting + description: MetricsCollection specifies if metrics from components + on the Mesh namespace should be collected. Setting the value + to "Istio" will collect metrics from the control plane and + any proxies on the Mesh namespace (like gateway pods). Setting to "None" will disable metrics collection. enum: - Istio @@ -173,17 +167,17 @@ spec: type: string type: object trustedCABundle: - description: |- - When set to `Managed`, adds odh-trusted-ca-bundle Configmap to all namespaces that includes - cluster-wide Trusted CA Bundle in .data["ca-bundle.crt"]. - Additionally, this fields allows admins to add custom CA bundles to the configmap using the .CustomCABundle field. + description: When set to `Managed`, adds odh-trusted-ca-bundle Configmap + to all namespaces that includes cluster-wide Trusted CA Bundle in + .data["ca-bundle.crt"]. Additionally, this fields allows admins + to add custom CA bundles to the configmap using the .CustomCABundle + field. properties: customCABundle: default: "" - description: |- - A custom CA bundle that will be available for all components in the - Data Science Cluster(DSC). This bundle will be stored in odh-trusted-ca-bundle - ConfigMap .data.odh-ca-bundle.crt . + description: A custom CA bundle that will be available for all components + in the Data Science Cluster(DSC). This bundle will be stored + in odh-trusted-ca-bundle ConfigMap .data.odh-ca-bundle.crt . type: string managementState: default: Removed @@ -209,9 +203,8 @@ spec: description: Conditions describes the state of the DSCInitializationStatus resource items: - description: |- - Condition represents the state of the operator's - reconciliation functionality. + description: Condition represents the state of the operator's reconciliation + functionality. properties: lastHeartbeatTime: format: date-time @@ -237,55 +230,71 @@ spec: errorMessage: type: string phase: - description: |- - Phase describes the Phase of DSCInitializationStatus + description: Phase describes the Phase of DSCInitializationStatus 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 + 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. + 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. + 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 + 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 + 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/ + 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 + 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 + 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 diff --git a/config/crd/bases/features.opendatahub.io_featuretrackers.yaml b/config/crd/bases/features.opendatahub.io_featuretrackers.yaml index c0110c7f757..93c3eff33b5 100644 --- a/config/crd/bases/features.opendatahub.io_featuretrackers.yaml +++ b/config/crd/bases/features.opendatahub.io_featuretrackers.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: featuretrackers.features.opendatahub.io spec: group: features.opendatahub.io @@ -17,29 +18,24 @@ spec: - name: v1 schema: openAPIV3Schema: - description: |- - FeatureTracker represents a cluster-scoped resource in the Data Science Cluster, - specifically designed for monitoring and managing objects created via the internal Features API. - This resource serves a crucial role in cross-namespace resource management, acting as - an owner reference for various resources. The primary purpose of the FeatureTracker - is to enable efficient garbage collection by Kubernetes. This is essential for - ensuring that resources are automatically cleaned up and reclaimed when they are + description: FeatureTracker represents a cluster-scoped resource in the Data + Science Cluster, specifically designed for monitoring and managing objects + created via the internal Features API. This resource serves a crucial role + in cross-namespace resource management, acting as an owner reference for + various resources. The primary purpose of the FeatureTracker is to enable + efficient garbage collection by Kubernetes. This is essential for ensuring + that resources are automatically cleaned up and reclaimed when they are no longer required. 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 + 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 + 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 @@ -63,9 +59,8 @@ spec: properties: conditions: items: - description: |- - Condition represents the state of the operator's - reconciliation functionality. + description: Condition represents the state of the operator's reconciliation + functionality. properties: lastHeartbeatTime: format: date-time @@ -89,9 +84,9 @@ spec: type: object type: array phase: - description: |- - Phase describes the Phase of FeatureTracker reconciliation state. - This is used by OLM UI to provide status information to the user. + description: Phase describes the Phase of FeatureTracker reconciliation + state. This is used by OLM UI to provide status information to the + user. type: string type: object type: object diff --git a/config/crd/external/route.openshift.io_routes.yaml b/config/crd/external/route.openshift.io_routes.yaml index 61f3c3b0b9b..2a2f92b027f 100644 --- a/config/crd/external/route.openshift.io_routes.yaml +++ b/config/crd/external/route.openshift.io_routes.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: routes.route.openshift.io spec: group: route.openshift.io @@ -17,49 +18,38 @@ spec: - name: v1 schema: openAPIV3Schema: - description: |- - A route allows developers to expose services through an HTTP(S) aware load balancing and proxy - layer via a public DNS entry. The route may further specify TLS options and a certificate, or - specify a public CNAME that the router should also accept for HTTP and HTTPS traffic. An - administrator typically configures their router to be visible outside the cluster firewall, and - may also add additional security, caching, or traffic controls on the service content. Routers - usually talk directly to the service endpoints. - - Once a route is created, the `host` field may not be changed. Generally, routers use the oldest - route with a given host when resolving conflicts. - - Routers are subject to additional customization and may support additional controls via the - annotations field. - - Because administrators may configure multiple routers, the route status field is used to - return information to clients about the names and states of the route under each router. - If a client chooses a duplicate name, for instance, the route status conditions are used - to indicate the route cannot be chosen. - - To enable HTTP/2 ALPN on a route it requires a custom - (non-wildcard) certificate. This prevents connection coalescing by - clients, notably web browsers. We do not support HTTP/2 ALPN on - routes that use the default certificate because of the risk of - connection re-use/coalescing. Routes that do not have their own - custom certificate will not be HTTP/2 ALPN-enabled on either the - frontend or the backend. - - Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). + description: "A route allows developers to expose services through an HTTP(S) + aware load balancing and proxy layer via a public DNS entry. The route may + further specify TLS options and a certificate, or specify a public CNAME + that the router should also accept for HTTP and HTTPS traffic. An administrator + typically configures their router to be visible outside the cluster firewall, + and may also add additional security, caching, or traffic controls on the + service content. Routers usually talk directly to the service endpoints. + \n Once a route is created, the `host` field may not be changed. Generally, + routers use the oldest route with a given host when resolving conflicts. + \n Routers are subject to additional customization and may support additional + controls via the annotations field. \n Because administrators may configure + multiple routers, the route status field is used to return information to + clients about the names and states of the route under each router. If a + client chooses a duplicate name, for instance, the route status conditions + are used to indicate the route cannot be chosen. \n To enable HTTP/2 ALPN + on a route it requires a custom (non-wildcard) certificate. This prevents + connection coalescing by clients, notably web browsers. We do not support + HTTP/2 ALPN on routes that use the default certificate because of the risk + of connection re-use/coalescing. Routes that do not have their own custom + certificate will not be HTTP/2 ALPN-enabled on either the frontend or the + backend. \n Compatibility level 1: Stable within a major release for a minimum + of 12 months or 3 minor releases (whichever is longer)." 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 + 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 + 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 @@ -67,14 +57,14 @@ spec: description: spec is the desired state of the route properties: alternateBackends: - description: |- - alternateBackends allows up to 3 additional backends to be assigned to the route. - Only the Service kind is allowed, and it will be defaulted to Service. - Use the weight field in RouteTargetReference object to specify relative preference. + description: alternateBackends allows up to 3 additional backends + to be assigned to the route. Only the Service kind is allowed, and + it will be defaulted to Service. Use the weight field in RouteTargetReference + object to specify relative preference. items: - description: |- - RouteTargetReference specifies the target that resolve into endpoints. Only the 'Service' - kind is allowed. Use 'weight' field to emphasize one over others. + description: RouteTargetReference specifies the target that resolve + into endpoints. Only the 'Service' kind is allowed. Use 'weight' + field to emphasize one over others. properties: kind: default: Service @@ -91,9 +81,9 @@ spec: type: string weight: default: 100 - description: |- - weight as an integer between 0 and 256, default 100, that specifies the target's relative weight - against other target reference objects. 0 suppresses requests to this backend. + description: weight as an integer between 0 and 256, default + 100, that specifies the target's relative weight against other + target reference objects. 0 suppresses requests to this backend. format: int32 maximum: 256 minimum: 0 @@ -105,10 +95,8 @@ spec: maxItems: 3 type: array host: - description: |- - host is an alias/DNS that points to the service. Optional. - If not specified a route name will typically be automatically - chosen. + description: host is an alias/DNS that points to the service. Optional. + If not specified a route name will typically be automatically chosen. Must follow DNS952 subdomain conventions. maxLength: 253 pattern: ^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$ @@ -117,51 +105,55 @@ spec: description: httpHeaders defines policy for HTTP headers. properties: actions: - description: |- - actions specifies options for modifying headers and their values. - Note that this option only applies to cleartext HTTP connections - and to secure HTTP connections for which the ingress controller - terminates encryption (that is, edge-terminated or reencrypt - connections). Headers cannot be modified for TLS passthrough - connections. - Setting the HSTS (`Strict-Transport-Security`) header is not supported via actions. - `Strict-Transport-Security` may only be configured using the "haproxy.router.openshift.io/hsts_header" - route annotation, and only in accordance with the policy specified in Ingress.Spec.RequiredHSTSPolicies. - In case of HTTP request headers, the actions specified in spec.httpHeaders.actions on the Route will be executed after - the actions specified in the IngressController's spec.httpHeaders.actions field. - In case of HTTP response headers, the actions specified in spec.httpHeaders.actions on the IngressController will be - executed after the actions specified in the Route's spec.httpHeaders.actions field. - The headers set via this API will not appear in access logs. - Any actions defined here are applied after any actions related to the following other fields: - cache-control, spec.clientTLS, - spec.httpHeaders.forwardedHeaderPolicy, spec.httpHeaders.uniqueId, - and spec.httpHeaders.headerNameCaseAdjustments. - The following header names are reserved and may not be modified via this API: - Strict-Transport-Security, Proxy, Cookie, Set-Cookie. - Note that the total size of all net added headers *after* interpolating dynamic values - must not exceed the value of spec.tuningOptions.headerBufferMaxRewriteBytes on the - IngressController. Please refer to the documentation - for that API field for more details. + description: 'actions specifies options for modifying headers + and their values. Note that this option only applies to cleartext + HTTP connections and to secure HTTP connections for which the + ingress controller terminates encryption (that is, edge-terminated + or reencrypt connections). Headers cannot be modified for TLS + passthrough connections. Setting the HSTS (`Strict-Transport-Security`) + header is not supported via actions. `Strict-Transport-Security` + may only be configured using the "haproxy.router.openshift.io/hsts_header" + route annotation, and only in accordance with the policy specified + in Ingress.Spec.RequiredHSTSPolicies. In case of HTTP request + headers, the actions specified in spec.httpHeaders.actions on + the Route will be executed after the actions specified in the + IngressController''s spec.httpHeaders.actions field. In case + of HTTP response headers, the actions specified in spec.httpHeaders.actions + on the IngressController will be executed after the actions + specified in the Route''s spec.httpHeaders.actions field. The + headers set via this API will not appear in access logs. Any + actions defined here are applied after any actions related to + the following other fields: cache-control, spec.clientTLS, spec.httpHeaders.forwardedHeaderPolicy, + spec.httpHeaders.uniqueId, and spec.httpHeaders.headerNameCaseAdjustments. + The following header names are reserved and may not be modified + via this API: Strict-Transport-Security, Proxy, Cookie, Set-Cookie. + Note that the total size of all net added headers *after* interpolating + dynamic values must not exceed the value of spec.tuningOptions.headerBufferMaxRewriteBytes + on the IngressController. Please refer to the documentation + for that API field for more details.' properties: request: - description: |- - request is a list of HTTP request headers to modify. - Currently, actions may define to either `Set` or `Delete` headers values. - Actions defined here will modify the request headers of all requests made through a route. - These actions are applied to a specific Route defined within a cluster i.e. connections made through a route. - Currently, actions may define to either `Set` or `Delete` headers values. - Route actions will be executed after IngressController actions for request headers. - Actions are applied in sequence as defined in this list. - A maximum of 20 request header actions may be configured. - You can use this field to specify HTTP request headers that should be set or deleted - when forwarding connections from the client to your application. - Sample fetchers allowed are "req.hdr" and "ssl_c_der". - Converters allowed are "lower" and "base64". - Example header values: "%[req.hdr(X-target),lower]", "%{+Q}[ssl_c_der,base64]". - Any request header configuration applied directly via a Route resource using this API - will override header configuration for a header of the same name applied via - spec.httpHeaders.actions on the IngressController or route annotation. - Note: This field cannot be used if your route uses TLS passthrough. + description: 'request is a list of HTTP request headers to + modify. Currently, actions may define to either `Set` or + `Delete` headers values. Actions defined here will modify + the request headers of all requests made through a route. + These actions are applied to a specific Route defined within + a cluster i.e. connections made through a route. Currently, + actions may define to either `Set` or `Delete` headers values. + Route actions will be executed after IngressController actions + for request headers. Actions are applied in sequence as + defined in this list. A maximum of 20 request header actions + may be configured. You can use this field to specify HTTP + request headers that should be set or deleted when forwarding + connections from the client to your application. Sample + fetchers allowed are "req.hdr" and "ssl_c_der". Converters + allowed are "lower" and "base64". Example header values: + "%[req.hdr(X-target),lower]", "%{+Q}[ssl_c_der,base64]". + Any request header configuration applied directly via a + Route resource using this API will override header configuration + for a header of the same name applied via spec.httpHeaders.actions + on the IngressController or route annotation. Note: This + field cannot be used if your route uses TLS passthrough.' items: description: RouteHTTPHeader specifies configuration for setting or deleting an HTTP header. @@ -171,20 +163,25 @@ spec: headers, such as setting or deleting headers. properties: set: - description: |- - set defines the HTTP header that should be set: added if it doesn't exist or replaced if it does. - This field is required when type is Set and forbidden otherwise. + description: 'set defines the HTTP header that should + be set: added if it doesn''t exist or replaced + if it does. This field is required when type is + Set and forbidden otherwise.' properties: value: - description: |- - value specifies a header value. - Dynamic values can be added. The value will be interpreted as an HAProxy format string as defined in - http://cbonte.github.io/haproxy-dconv/2.6/configuration.html#8.2.6 and may use HAProxy's %[] syntax and - otherwise must be a valid HTTP header value as defined in https://datatracker.ietf.org/doc/html/rfc7230#section-3.2. - The value of this field must be no more than 16384 characters in length. - Note that the total size of all net added headers *after* interpolating dynamic values - must not exceed the value of spec.tuningOptions.headerBufferMaxRewriteBytes on the - IngressController. + description: value specifies a header value. + Dynamic values can be added. The value will + be interpreted as an HAProxy format string + as defined in http://cbonte.github.io/haproxy-dconv/2.6/configuration.html#8.2.6 + and may use HAProxy's %[] syntax and otherwise + must be a valid HTTP header value as defined + in https://datatracker.ietf.org/doc/html/rfc7230#section-3.2. + The value of this field must be no more than + 16384 characters in length. Note that the + total size of all net added headers *after* + interpolating dynamic values must not exceed + the value of spec.tuningOptions.headerBufferMaxRewriteBytes + on the IngressController. maxLength: 16384 minLength: 1 type: string @@ -192,11 +189,11 @@ spec: - value type: object type: - description: |- - type defines the type of the action to be applied on the header. - Possible values are Set or Delete. - Set allows you to set HTTP request and response headers. - Delete allows you to delete HTTP request and response headers. + description: type defines the type of the action + to be applied on the header. Possible values are + Set or Delete. Set allows you to set HTTP request + and response headers. Delete allows you to delete + HTTP request and response headers. enum: - Set - Delete @@ -210,14 +207,15 @@ spec: rule: 'has(self.type) && self.type == ''Set'' ? has(self.set) : !has(self.set)' name: - description: |- - name specifies the name of a header on which to perform an action. Its value must be a valid HTTP header - name as defined in RFC 2616 section 4.2. - The name must consist only of alphanumeric and the following special characters, "-!#$%&'*+.^_`". - The following header names are reserved and may not be modified via this API: - Strict-Transport-Security, Proxy, Cookie, Set-Cookie. - It must be no more than 255 characters in length. - Header name must be unique. + description: 'name specifies the name of a header on + which to perform an action. Its value must be a valid + HTTP header name as defined in RFC 2616 section 4.2. + The name must consist only of alphanumeric and the + following special characters, "-!#$%&''*+.^_`". The + following header names are reserved and may not be + modified via this API: Strict-Transport-Security, + Proxy, Cookie, Set-Cookie. It must be no more than + 255 characters in length. Header name must be unique.' maxLength: 255 minLength: 1 pattern: ^[-!#$%&'*+.0-9A-Z^_`a-z|~]+$ @@ -256,20 +254,22 @@ spec: rule: self.all(key, key.action.type == "Delete" || (has(key.action.set) && key.action.set.value.matches('^(?:%(?:%|(?:\\{[-+]?[QXE](?:,[-+]?[QXE])*\\})?\\[(?:req\\.hdr\\([0-9A-Za-z-]+\\)|ssl_c_der)(?:,(?:lower|base64))*\\])|[^%[:cntrl:]])+$'))) response: - description: |- - response is a list of HTTP response headers to modify. - Currently, actions may define to either `Set` or `Delete` headers values. - Actions defined here will modify the response headers of all requests made through a route. - These actions are applied to a specific Route defined within a cluster i.e. connections made through a route. - Route actions will be executed before IngressController actions for response headers. - Actions are applied in sequence as defined in this list. - A maximum of 20 response header actions may be configured. - You can use this field to specify HTTP response headers that should be set or deleted - when forwarding responses from your application to the client. - Sample fetchers allowed are "res.hdr" and "ssl_c_der". - Converters allowed are "lower" and "base64". - Example header values: "%[res.hdr(X-target),lower]", "%{+Q}[ssl_c_der,base64]". - Note: This field cannot be used if your route uses TLS passthrough. + description: 'response is a list of HTTP response headers + to modify. Currently, actions may define to either `Set` + or `Delete` headers values. Actions defined here will modify + the response headers of all requests made through a route. + These actions are applied to a specific Route defined within + a cluster i.e. connections made through a route. Route actions + will be executed before IngressController actions for response + headers. Actions are applied in sequence as defined in this + list. A maximum of 20 response header actions may be configured. + You can use this field to specify HTTP response headers + that should be set or deleted when forwarding responses + from your application to the client. Sample fetchers allowed + are "res.hdr" and "ssl_c_der". Converters allowed are "lower" + and "base64". Example header values: "%[res.hdr(X-target),lower]", + "%{+Q}[ssl_c_der,base64]". Note: This field cannot be used + if your route uses TLS passthrough.' items: description: RouteHTTPHeader specifies configuration for setting or deleting an HTTP header. @@ -279,20 +279,25 @@ spec: headers, such as setting or deleting headers. properties: set: - description: |- - set defines the HTTP header that should be set: added if it doesn't exist or replaced if it does. - This field is required when type is Set and forbidden otherwise. + description: 'set defines the HTTP header that should + be set: added if it doesn''t exist or replaced + if it does. This field is required when type is + Set and forbidden otherwise.' properties: value: - description: |- - value specifies a header value. - Dynamic values can be added. The value will be interpreted as an HAProxy format string as defined in - http://cbonte.github.io/haproxy-dconv/2.6/configuration.html#8.2.6 and may use HAProxy's %[] syntax and - otherwise must be a valid HTTP header value as defined in https://datatracker.ietf.org/doc/html/rfc7230#section-3.2. - The value of this field must be no more than 16384 characters in length. - Note that the total size of all net added headers *after* interpolating dynamic values - must not exceed the value of spec.tuningOptions.headerBufferMaxRewriteBytes on the - IngressController. + description: value specifies a header value. + Dynamic values can be added. The value will + be interpreted as an HAProxy format string + as defined in http://cbonte.github.io/haproxy-dconv/2.6/configuration.html#8.2.6 + and may use HAProxy's %[] syntax and otherwise + must be a valid HTTP header value as defined + in https://datatracker.ietf.org/doc/html/rfc7230#section-3.2. + The value of this field must be no more than + 16384 characters in length. Note that the + total size of all net added headers *after* + interpolating dynamic values must not exceed + the value of spec.tuningOptions.headerBufferMaxRewriteBytes + on the IngressController. maxLength: 16384 minLength: 1 type: string @@ -300,11 +305,11 @@ spec: - value type: object type: - description: |- - type defines the type of the action to be applied on the header. - Possible values are Set or Delete. - Set allows you to set HTTP request and response headers. - Delete allows you to delete HTTP request and response headers. + description: type defines the type of the action + to be applied on the header. Possible values are + Set or Delete. Set allows you to set HTTP request + and response headers. Delete allows you to delete + HTTP request and response headers. enum: - Set - Delete @@ -318,14 +323,15 @@ spec: rule: 'has(self.type) && self.type == ''Set'' ? has(self.set) : !has(self.set)' name: - description: |- - name specifies the name of a header on which to perform an action. Its value must be a valid HTTP header - name as defined in RFC 2616 section 4.2. - The name must consist only of alphanumeric and the following special characters, "-!#$%&'*+.^_`". - The following header names are reserved and may not be modified via this API: - Strict-Transport-Security, Proxy, Cookie, Set-Cookie. - It must be no more than 255 characters in length. - Header name must be unique. + description: 'name specifies the name of a header on + which to perform an action. Its value must be a valid + HTTP header name as defined in RFC 2616 section 4.2. + The name must consist only of alphanumeric and the + following special characters, "-!#$%&''*+.^_`". The + following header names are reserved and may not be + modified via this API: Strict-Transport-Security, + Proxy, Cookie, Set-Cookie. It must be no more than + 255 characters in length. Header name must be unique.' maxLength: 255 minLength: 1 pattern: ^[-!#$%&'*+.0-9A-Z^_`a-z|~]+$ @@ -371,37 +377,35 @@ spec: pattern: ^/ type: string port: - description: |- - If specified, the port to be used by the router. Most routers will use all - endpoints exposed by the service by default - set this value to instruct routers - which port to use. + description: If specified, the port to be used by the router. Most + routers will use all endpoints exposed by the service by default + - set this value to instruct routers which port to use. properties: targetPort: anyOf: - type: integer - type: string - description: |- - The target port on pods selected by the service this route points to. - If this is a string, it will be looked up as a named port in the target - endpoints port list. Required + description: The target port on pods selected by the service this + route points to. If this is a string, it will be looked up as + a named port in the target endpoints port list. Required x-kubernetes-int-or-string: true required: - targetPort type: object subdomain: - description: |- - subdomain is a DNS subdomain that is requested within the ingress controller's - domain (as a subdomain). If host is set this field is ignored. An ingress - controller may choose to ignore this suggested name, in which case the controller - will report the assigned name in the status.ingress array or refuse to admit the - route. If this value is set and the server does not support this field host will - be populated automatically. Otherwise host is left empty. The field may have - multiple parts separated by a dot, but not all ingress controllers may honor - the request. This field may not be changed after creation except by a user with - the update routes/custom-host permission. - - Example: subdomain `frontend` automatically receives the router subdomain - `apps.mycluster.com` to have a full hostname `frontend.apps.mycluster.com`. + description: "subdomain is a DNS subdomain that is requested within + the ingress controller's domain (as a subdomain). If host is set + this field is ignored. An ingress controller may choose to ignore + this suggested name, in which case the controller will report the + assigned name in the status.ingress array or refuse to admit the + route. If this value is set and the server does not support this + field host will be populated automatically. Otherwise host is left + empty. The field may have multiple parts separated by a dot, but + not all ingress controllers may honor the request. This field may + not be changed after creation except by a user with the update routes/custom-host + permission. \n Example: subdomain `frontend` automatically receives + the router subdomain `apps.mycluster.com` to have a full hostname + `frontend.apps.mycluster.com`." maxLength: 253 pattern: ^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$ type: string @@ -414,41 +418,40 @@ spec: contents type: string certificate: - description: |- - certificate provides certificate contents. This should be a single serving certificate, not a certificate - chain. Do not include a CA certificate. + description: certificate provides certificate contents. This should + be a single serving certificate, not a certificate chain. Do + not include a CA certificate. type: string destinationCACertificate: - description: |- - destinationCACertificate provides the contents of the ca certificate of the final destination. When using reencrypt - termination this file should be provided in order to have routers use it for health checks on the secure connection. - If this field is not specified, the router may provide its own destination CA and perform hostname validation using - the short service name (service.namespace.svc), which allows infrastructure generated certificates to automatically - verify. + description: destinationCACertificate provides the contents of + the ca certificate of the final destination. When using reencrypt + termination this file should be provided in order to have routers + use it for health checks on the secure connection. If this field + is not specified, the router may provide its own destination + CA and perform hostname validation using the short service name + (service.namespace.svc), which allows infrastructure generated + certificates to automatically verify. type: string externalCertificate: - description: |- - externalCertificate provides certificate contents as a secret reference. - This should be a single serving certificate, not a certificate - chain. Do not include a CA certificate. The secret referenced should - be present in the same namespace as that of the Route. - Forbidden when `certificate` is set. + description: externalCertificate provides certificate contents + as a secret reference. This should be a single serving certificate, + not a certificate chain. Do not include a CA certificate. The + secret referenced should be present in the same namespace as + that of the Route. Forbidden when `certificate` is set. properties: name: - description: |- - name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + description: 'name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string type: object x-kubernetes-map-type: atomic insecureEdgeTerminationPolicy: - description: |- - insecureEdgeTerminationPolicy indicates the desired behavior for insecure connections to a route. While - each router may make its own decisions on which ports to expose, this is normally port 80. - - * Allow - traffic is sent to the server on the insecure port (edge/reencrypt terminations only) (default). - * None - no traffic is allowed on the insecure port. - * Redirect - clients are redirected to the secure port. + description: "insecureEdgeTerminationPolicy indicates the desired + behavior for insecure connections to a route. While each router + may make its own decisions on which ports to expose, this is + normally port 80. \n * Allow - traffic is sent to the server + on the insecure port (edge/reencrypt terminations only) (default). + * None - no traffic is allowed on the insecure port. * Redirect + - clients are redirected to the secure port." enum: - Allow - None @@ -459,14 +462,14 @@ spec: description: key provides key file contents type: string termination: - description: |- - termination indicates termination type. - - * edge - TLS termination is done by the router and http is used to communicate with the backend (default) - * passthrough - Traffic is sent straight to the destination without the router providing TLS termination - * reencrypt - TLS termination is done by the router and https is used to communicate with the backend - - Note: passthrough termination is incompatible with httpHeader actions + description: "termination indicates termination type. \n * edge + - TLS termination is done by the router and http is used to + communicate with the backend (default) * passthrough - Traffic + is sent straight to the destination without the router providing + TLS termination * reencrypt - TLS termination is done by the + router and https is used to communicate with the backend \n + Note: passthrough termination is incompatible with httpHeader + actions" enum: - edge - reencrypt @@ -482,10 +485,10 @@ spec: ? !((self.termination==''passthrough'') && (self.insecureEdgeTerminationPolicy==''Allow'')) : true' to: - description: |- - to is an object the route should use as the primary backend. Only the Service kind - is allowed, and it will be defaulted to Service. If the weight field (0-256 default 100) - is set to zero, no traffic will be sent to this backend. + description: to is an object the route should use as the primary backend. + Only the Service kind is allowed, and it will be defaulted to Service. + If the weight field (0-256 default 100) is set to zero, no traffic + will be sent to this backend. properties: kind: default: Service @@ -502,9 +505,9 @@ spec: type: string weight: default: 100 - description: |- - weight as an integer between 0 and 256, default 100, that specifies the target's relative weight - against other target reference objects. 0 suppresses requests to this backend. + description: weight as an integer between 0 and 256, default 100, + that specifies the target's relative weight against other target + reference objects. 0 suppresses requests to this backend. format: int32 maximum: 256 minimum: 0 @@ -515,9 +518,8 @@ spec: type: object wildcardPolicy: default: None - description: |- - Wildcard policy if any for the route. - Currently only 'Subdomain' or 'None' is allowed. + description: Wildcard policy if any for the route. Currently only + 'Subdomain' or 'None' is allowed. enum: - None - Subdomain @@ -534,10 +536,9 @@ spec: description: status is the current state of the route properties: ingress: - description: |- - ingress describes the places where the route may be exposed. The list of - ingress points may contain duplicate Host or RouterName values. Routes - are considered live once they are `Ready` + description: ingress describes the places where the route may be exposed. + The list of ingress points may contain duplicate Host or RouterName + values. Routes are considered live once they are `Ready` items: description: RouteIngress holds information about the places where a route is exposed. @@ -545,9 +546,8 @@ spec: conditions: description: Conditions is the state of the route, may be empty. items: - description: |- - RouteIngressCondition contains details for the current condition of this route on a particular - router. + description: RouteIngressCondition contains details for the + current condition of this route on a particular router. properties: lastTransitionTime: description: RFC 3339 date and time when this condition @@ -559,19 +559,16 @@ spec: about last transition. type: string reason: - description: |- - (brief) reason for the condition's last transition, and is usually a machine and human - readable constant + description: (brief) reason for the condition's last transition, + and is usually a machine and human readable constant type: string status: - description: |- - Status is the status of the condition. - Can be True, False, Unknown. + description: Status is the status of the condition. Can + be True, False, Unknown. type: string type: - description: |- - Type is the type of the condition. - Currently only Admitted. + description: Type is the type of the condition. Currently + only Admitted. type: string required: - status @@ -583,9 +580,10 @@ spec: exposed; this value is required type: string routerCanonicalHostname: - description: |- - CanonicalHostname is the external host name for the router that can be used as a CNAME - for the host requested for this route. This value is optional and may not be set in all cases. + description: CanonicalHostname is the external host name for + the router that can be used as a CNAME for the host requested + for this route. This value is optional and may not be set + in all cases. type: string routerName: description: Name is a name chosen by the router to identify diff --git a/config/crd/external/user.openshift.io_groups.yaml b/config/crd/external/user.openshift.io_groups.yaml index a72ff5ef947..452dd58d903 100644 --- a/config/crd/external/user.openshift.io_groups.yaml +++ b/config/crd/external/user.openshift.io_groups.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: groups.user.openshift.io spec: group: user.openshift.io @@ -17,25 +18,19 @@ spec: - name: v1 schema: openAPIV3Schema: - description: |- - Group represents a referenceable set of Users - - Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). + description: "Group represents a referenceable set of Users \n Compatibility + level 1: Stable within a major release for a minimum of 12 months or 3 minor + releases (whichever is longer)." 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 + 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 + 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 diff --git a/config/crd/external/user.openshift.io_identities.yaml b/config/crd/external/user.openshift.io_identities.yaml index 891c81aebec..971f99052da 100644 --- a/config/crd/external/user.openshift.io_identities.yaml +++ b/config/crd/external/user.openshift.io_identities.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: identities.user.openshift.io spec: group: user.openshift.io @@ -17,21 +18,19 @@ spec: - name: v1 schema: openAPIV3Schema: - description: |- - Identity records a successful authentication of a user with an identity provider. The - information about the source of authentication is stored on the identity, and the identity - is then associated with a single user object. Multiple identities can reference a single - user. Information retrieved from the authentication provider is stored in the extra field - using a schema determined by the provider. - - Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). + description: "Identity records a successful authentication of a user with + an identity provider. The information about the source of authentication + is stored on the identity, and the identity is then associated with a single + user object. Multiple identities can reference a single user. Information + retrieved from the authentication provider is stored in the extra field + using a schema determined by the provider. \n Compatibility level 1: Stable + within a major release for a minimum of 12 months or 3 minor releases (whichever + is longer)." 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 + 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 extra: additionalProperties: @@ -39,12 +38,9 @@ spec: description: Extra holds extra information about this identity type: object 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 + 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 @@ -56,47 +52,39 @@ spec: scope of the provider type: string user: - description: |- - User is a reference to the user this identity is associated with - Both Name and UID must be set + description: User is a reference to the user this identity is associated + with Both Name and UID must be set 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. + 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 + 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 + 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/ + 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 + 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 + 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 diff --git a/config/crd/external/user.openshift.io_useridentitymappings.yaml b/config/crd/external/user.openshift.io_useridentitymappings.yaml index bcf5c5ac424..41bf7b7837b 100644 --- a/config/crd/external/user.openshift.io_useridentitymappings.yaml +++ b/config/crd/external/user.openshift.io_useridentitymappings.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: useridentitymappings.user.openshift.io spec: group: user.openshift.io @@ -17,17 +18,14 @@ spec: - name: v1 schema: openAPIV3Schema: - description: |- - UserIdentityMapping maps a user to an identity - - Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). + description: "UserIdentityMapping maps a user to an identity \n Compatibility + level 1: Stable within a major release for a minimum of 12 months or 3 minor + releases (whichever is longer)." 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 + 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 identity: description: Identity is a reference to an identity @@ -36,49 +34,39 @@ spec: 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. + 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 + 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 + 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/ + 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 + 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 + 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 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 + 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 @@ -89,39 +77,32 @@ spec: 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. + 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 + 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 + 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/ + 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 + 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 + 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 diff --git a/config/crd/external/user.openshift.io_users.yaml b/config/crd/external/user.openshift.io_users.yaml index 2c9e80fa49b..c6315360048 100644 --- a/config/crd/external/user.openshift.io_users.yaml +++ b/config/crd/external/user.openshift.io_users.yaml @@ -3,7 +3,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null name: users.user.openshift.io spec: group: user.openshift.io @@ -17,30 +18,27 @@ spec: - name: v1 schema: openAPIV3Schema: - description: |- - Upon log in, every user of the system receives a User and Identity resource. Administrators - may directly manipulate the attributes of the users for their own tracking, or set groups - via the API. The user name is unique and is chosen based on the value provided by the - identity provider - if a user already exists with the incoming name, the user name may have - a number appended to it depending on the configuration of the system. - - Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). + description: "Upon log in, every user of the system receives a User and Identity + resource. Administrators may directly manipulate the attributes of the users + for their own tracking, or set groups via the API. The user name is unique + and is chosen based on the value provided by the identity provider - if + a user already exists with the incoming name, the user name may have a number + appended to it depending on the configuration of the system. \n Compatibility + level 1: Stable within a major release for a minimum of 12 months or 3 minor + releases (whichever is longer)." 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 + 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 fullName: description: FullName is the full name of user type: string groups: - description: |- - Groups specifies group names this user is a member of. - This field is deprecated and will be removed in a future release. - Instead, create a Group object containing the name of this User. + description: Groups specifies group names this user is a member of. This + field is deprecated and will be removed in a future release. Instead, + create a Group object containing the name of this User. items: type: string type: array @@ -50,12 +48,9 @@ spec: type: string type: array 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 + 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 diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index 5eb6b30d620..e24bd4c9702 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -2,13 +2,24 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: + creationTimestamp: null name: controller-manager-role rules: - apiGroups: - '*' resources: - deployments + verbs: + - '*' +- apiGroups: + - '*' + resources: - replicasets + verbs: + - '*' +- apiGroups: + - '*' + resources: - services verbs: - '*' @@ -28,6 +39,17 @@ rules: - admissionregistration.k8s.io resources: - mutatingwebhookconfigurations + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - admissionregistration.k8s.io + resources: - validatingwebhookconfigurations verbs: - create @@ -64,8 +86,23 @@ rules: - apps resources: - deployments + verbs: + - '*' +- apiGroups: + - apps + resources: - deployments/finalizers + verbs: + - '*' +- apiGroups: + - apps + resources: - replicasets + verbs: + - '*' +- apiGroups: + - apps + resources: - statefulsets verbs: - '*' @@ -97,11 +134,25 @@ rules: - get - apiGroups: - authorization.openshift.io - - rbac.authorization.k8s.io resources: - clusterrolebindings + verbs: + - '*' +- apiGroups: + - authorization.openshift.io + resources: - clusterroles + verbs: + - '*' +- apiGroups: + - authorization.openshift.io + resources: - rolebindings + verbs: + - '*' +- apiGroups: + - authorization.openshift.io + resources: - roles verbs: - '*' @@ -119,9 +170,16 @@ rules: - watch - apiGroups: - autoscaling.openshift.io - - machine.openshift.io resources: - machineautoscalers + verbs: + - delete + - get + - list + - patch +- apiGroups: + - autoscaling.openshift.io + resources: - machinesets verbs: - delete @@ -132,7 +190,6 @@ rules: - batch resources: - cronjobs - - jobs/status verbs: - create - delete @@ -147,11 +204,43 @@ rules: - jobs verbs: - '*' +- apiGroups: + - batch + resources: + - jobs/status + verbs: + - create + - delete + - get + - list + - patch + - update + - watch - apiGroups: - build.openshift.io resources: - buildconfigs + verbs: + - create + - delete + - get + - list + - patch + - watch +- apiGroups: + - build.openshift.io + resources: - buildconfigs/instantiate + verbs: + - create + - delete + - get + - list + - patch + - watch +- apiGroups: + - build.openshift.io + resources: - builds verbs: - create @@ -172,16 +261,6 @@ rules: - components.opendatahub.io resources: - codeflares - - dashboards - - datasciencepipelines - - kserves - - kueues - - modelmeshservings - - modelregistries - - rays - - trainingoperators - - trustyais - - workbenches verbs: - create - delete @@ -194,31 +273,12 @@ rules: - components.opendatahub.io resources: - codeflares/finalizers - - datasciencepipelines/finalizers - - kserves/finalizers - - kueues/finalizers - - modelmeshservings/finalizers - - modelregistries/finalizers - - rays/finalizers - - trainingoperators/finalizers - - trustyais/finalizers - - workbenches/finalizers verbs: - update - apiGroups: - components.opendatahub.io resources: - codeflares/status - - dashboards/status - - datasciencepipelines/status - - kserves/status - - kueues/status - - modelmeshservings/status - - modelregistries/status - - rays/status - - trainingoperators/status - - trustyais/status - - workbenches/status verbs: - get - patch @@ -226,61 +286,65 @@ rules: - apiGroups: - components.opendatahub.io resources: - - dashboards/finalizers + - dashboards verbs: - create + - delete - get - list - patch - update - - use - watch - apiGroups: - - config.openshift.io + - components.opendatahub.io resources: - - clusterversions + - dashboards/finalizers verbs: + - create - get - list + - patch + - update + - use - watch - apiGroups: - - config.openshift.io + - components.opendatahub.io resources: - - ingresses + - dashboards/status verbs: - get + - patch + - update - apiGroups: - - console.openshift.io + - components.opendatahub.io resources: - - consolelinks + - datasciencepipelines verbs: - create - delete - get + - list - patch + - update + - watch - apiGroups: - - console.openshift.io + - components.opendatahub.io resources: - - odhquickstarts + - datasciencepipelines/finalizers verbs: - - create - - delete - - get - - list - - patch + - update - apiGroups: - - controller-runtime.sigs.k8s.io + - components.opendatahub.io resources: - - controllermanagerconfigs + - datasciencepipelines/status verbs: - - create - - delete - get - patch + - update - apiGroups: - - coordination.k8s.io + - components.opendatahub.io resources: - - leases + - kserves verbs: - create - delete @@ -290,68 +354,51 @@ rules: - update - watch - apiGroups: - - "" + - components.opendatahub.io resources: - - clusterversions - - rhmis + - kserves/finalizers verbs: - - get - - list - - watch + - update - apiGroups: - - "" + - components.opendatahub.io resources: - - configmaps - - events - - namespaces - - secrets - - secrets/finalizers - - serviceaccounts - - services/finalizers + - kserves/status verbs: - - create - - delete - get - - list - patch - update - - watch - apiGroups: - - "" + - components.opendatahub.io resources: - - configmaps/status + - kueues verbs: + - create - delete - get + - list - patch - update + - watch - apiGroups: - - "" + - components.opendatahub.io resources: - - deployments - - persistentvolumeclaims - - persistentvolumes - - pods - - pods/exec - - pods/log + - kueues/finalizers verbs: - - '*' + - update - apiGroups: - - "" + - components.opendatahub.io resources: - - endpoints + - kueues/status verbs: - - create - - delete - get - - list + - patch - update - - watch - apiGroups: - - "" + - components.opendatahub.io resources: - - namespaces/finalizers + - modelmeshservings verbs: + - create - delete - get - list @@ -359,34 +406,23 @@ rules: - update - watch - apiGroups: - - "" + - components.opendatahub.io resources: - - services + - modelmeshservings/finalizers verbs: - - '*' - - create - - delete - - get - - list - - patch - update - - watch - apiGroups: - - dashboard.opendatahub.io + - components.opendatahub.io resources: - - acceleratorprofiles - - odhapplications - - odhdocuments + - modelmeshservings/status verbs: - - create - - delete - get - - list - patch + - update - apiGroups: - - datasciencecluster.opendatahub.io + - components.opendatahub.io resources: - - datascienceclusters + - modelregistries verbs: - create - delete @@ -396,14 +432,414 @@ rules: - update - watch - apiGroups: - - datasciencecluster.opendatahub.io + - components.opendatahub.io resources: - - datascienceclusters/finalizers + - modelregistries/finalizers verbs: - - patch - update - apiGroups: - - datasciencecluster.opendatahub.io + - components.opendatahub.io + resources: + - modelregistries/status + verbs: + - get + - patch + - update +- apiGroups: + - components.opendatahub.io + resources: + - rays + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - components.opendatahub.io + resources: + - rays/finalizers + verbs: + - update +- apiGroups: + - components.opendatahub.io + resources: + - rays/status + verbs: + - get + - patch + - update +- apiGroups: + - components.opendatahub.io + resources: + - trainingoperators + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - components.opendatahub.io + resources: + - trainingoperators/finalizers + verbs: + - update +- apiGroups: + - components.opendatahub.io + resources: + - trainingoperators/status + verbs: + - get + - patch + - update +- apiGroups: + - components.opendatahub.io + resources: + - trustyais + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - components.opendatahub.io + resources: + - trustyais/finalizers + verbs: + - update +- apiGroups: + - components.opendatahub.io + resources: + - trustyais/status + verbs: + - get + - patch + - update +- apiGroups: + - components.opendatahub.io + resources: + - workbenches + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - components.opendatahub.io + resources: + - workbenches/finalizers + verbs: + - update +- apiGroups: + - components.opendatahub.io + resources: + - workbenches/status + verbs: + - get + - patch + - update +- apiGroups: + - config.openshift.io + resources: + - clusterversions + verbs: + - get + - list + - watch +- apiGroups: + - config.openshift.io + resources: + - ingresses + verbs: + - get +- apiGroups: + - console.openshift.io + resources: + - consolelinks + verbs: + - create + - delete + - get + - patch +- apiGroups: + - console.openshift.io + resources: + - odhquickstarts + verbs: + - create + - delete + - get + - list + - patch +- apiGroups: + - controller-runtime.sigs.k8s.io + resources: + - controllermanagerconfigs + verbs: + - create + - delete + - get + - patch +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - clusterversions + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - configmaps/status + verbs: + - delete + - get + - patch + - update +- apiGroups: + - "" + resources: + - deployments + verbs: + - '*' +- apiGroups: + - "" + resources: + - endpoints + verbs: + - create + - delete + - get + - list + - update + - watch +- apiGroups: + - "" + resources: + - events + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - namespaces + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - namespaces/finalizers + verbs: + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - '*' +- apiGroups: + - "" + resources: + - persistentvolumes + verbs: + - '*' +- apiGroups: + - "" + resources: + - pods + verbs: + - '*' +- apiGroups: + - "" + resources: + - pods/exec + verbs: + - '*' +- apiGroups: + - "" + resources: + - pods/log + verbs: + - '*' +- apiGroups: + - "" + resources: + - rhmis + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - secrets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - secrets/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - services + verbs: + - '*' + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - services/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - custom.tekton.dev + resources: + - pipelineloops + verbs: + - '*' +- apiGroups: + - dashboard.opendatahub.io + resources: + - acceleratorprofiles + verbs: + - create + - delete + - get + - list + - patch +- apiGroups: + - dashboard.opendatahub.io + resources: + - odhapplications + verbs: + - create + - delete + - get + - list + - patch +- apiGroups: + - dashboard.opendatahub.io + resources: + - odhdocuments + verbs: + - create + - delete + - get + - list + - patch +- apiGroups: + - datasciencecluster.opendatahub.io + resources: + - datascienceclusters + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datasciencecluster.opendatahub.io + resources: + - datascienceclusters/finalizers + verbs: + - patch + - update +- apiGroups: + - datasciencecluster.opendatahub.io resources: - datascienceclusters/status verbs: @@ -426,6 +862,13 @@ rules: - datasciencepipelinesapplications.opendatahub.io resources: - datasciencepipelinesapplications/finalizers + verbs: + - get + - patch + - update +- apiGroups: + - datasciencepipelinesapplications.opendatahub.io + resources: - datasciencepipelinesapplications/status verbs: - get @@ -447,6 +890,14 @@ rules: - dscinitialization.opendatahub.io resources: - dscinitializations/finalizers + verbs: + - delete + - get + - patch + - update +- apiGroups: + - dscinitialization.opendatahub.io + resources: - dscinitializations/status verbs: - delete @@ -467,7 +918,6 @@ rules: - extensions resources: - deployments - - replicasets verbs: - '*' - apiGroups: @@ -480,6 +930,12 @@ rules: - list - patch - watch +- apiGroups: + - extensions + resources: + - replicasets + verbs: + - '*' - apiGroups: - features.opendatahub.io resources: @@ -517,6 +973,11 @@ rules: - image.openshift.io resources: - imagestreamtags + verbs: + - get +- apiGroups: + - image.openshift.io + resources: - registry/metrics verbs: - get @@ -530,6 +991,24 @@ rules: - list - patch - watch +- apiGroups: + - machine.openshift.io + resources: + - machineautoscalers + verbs: + - delete + - get + - list + - patch +- apiGroups: + - machine.openshift.io + resources: + - machinesets + verbs: + - delete + - get + - list + - patch - apiGroups: - machinelearning.seldon.io resources: @@ -540,8 +1019,41 @@ rules: - maistra.io resources: - servicemeshcontrolplanes + verbs: + - create + - get + - list + - patch + - update + - use + - watch +- apiGroups: + - maistra.io + resources: - servicemeshmemberrolls + verbs: + - create + - get + - list + - patch + - update + - use + - watch +- apiGroups: + - maistra.io + resources: - servicemeshmembers + verbs: + - create + - get + - list + - patch + - update + - use + - watch +- apiGroups: + - maistra.io + resources: - servicemeshmembers/finalizers verbs: - create @@ -569,30 +1081,134 @@ rules: - modelregistries/finalizers verbs: - get - - update + - update +- apiGroups: + - modelregistry.opendatahub.io + resources: + - modelregistries/status + verbs: + - get + - patch + - update +- apiGroups: + - monitoring.coreos.com + resources: + - alertmanagerconfigs + verbs: + - create + - delete + - deletecollection + - get + - patch +- apiGroups: + - monitoring.coreos.com + resources: + - alertmanagers + verbs: + - create + - delete + - deletecollection + - get + - patch +- apiGroups: + - monitoring.coreos.com + resources: + - alertmanagers/finalizers + verbs: + - create + - delete + - deletecollection + - get + - patch +- apiGroups: + - monitoring.coreos.com + resources: + - alertmanagers/status + verbs: + - create + - delete + - deletecollection + - get + - patch +- apiGroups: + - monitoring.coreos.com + resources: + - podmonitors + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - monitoring.coreos.com + resources: + - probes + verbs: + - create + - delete + - deletecollection + - get + - patch +- apiGroups: + - monitoring.coreos.com + resources: + - prometheuses + verbs: + - create + - delete + - deletecollection + - get + - patch +- apiGroups: + - monitoring.coreos.com + resources: + - prometheuses/finalizers + verbs: + - create + - delete + - deletecollection + - get + - patch +- apiGroups: + - monitoring.coreos.com + resources: + - prometheuses/status + verbs: + - create + - delete + - deletecollection + - get + - patch +- apiGroups: + - monitoring.coreos.com + resources: + - prometheusrules + verbs: + - create + - delete + - deletecollection + - get + - patch - apiGroups: - - modelregistry.opendatahub.io + - monitoring.coreos.com resources: - - modelregistries/status + - servicemonitors verbs: + - create + - delete + - deletecollection - get + - list - patch - update + - watch - apiGroups: - monitoring.coreos.com resources: - - alertmanagerconfigs - - alertmanagers - - alertmanagers/finalizers - - alertmanagers/status - - probes - - prometheuses - - prometheuses/finalizers - - prometheuses/status - - prometheusrules - thanosrulers - - thanosrulers/finalizers - - thanosrulers/status verbs: - create - delete @@ -602,33 +1218,38 @@ rules: - apiGroups: - monitoring.coreos.com resources: - - podmonitors + - thanosrulers/finalizers verbs: - create - delete + - deletecollection - get - - list - patch - - update - - watch - apiGroups: - monitoring.coreos.com resources: - - servicemonitors + - thanosrulers/status verbs: - create - delete - deletecollection - get - - list - patch - - update - - watch - apiGroups: - networking.istio.io resources: - envoyfilters + verbs: + - '*' +- apiGroups: + - networking.istio.io + resources: - gateways + verbs: + - '*' +- apiGroups: + - networking.istio.io + resources: - virtualservices verbs: - '*' @@ -657,6 +1278,17 @@ rules: - networking.k8s.io resources: - ingresses + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - networking.k8s.io + resources: - networkpolicies verbs: - create @@ -706,6 +1338,15 @@ rules: - operator.openshift.io resources: - consoles + verbs: + - delete + - get + - list + - patch + - watch +- apiGroups: + - operator.openshift.io + resources: - ingresscontrollers verbs: - delete @@ -717,7 +1358,6 @@ rules: - operators.coreos.com resources: - catalogsources - - operatorconditions verbs: - get - list @@ -741,6 +1381,14 @@ rules: - delete - get - patch +- apiGroups: + - operators.coreos.com + resources: + - operatorconditions + verbs: + - get + - list + - watch - apiGroups: - operators.coreos.com resources: @@ -764,6 +1412,17 @@ rules: - ray.io resources: - rayjobs + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - ray.io + resources: - rayservices verbs: - create @@ -773,10 +1432,39 @@ rules: - patch - update - watch +- apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + verbs: + - '*' +- apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + verbs: + - '*' +- apiGroups: + - rbac.authorization.k8s.io + resources: + - rolebindings + verbs: + - '*' +- apiGroups: + - rbac.authorization.k8s.io + resources: + - roles + verbs: + - '*' - apiGroups: - route.openshift.io resources: - routers/federate + verbs: + - get +- apiGroups: + - route.openshift.io + resources: - routers/metrics verbs: - get @@ -824,6 +1512,17 @@ rules: - serving.knative.dev resources: - services + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - serving.knative.dev + resources: - services/finalizers verbs: - create @@ -846,13 +1545,72 @@ rules: - serving.kserve.io resources: - clusterservingruntimes + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - serving.kserve.io + resources: - clusterservingruntimes/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - serving.kserve.io + resources: + - clusterservingruntimes/status + verbs: + - delete + - get + - patch + - update +- apiGroups: + - serving.kserve.io + resources: - inferencegraphs + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - serving.kserve.io + resources: + - inferencegraphs/status + verbs: + - delete + - get + - patch + - update +- apiGroups: + - serving.kserve.io + resources: - inferenceservices + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - serving.kserve.io + resources: - inferenceservices/finalizers - - predictors - - servingruntimes/finalizers - - trainedmodels verbs: - create - delete @@ -864,31 +1622,88 @@ rules: - apiGroups: - serving.kserve.io resources: - - clusterservingruntimes/status - - inferencegraphs/status - inferenceservices/status - - predictors/status - - trainedmodels/status verbs: - delete - get - patch - update +- apiGroups: + - serving.kserve.io + resources: + - predictors + verbs: + - create + - delete + - get + - list + - patch + - update + - watch - apiGroups: - serving.kserve.io resources: - predictors/finalizers - - servingruntimes/status verbs: - get - patch - update +- apiGroups: + - serving.kserve.io + resources: + - predictors/status + verbs: + - delete + - get + - patch + - update - apiGroups: - serving.kserve.io resources: - servingruntimes verbs: - '*' +- apiGroups: + - serving.kserve.io + resources: + - servingruntimes/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - serving.kserve.io + resources: + - servingruntimes/status + verbs: + - get + - patch + - update +- apiGroups: + - serving.kserve.io + resources: + - trainedmodels + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - serving.kserve.io + resources: + - trainedmodels/status + verbs: + - delete + - get + - patch + - update - apiGroups: - snapshot.storage.k8s.io resources: diff --git a/config/webhook/manifests.yaml b/config/webhook/manifests.yaml index 9c1174d5173..f5b4ccd817d 100644 --- a/config/webhook/manifests.yaml +++ b/config/webhook/manifests.yaml @@ -2,6 +2,7 @@ apiVersion: admissionregistration.k8s.io/v1 kind: MutatingWebhookConfiguration metadata: + creationTimestamp: null name: mutating-webhook-configuration webhooks: - admissionReviewVersions: @@ -28,6 +29,7 @@ webhooks: apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration metadata: + creationTimestamp: null name: validating-webhook-configuration webhooks: - admissionReviewVersions: diff --git a/controllers/components/datasciencepipelines/datasciencepipelines.go b/controllers/components/datasciencepipelines/datasciencepipelines.go new file mode 100644 index 00000000000..8af8d328d75 --- /dev/null +++ b/controllers/components/datasciencepipelines/datasciencepipelines.go @@ -0,0 +1,66 @@ +package datasciencepipelines + +import ( + "fmt" + + operatorv1 "github.com/openshift/api/operator/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + componentsv1 "github.com/opendatahub-io/opendatahub-operator/v2/apis/components/v1" + dscv1 "github.com/opendatahub-io/opendatahub-operator/v2/apis/datasciencecluster/v1" + "github.com/opendatahub-io/opendatahub-operator/v2/pkg/cluster" + "github.com/opendatahub-io/opendatahub-operator/v2/pkg/deploy" + "github.com/opendatahub-io/opendatahub-operator/v2/pkg/metadata/annotations" +) + +func Init(platform cluster.Platform) error { + var imageParamMap = map[string]string{ + // v1 + "IMAGES_APISERVER": "RELATED_IMAGE_ODH_ML_PIPELINES_API_SERVER_IMAGE", + "IMAGES_ARTIFACT": "RELATED_IMAGE_ODH_ML_PIPELINES_ARTIFACT_MANAGER_IMAGE", + "IMAGES_PERSISTENTAGENT": "RELATED_IMAGE_ODH_ML_PIPELINES_PERSISTENCEAGENT_IMAGE", + "IMAGES_SCHEDULEDWORKFLOW": "RELATED_IMAGE_ODH_ML_PIPELINES_SCHEDULEDWORKFLOW_IMAGE", + "IMAGES_CACHE": "RELATED_IMAGE_ODH_ML_PIPELINES_CACHE_IMAGE", + "IMAGES_DSPO": "RELATED_IMAGE_ODH_DATA_SCIENCE_PIPELINES_OPERATOR_CONTROLLER_IMAGE", + // v2 + "IMAGESV2_ARGO_APISERVER": "RELATED_IMAGE_ODH_ML_PIPELINES_API_SERVER_V2_IMAGE", + "IMAGESV2_ARGO_PERSISTENCEAGENT": "RELATED_IMAGE_ODH_ML_PIPELINES_PERSISTENCEAGENT_V2_IMAGE", + "IMAGESV2_ARGO_SCHEDULEDWORKFLOW": "RELATED_IMAGE_ODH_ML_PIPELINES_SCHEDULEDWORKFLOW_V2_IMAGE", + "IMAGESV2_ARGO_ARGOEXEC": "RELATED_IMAGE_ODH_DATA_SCIENCE_PIPELINES_ARGO_ARGOEXEC_IMAGE", + "IMAGESV2_ARGO_WORKFLOWCONTROLLER": "RELATED_IMAGE_ODH_DATA_SCIENCE_PIPELINES_ARGO_WORKFLOWCONTROLLER_IMAGE", + "V2_DRIVER_IMAGE": "RELATED_IMAGE_ODH_ML_PIPELINES_DRIVER_IMAGE", + "V2_LAUNCHER_IMAGE": "RELATED_IMAGE_ODH_ML_PIPELINES_LAUNCHER_IMAGE", + "IMAGESV2_ARGO_MLMDGRPC": "RELATED_IMAGE_ODH_MLMD_GRPC_SERVER_IMAGE", + } + + if err := deploy.ApplyParams(DefaultPath, imageParamMap); err != nil { + return fmt.Errorf("failed to update images on path %s: %w", DefaultPath, err) + } + + return nil +} + +func GetComponentCR(dsc *dscv1.DataScienceCluster) *componentsv1.DataSciencePipelines { + dataSciencePipelinesAnnotations := make(map[string]string) + + switch dsc.Spec.Components.DataSciencePipelines.ManagementState { + case operatorv1.Managed, operatorv1.Removed: + dataSciencePipelinesAnnotations[annotations.ManagementStateAnnotation] = string(dsc.Spec.Components.DataSciencePipelines.ManagementState) + default: // Force and Unmanaged case for unknown values, we do not support these yet + dataSciencePipelinesAnnotations[annotations.ManagementStateAnnotation] = "Unknown" + } + + return &componentsv1.DataSciencePipelines{ + TypeMeta: metav1.TypeMeta{ + Kind: componentsv1.DataSciencePipelinesKind, + APIVersion: componentsv1.GroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: componentsv1.DataSciencePipelinesInstanceName, + Annotations: dataSciencePipelinesAnnotations, + }, + Spec: componentsv1.DataSciencePipelinesSpec{ + DataSciencePipelinesCommonSpec: dsc.Spec.Components.DataSciencePipelines.DataSciencePipelinesCommonSpec, + }, + } +} diff --git a/controllers/components/datasciencepipelines/datasciencepipelines_controller.go b/controllers/components/datasciencepipelines/datasciencepipelines_controller.go index 7422bfe5eb1..b3f5df40722 100644 --- a/controllers/components/datasciencepipelines/datasciencepipelines_controller.go +++ b/controllers/components/datasciencepipelines/datasciencepipelines_controller.go @@ -19,40 +19,65 @@ package datasciencepipelines import ( "context" - "k8s.io/apimachinery/pkg/runtime" + securityv1 "github.com/openshift/api/security/v1" + appsv1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" + rbacv1 "k8s.io/api/rbac/v1" + extv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/log" + "sigs.k8s.io/controller-runtime/pkg/builder" componentsv1 "github.com/opendatahub-io/opendatahub-operator/v2/apis/components/v1" + "github.com/opendatahub-io/opendatahub-operator/v2/pkg/controller/actions/deploy" + "github.com/opendatahub-io/opendatahub-operator/v2/pkg/controller/actions/render" + "github.com/opendatahub-io/opendatahub-operator/v2/pkg/controller/actions/updatestatus" + "github.com/opendatahub-io/opendatahub-operator/v2/pkg/controller/predicates/resources" + "github.com/opendatahub-io/opendatahub-operator/v2/pkg/controller/reconciler" + odhdeploy "github.com/opendatahub-io/opendatahub-operator/v2/pkg/deploy" + "github.com/opendatahub-io/opendatahub-operator/v2/pkg/metadata/labels" ) -// DataSciencePipelinesReconciler reconciles a DataSciencePipelines object. -type DataSciencePipelinesReconciler struct { - client.Client - Scheme *runtime.Scheme -} +var ( + DefaultPath = odhdeploy.DefaultManifestPath + "/" + componentsv1.DataSciencePipelinesComponentName + "/openshift" +) -// Reconcile is part of the main kubernetes reconciliation loop which aims to -// move the current state of the cluster closer to the desired state. -// TODO(user): Modify the Reconcile function to compare the state specified by -// the DataSciencePipelines object against the actual cluster state, and then -// perform operations to make the cluster state reflect the state specified by -// the user. -// -// For more details, check Reconcile and its Result here: -// - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.12.2/pkg/reconcile -func (r *DataSciencePipelinesReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - _ = log.FromContext(ctx) - - // TODO(user): your logic here - - return ctrl.Result{}, nil -} +func NewComponentReconciler(ctx context.Context, mgr ctrl.Manager) error { + _, err := reconciler.ComponentReconcilerFor[*componentsv1.DataSciencePipelines]( + mgr, + componentsv1.DataSciencePipelinesInstanceName, + &componentsv1.DataSciencePipelines{}, + ). + // customized Owns() for Component with new predicates + Owns(&corev1.ConfigMap{}). + Owns(&corev1.Secret{}). + Owns(&rbacv1.ClusterRoleBinding{}). + Owns(&rbacv1.ClusterRole{}). + Owns(&rbacv1.Role{}). + Owns(&rbacv1.RoleBinding{}). + Owns(&corev1.ServiceAccount{}). + Owns(&appsv1.Deployment{}, builder.WithPredicates(resources.NewDeploymentPredicate())). + Owns(&securityv1.SecurityContextConstraints{}). + Watches(&extv1.CustomResourceDefinition{}). // call ForLabel() + new predicates + // Add datasciencepipelines-specific actions + WithAction(initialize). + WithAction(devFlags). + WithAction(render.NewAction( + render.WithCache(true, render.DefaultCachingKeyFn), + render.WithLabel(labels.ODH.Component(componentsv1.DataSciencePipelinesComponentName), "true"), + render.WithLabel(labels.K8SCommon.PartOf, componentsv1.DataSciencePipelinesComponentName), + )). + WithAction(deploy.NewAction( + deploy.WithFieldOwner(componentsv1.DataSciencePipelinesInstanceName), + deploy.WithLabel(labels.ComponentManagedBy, componentsv1.DataSciencePipelinesInstanceName), + )). + WithAction(updatestatus.NewAction( + updatestatus.WithSelectorLabel(labels.ComponentManagedBy, componentsv1.DataSciencePipelinesInstanceName), + )). + Build(ctx) + + if err != nil { + return err // no need customize error, it is done in the caller main + } -// SetupWithManager sets up the controller with the Manager. -func (r *DataSciencePipelinesReconciler) SetupWithManager(mgr ctrl.Manager) error { - return ctrl.NewControllerManagedBy(mgr). - For(&componentsv1.DataSciencePipelines{}). - Complete(r) + return nil } diff --git a/controllers/components/datasciencepipelines/datasciencepipelines_controller_actions.go b/controllers/components/datasciencepipelines/datasciencepipelines_controller_actions.go new file mode 100644 index 00000000000..336b0adbc62 --- /dev/null +++ b/controllers/components/datasciencepipelines/datasciencepipelines_controller_actions.go @@ -0,0 +1,41 @@ +/* +Copyright 2023. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package datasciencepipelines + +import ( + "context" + "fmt" + + odhtypes "github.com/opendatahub-io/opendatahub-operator/v2/pkg/controller/types" + odhdeploy "github.com/opendatahub-io/opendatahub-operator/v2/pkg/deploy" +) + +func initialize(ctx context.Context, rr *odhtypes.ReconciliationRequest) error { + rr.Manifests = append(rr.Manifests, odhtypes.ManifestInfo{ + Path: DefaultPath, + ContextDir: "", + SourcePath: "", + }) + if err := odhdeploy.ApplyParams(DefaultPath, nil, map[string]string{"namespace": rr.DSCI.Spec.ApplicationsNamespace}); err != nil { + return fmt.Errorf("failed to update params.env from %s : %w", rr.Manifests[0], err) + } + return nil +} + +func devFlags(ctx context.Context, rr *odhtypes.ReconciliationRequest) error { + return nil +} diff --git a/controllers/datasciencecluster/datasciencecluster_controller.go b/controllers/datasciencecluster/datasciencecluster_controller.go index 775ca99e84c..468fc246b28 100644 --- a/controllers/datasciencecluster/datasciencecluster_controller.go +++ b/controllers/datasciencecluster/datasciencecluster_controller.go @@ -54,6 +54,7 @@ import ( dsciv1 "github.com/opendatahub-io/opendatahub-operator/v2/apis/dscinitialization/v1" "github.com/opendatahub-io/opendatahub-operator/v2/components/datasciencepipelines" dashboardctrl "github.com/opendatahub-io/opendatahub-operator/v2/controllers/components/dashboard" + datasciencepipelinesctrl "github.com/opendatahub-io/opendatahub-operator/v2/controllers/components/datasciencepipelines" rayctrl "github.com/opendatahub-io/opendatahub-operator/v2/controllers/components/ray" "github.com/opendatahub-io/opendatahub-operator/v2/controllers/status" "github.com/opendatahub-io/opendatahub-operator/v2/pkg/cluster" @@ -243,7 +244,6 @@ func (r *DataScienceClusterReconciler) Reconcile(ctx context.Context, req ctrl.R var componentErrors *multierror.Error // Deploy Dashboard - if instance, err = r.ReconcileComponent(ctx, instance, componentsv1.DashboardComponentName, func() (error, bool) { // Get the Dashboard instance dashboard := dashboardctrl.GetComponentCR(instance) @@ -261,6 +261,14 @@ func (r *DataScienceClusterReconciler) Reconcile(ctx context.Context, req ctrl.R componentErrors = multierror.Append(componentErrors, err) } + // Deploy DataSciencePipelines + if instance, err = r.ReconcileComponent(ctx, instance, componentsv1.DataSciencePipelinesComponentName, func() (error, bool) { + dsp := datasciencepipelinesctrl.GetComponentCR(instance) + return r.apply(ctx, instance, dsp), instance.Spec.Components.DataSciencePipelines.ManagementState == operatorv1.Managed + }); err != nil { + componentErrors = multierror.Append(componentErrors, err) + } + // Process errors for components if componentErrors != nil { log.Info("DataScienceCluster Deployment Incomplete.") @@ -526,6 +534,7 @@ func (r *DataScienceClusterReconciler) SetupWithManager(ctx context.Context, mgr // components CRs Owns(&componentsv1.Dashboard{}). Owns(&componentsv1.Ray{}). + Owns(&componentsv1.DataSciencePipelines{}). Owns( &corev1.ServiceAccount{}, builder.WithPredicates(saPredicates), diff --git a/controllers/datasciencecluster/kubebuilder_rbac.go b/controllers/datasciencecluster/kubebuilder_rbac.go index 5c8075c2902..9eca42ae855 100644 --- a/controllers/datasciencecluster/kubebuilder_rbac.go +++ b/controllers/datasciencecluster/kubebuilder_rbac.go @@ -115,6 +115,11 @@ package datasciencecluster // +kubebuilder:rbac:groups="user.openshift.io",resources=users,verbs=list;watch;patch;delete;get // +kubebuilder:rbac:groups="console.openshift.io",resources=consolelinks,verbs=create;get;patch;delete +// DataSciencePipelines +// +kubebuilder:rbac:groups=components.opendatahub.io,resources=datasciencepipelines,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=components.opendatahub.io,resources=datasciencepipelines/status,verbs=get;update;patch +// +kubebuilder:rbac:groups=components.opendatahub.io,resources=datasciencepipelines/finalizers,verbs=update + // Ray // +kubebuilder:rbac:groups=components.opendatahub.io,resources=rays,verbs=get;list;watch;create;update;patch;delete // +kubebuilder:rbac:groups=components.opendatahub.io,resources=rays/status,verbs=get;update;patch diff --git a/controllers/webhook/webhook_suite_test.go b/controllers/webhook/webhook_suite_test.go index 48fec37e1bd..2f82c20c903 100644 --- a/controllers/webhook/webhook_suite_test.go +++ b/controllers/webhook/webhook_suite_test.go @@ -46,7 +46,6 @@ import ( dsciv1 "github.com/opendatahub-io/opendatahub-operator/v2/apis/dscinitialization/v1" componentsold "github.com/opendatahub-io/opendatahub-operator/v2/components" "github.com/opendatahub-io/opendatahub-operator/v2/components/codeflare" - "github.com/opendatahub-io/opendatahub-operator/v2/components/datasciencepipelines" "github.com/opendatahub-io/opendatahub-operator/v2/components/kserve" "github.com/opendatahub-io/opendatahub-operator/v2/components/modelmeshserving" "github.com/opendatahub-io/opendatahub-operator/v2/components/modelregistry" @@ -276,8 +275,8 @@ func newDSC(name string, namespace string) *dscv1.DataScienceCluster { ManagementState: operatorv1.Removed, }, }, - DataSciencePipelines: datasciencepipelines.DataSciencePipelines{ - Component: componentsold.Component{ + DataSciencePipelines: componentsv1.DSCDataSciencePipelines{ + ManagementSpec: components.ManagementSpec{ ManagementState: operatorv1.Removed, }, }, diff --git a/main.go b/main.go index bb1418f66c3..23ffcfe46e6 100644 --- a/main.go +++ b/main.go @@ -65,6 +65,7 @@ import ( "github.com/opendatahub-io/opendatahub-operator/v2/components/modelregistry" "github.com/opendatahub-io/opendatahub-operator/v2/controllers/certconfigmapgenerator" dashboardctrl "github.com/opendatahub-io/opendatahub-operator/v2/controllers/components/dashboard" + datasciencepipelinesctrl "github.com/opendatahub-io/opendatahub-operator/v2/controllers/components/datasciencepipelines" rayctrl "github.com/opendatahub-io/opendatahub-operator/v2/controllers/components/ray" dscctrl "github.com/opendatahub-io/opendatahub-operator/v2/controllers/datasciencecluster" dscictrl "github.com/opendatahub-io/opendatahub-operator/v2/controllers/dscinitialization" @@ -121,6 +122,9 @@ func initComponents(_ context.Context, p cluster.Platform) error { if err := rayctrl.Init(p); err != nil { multiErr = multierror.Append(multiErr, err) } + if err := datasciencepipelinesctrl.Init(p); err != nil { + multiErr = multierror.Append(multiErr, err) + } return multiErr.ErrorOrNil() } @@ -152,6 +156,8 @@ func main() { //nolint:funlen,maintidx ctrl.SetLogger(logger.NewLoggerWithOptions(logmode, &opts)) + setupLog.Info("Hello from main 300") + // root context ctx := ctrl.SetupSignalHandler() ctx = logf.IntoContext(ctx, setupLog) @@ -407,10 +413,16 @@ func CreateComponentReconcilers(ctx context.Context, mgr manager.Manager) error setupLog.Error(err, "unable to create controller", "controller", "DashboardReconciler") return err } + if err := rayctrl.NewComponentReconciler(ctx, mgr); err != nil { setupLog.Error(err, "unable to create controller", "controller", "RayReconciler") return err } + if err := datasciencepipelinesctrl.NewComponentReconciler(ctx, mgr); err != nil { + setupLog.Error(err, "unable to create controller", "controller", "DataSciencePipelinesReconciler") + return err + } + return nil } diff --git a/pkg/cluster/zz_generated.deepcopy.go b/pkg/cluster/zz_generated.deepcopy.go index 0bc3e0f557d..722ec2e25fd 100644 --- a/pkg/cluster/zz_generated.deepcopy.go +++ b/pkg/cluster/zz_generated.deepcopy.go @@ -1,4 +1,5 @@ //go:build !ignore_autogenerated +// +build !ignore_autogenerated /* Copyright 2023. diff --git a/pkg/upgrade/upgrade.go b/pkg/upgrade/upgrade.go index 24c6025b762..446c324368f 100644 --- a/pkg/upgrade/upgrade.go +++ b/pkg/upgrade/upgrade.go @@ -33,7 +33,6 @@ import ( infrav1 "github.com/opendatahub-io/opendatahub-operator/v2/apis/infrastructure/v1" componentsold "github.com/opendatahub-io/opendatahub-operator/v2/components" "github.com/opendatahub-io/opendatahub-operator/v2/components/codeflare" - "github.com/opendatahub-io/opendatahub-operator/v2/components/datasciencepipelines" "github.com/opendatahub-io/opendatahub-operator/v2/components/kserve" "github.com/opendatahub-io/opendatahub-operator/v2/components/kueue" "github.com/opendatahub-io/opendatahub-operator/v2/components/modelmeshserving" @@ -77,8 +76,8 @@ func CreateDefaultDSC(ctx context.Context, cli client.Client) error { ModelMeshServing: modelmeshserving.ModelMeshServing{ Component: componentsold.Component{ManagementState: operatorv1.Managed}, }, - DataSciencePipelines: datasciencepipelines.DataSciencePipelines{ - Component: componentsold.Component{ManagementState: operatorv1.Managed}, + DataSciencePipelines: componentsv1.DSCDataSciencePipelines{ + ManagementSpec: components.ManagementSpec{ManagementState: operatorv1.Managed}, }, Kserve: kserve.Kserve{ Component: componentsold.Component{ManagementState: operatorv1.Managed}, diff --git a/tests/e2e/helper_test.go b/tests/e2e/helper_test.go index c4052135bfa..5ef01919004 100644 --- a/tests/e2e/helper_test.go +++ b/tests/e2e/helper_test.go @@ -29,7 +29,6 @@ import ( infrav1 "github.com/opendatahub-io/opendatahub-operator/v2/apis/infrastructure/v1" componentsold "github.com/opendatahub-io/opendatahub-operator/v2/components" "github.com/opendatahub-io/opendatahub-operator/v2/components/codeflare" - "github.com/opendatahub-io/opendatahub-operator/v2/components/datasciencepipelines" "github.com/opendatahub-io/opendatahub-operator/v2/components/kserve" "github.com/opendatahub-io/opendatahub-operator/v2/components/kueue" "github.com/opendatahub-io/opendatahub-operator/v2/components/modelmeshserving" @@ -135,9 +134,9 @@ func setupDSCInstance(name string) *dscv1.DataScienceCluster { ManagementState: operatorv1.Removed, }, }, - DataSciencePipelines: datasciencepipelines.DataSciencePipelines{ - Component: componentsold.Component{ - ManagementState: operatorv1.Removed, + DataSciencePipelines: componentsv1.DSCDataSciencePipelines{ + ManagementSpec: components.ManagementSpec{ + ManagementState: operatorv1.Managed, }, }, Kserve: kserve.Kserve{