Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Registry operator OLM tests not passing #1251

Closed
4 tasks done
Tracked by #410
michael-valdron opened this issue Sep 8, 2023 · 8 comments · Fixed by devfile/registry-operator#49
Closed
4 tasks done
Tracked by #410

Registry operator OLM tests not passing #1251

michael-valdron opened this issue Sep 8, 2023 · 8 comments · Fixed by devfile/registry-operator#49
Assignees
Labels
area/registry Devfile registry for stacks and infrastructure devtools-week kind/bug Something isn't working severity/blocker Issues that prevent developers from working

Comments

@michael-valdron
Copy link
Member

michael-valdron commented Sep 8, 2023

Which area this feature is related to?

/kind bug

Which area this bug is related to?

/area registry

What versions of software are you using?

Go project

Operating System and version: N/A

Go Pkg Version: 1.19

Bug Summary

Describe the bug: Current OLM validation testing is failing on a few of the test cases. Current validation includes:

  • olm-bundle-validation
  • olm-crds-have-validation
  • olm-crds-have-resources
  • olm-spec-descriptors
  • olm-status-descriptors

To Reproduce:

  1. Start local cluster: minikube start

  2. Run operator-sdk scorecard --wait-time 60s bundle

Expected behavior

All current OLM tests should pass.

Any logs, error output, screenshots etc? Provide the devfile that sees this bug, if applicable

--------------------------------------------------------------------------------
Image:      quay.io/operator-framework/scorecard-test:v1.1.0
Entrypoint: [scorecard-test olm-spec-descriptors]
Labels:
        "suite":"olm"
        "test":"olm-spec-descriptors-test"
Results:
        Name: olm-spec-descriptors
        State: fail

        Suggestions:
                Add a spec descriptor for devfileIndex
                Add a spec descriptor for devfileRegistries
                Add a spec descriptor for devfileRegistries
        Errors:
                devfileIndex does not have a spec descriptor
                devfileRegistries does not have a spec descriptor
                devfileRegistries does not have a spec descriptor
        Log:
                Loaded ClusterServiceVersion: registry-operator.v0.1.0
                Loaded 3 Custom Resources from alm-examples


--------------------------------------------------------------------------------
Image:      quay.io/operator-framework/scorecard-test:v1.1.0
Entrypoint: [scorecard-test olm-crds-have-validation]
Labels:
        "suite":"olm"
        "test":"olm-crds-have-validation-test"
Results:
        Name: olm-crds-have-validation
        State: pass

        Log:
                Loaded 3 Custom Resources from alm-examples
                Loaded CustomresourceDefinitions: [&CustomResourceDefinition{ObjectMeta:{clusterdevfileregistrieslists.registry.devfile.io      0 0001-01-01 00:00:00 +0000 UTC <nil> <nil> map[] map[cert-manager.io/inject-ca-from:registry-operator-system/registry-operator-serving-cert controller-gen.kubebuilder.io/version:v0.9.2] [] []  []},Spec:CustomResourceDefinitionSpec{Group:registry.devfile.io,Names:CustomResourceDefinitionNames{Plural:clusterdevfileregistrieslists,Singular:clusterdevfileregistrieslist,ShortNames:[],Kind:ClusterDevfileRegistriesList,ListKind:ClusterDevfileRegistriesListList,Categories:[],},Scope:Cluster,Versions:[]CustomResourceDefinitionVersion{CustomResourceDefinitionVersion{Name:v1alpha1,Served:true,Storage:true,Schema:&CustomResourceValidation{OpenAPIV3Schema:&JSONSchemaProps{ID:,Schema:,Ref:nil,Description:ClusterDevfileRegistriesList is a custom resource where cluster admins can add a list of Devfile Registries to allow devfiles to be visible at the cluster level.  In order to be added to the list, the Devfile Registries must be reachable, supports the Devfile v2.0 spec and above, and is not using the default namespace.,Type:object,Format:,Title:,Default:nil,Maximum:nil,ExclusiveMaximum:false,Minimum:nil,ExclusiveMinimum:false,MaxLength:nil,MinLength:nil,Pattern:,MaxItems:nil,MinItems:nil,UniqueItems:false,MultipleOf:nil,Enum:[]JSON{},MaxProperties:nil,MinProperties:nil,Required:[],Items:nil,AllOf:[]JSONSchemaProps{},OneOf:[]JSONSchemaProps{},AnyOf:[]JSONSchemaProps{},Not:nil,Properties:map[string]JSONSchemaProps{apiVersion: {  <nil> 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 string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},kind: {  <nil> 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 string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},metadata: {  <nil>  object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},spec: {  <nil> DevfileRegistriesListSpec defines the desired state of DevfileRegistriesList object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[devfileRegistries:{  <nil> DevfileRegistries is a list of devfile registry services array   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] &JSONSchemaPropsOrArray{Schema:&JSONSchemaProps{ID:,Schema:,Ref:nil,Description:DevfileRegistryService represents the properties used to identify a devfile registry service.,Type:object,Format:,Title:,Default:nil,Maximum:nil,ExclusiveMaximum:false,Minimum:nil,ExclusiveMinimum:false,MaxLength:nil,MinLength:nil,Pattern:,MaxItems:nil,MinItems:nil,UniqueItems:false,MultipleOf:nil,Enum:[]JSON{},MaxProperties:nil,MinProperties:nil,Required:[name url],Items:nil,AllOf:[]JSONSchemaProps{},OneOf:[]JSONSchemaProps{},AnyOf:[]JSONSchemaProps{},Not:nil,Properties:map[string]JSONSchemaProps{name: {  <nil> Name is the unique Name of the devfile registry. string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},skipTLSVerify: {  <nil> SkipTLSVerify defaults to false.  Set to true in a non-production environment to bypass certificate checking boolean   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},url: {  <nil> URL is the unique URL of the devfile registry. string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},},AdditionalProperties:nil,PatternProperties:map[string]JSONSchemaProps{},Dependencies:JSONSchemaDependencies{},AdditionalItems:nil,Definitions:JSONSchemaDefinitions{},ExternalDocs:nil,Example:nil,Nullable:false,XPreserveUnknownFields:nil,XEmbeddedResource:false,XIntOrString:false,XListMapKeys:[],XListType:nil,XMapType:nil,},JSONSchemas:[]JSONSchemaProps{},} [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>}] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},status: {  <nil> DevfileRegistriesListStatus defines the observed state of DevfileRegistriesList object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [status] nil [] [] [] nil map[status:{  <nil> INSERT ADDITIONAL STATUS FIELD - define observed state of cluster Important: Run "make" to regenerate code after modifying this file Status shows the state of this CR's devfile registry list.  If registries are no longer reachable, they will be listed here string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>}] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},},AdditionalProperties:nil,PatternProperties:map[string]JSONSchemaProps{},Dependencies:JSONSchemaDependencies{},AdditionalItems:nil,Definitions:JSONSchemaDefinitions{},ExternalDocs:nil,Example:nil,Nullable:false,XPreserveUnknownFields:nil,XEmbeddedResource:false,XIntOrString:false,XListMapKeys:[],XListType:nil,XMapType:nil,},},Subresources:&CustomResourceSubresources{Status:&CustomResourceSubresourceStatus{},Scale:nil,},AdditionalPrinterColumns:[]CustomResourceColumnDefinition{CustomResourceColumnDefinition{Name:Status,Type:string,Format:,Description:The status for the Cluster Devfile Registries List,Priority:0,JSONPath:.status.status,},},},},Conversion:&CustomResourceConversion{Strategy:Webhook,Webhook:&WebhookConversion{ClientConfig:&WebhookClientConfig{Service:&ServiceReference{Namespace:system,Name:webhook-service,Path:*/convert,Port:nil,},CABundle:nil,URL:nil,},ConversionReviewVersions:[v1],},},PreserveUnknownFields:false,},Status:CustomResourceDefinitionStatus{Conditions:[]CustomResourceDefinitionCondition{},AcceptedNames:CustomResourceDefinitionNames{Plural:,Singular:,ShortNames:[],Kind:,ListKind:,Categories:[],},StoredVersions:[],},} &CustomResourceDefinition{ObjectMeta:{devfileregistries.registry.devfile.io      0 0001-01-01 00:00:00 +0000 UTC <nil> <nil> map[] map[controller-gen.kubebuilder.io/version:v0.9.2] [] []  []},Spec:CustomResourceDefinitionSpec{Group:registry.devfile.io,Names:CustomResourceDefinitionNames{Plural:devfileregistries,Singular:devfileregistry,ShortNames:[devreg dr],Kind:DevfileRegistry,ListKind:DevfileRegistryList,Categories:[],},Scope:Namespaced,Versions:[]CustomResourceDefinitionVersion{CustomResourceDefinitionVersion{Name:v1alpha1,Served:true,Storage:true,Schema:&CustomResourceValidation{OpenAPIV3Schema:&JSONSchemaProps{ID:,Schema:,Ref:nil,Description:DevfileRegistry is a custom resource allows you to create and manage your own index server and registry viewer. In order to be added, the Devfile Registry must be reachable, supports the Devfile v2.0 spec and above, and is not using the default namespace.,Type:object,Format:,Title:,Default:nil,Maximum:nil,ExclusiveMaximum:false,Minimum:nil,ExclusiveMinimum:false,MaxLength:nil,MinLength:nil,Pattern:,MaxItems:nil,MinItems:nil,UniqueItems:false,MultipleOf:nil,Enum:[]JSON{},MaxProperties:nil,MinProperties:nil,Required:[],Items:nil,AllOf:[]JSONSchemaProps{},OneOf:[]JSONSchemaProps{},AnyOf:[]JSONSchemaProps{},Not:nil,Properties:map[string]JSONSchemaProps{apiVersion: {  <nil> 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 string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},kind: {  <nil> 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 string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},metadata: {  <nil>  object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},spec: {  <nil> DevfileRegistrySpec defines the desired state of DevfileRegistry object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[devfileIndex:{  <nil> Sets the devfile index container spec to be deployed on the Devfile Registry object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[image:{  <nil> Sets the container image string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} imagePullPolicy:{  <nil> Sets the image pull policy for the container string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>}] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} devfileIndexImage:{  <nil> Sets the container image containing devfile stacks to be deployed on the Devfile Registry string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} headless:{  <nil> Sets the registry server deployment to run under headless mode boolean   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} k8s:{  <nil> DevfileRegistrySpecK8sOnly defines the desired state of the kubernetes-only fields of the DevfileRegistry object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[ingressDomain:{  <nil> Ingress domain for a Kubernetes cluster. This MUST be explicitly specified on Kubernetes. There are no defaults string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>}] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} ociRegistry:{  <nil> Sets the OCI registry container spec to be deployed on the Devfile Registry object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[image:{  <nil> Sets the container image string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} imagePullPolicy:{  <nil> Sets the image pull policy for the container string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>}] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} ociRegistryImage:{  <nil> Overrides the container image used for the OCI registry. Recommended to leave blank and default to the image specified by the operator. string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} registryViewer:{  <nil> Sets the registry viewer container spec to be deployed on the Devfile Registry object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[image:{  <nil> Sets the container image string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} imagePullPolicy:{  <nil> Sets the image pull policy for the container string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>}] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} registryViewerImage:{  <nil> Overrides the container image used for the registry viewer. string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} storage:{  <nil> DevfileRegistrySpecStorage defines the desired state of the storage for the DevfileRegistry object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[enabled:{  <nil> Instructs the operator to deploy the DevfileRegistry with persistent storage Disabled by default. boolean   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} registryVolumeSize:{  <nil> Configures the size of the devfile registry's persistent volume, if enabled. Defaults to 1Gi. string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>}] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} telemetry:{  <nil> Telemetry defines the desired state for telemetry in the DevfileRegistry object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[key:{  <nil> Specify a telemetry key to allow devfile specific data to be sent to a client's own Segment analytics source. If the write key is specified then telemetry will be enabled string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} registryName:{  <nil> The registry name (can be any string) that is used as identifier for devfile telemetry. string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} registryViewerWriteKey:{  <nil> Specify a telemetry write key for the registry viewer component to allow data to be sent to a client's own Segment analytics source. If the write key is specified then telemetry for the registry viewer component will be enabled string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>}] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} tls:{  <nil> DevfileRegistrySpecTLS defines the desired state for TLS in the DevfileRegistry object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[enabled:{  <nil> Instructs the operator to deploy the DevfileRegistry with TLS enabled. Enabled by default. Disabling is only recommended for development or test. boolean   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>} secretName:{  <nil> Name of an optional, pre-existing TLS secret to use for TLS termination on ingress/route resources. string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>}] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>}] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},status: {  <nil> DevfileRegistryStatus defines the observed state of DevfileRegistry object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [url] nil [] [] [] nil map[url:{  <nil> URL is the exposed URL for the Devfile Registry, and is set in the status after the registry has become available. string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>}] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},},AdditionalProperties:nil,PatternProperties:map[string]JSONSchemaProps{},Dependencies:JSONSchemaDependencies{},AdditionalItems:nil,Definitions:JSONSchemaDefinitions{},ExternalDocs:nil,Example:nil,Nullable:false,XPreserveUnknownFields:nil,XEmbeddedResource:false,XIntOrString:false,XListMapKeys:[],XListType:nil,XMapType:nil,},},Subresources:&CustomResourceSubresources{Status:&CustomResourceSubresourceStatus{},Scale:nil,},AdditionalPrinterColumns:[]CustomResourceColumnDefinition{CustomResourceColumnDefinition{Name:URL,Type:string,Format:,Description:The URL for the Devfile Registry,Priority:0,JSONPath:.status.url,},},},},Conversion:nil,PreserveUnknownFields:false,},Status:CustomResourceDefinitionStatus{Conditions:[]CustomResourceDefinitionCondition{},AcceptedNames:CustomResourceDefinitionNames{Plural:,Singular:,ShortNames:[],Kind:,ListKind:,Categories:[],},StoredVersions:[],},} &CustomResourceDefinition{ObjectMeta:{devfileregistrieslists.registry.devfile.io      0 0001-01-01 00:00:00 +0000 UTC <nil> <nil> map[] map[cert-manager.io/inject-ca-from:registry-operator-system/registry-operator-serving-cert controller-gen.kubebuilder.io/version:v0.9.2] [] []  []},Spec:CustomResourceDefinitionSpec{Group:registry.devfile.io,Names:CustomResourceDefinitionNames{Plural:devfileregistrieslists,Singular:devfileregistrieslist,ShortNames:[],Kind:DevfileRegistriesList,ListKind:DevfileRegistriesListList,Categories:[],},Scope:Namespaced,Versions:[]CustomResourceDefinitionVersion{CustomResourceDefinitionVersion{Name:v1alpha1,Served:true,Storage:true,Schema:&CustomResourceValidation{OpenAPIV3Schema:&JSONSchemaProps{ID:,Schema:,Ref:nil,Description:DevfileRegistriesList is a custom resource where namespace users can add a list of Devfile Registries to allow devfiles to be visible at the namespace level.  In order to be added to the list, the Devfile Registries must be reachable, supports the Devfile v2.0 spec and above, and is not using the default namespace.,Type:object,Format:,Title:,Default:nil,Maximum:nil,ExclusiveMaximum:false,Minimum:nil,ExclusiveMinimum:false,MaxLength:nil,MinLength:nil,Pattern:,MaxItems:nil,MinItems:nil,UniqueItems:false,MultipleOf:nil,Enum:[]JSON{},MaxProperties:nil,MinProperties:nil,Required:[],Items:nil,AllOf:[]JSONSchemaProps{},OneOf:[]JSONSchemaProps{},AnyOf:[]JSONSchemaProps{},Not:nil,Properties:map[string]JSONSchemaProps{apiVersion: {  <nil> 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 string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},kind: {  <nil> 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 string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},metadata: {  <nil>  object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},spec: {  <nil> DevfileRegistriesListSpec defines the desired state of DevfileRegistriesList object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[devfileRegistries:{  <nil> DevfileRegistries is a list of devfile registry services array   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] &JSONSchemaPropsOrArray{Schema:&JSONSchemaProps{ID:,Schema:,Ref:nil,Description:DevfileRegistryService represents the properties used to identify a devfile registry service.,Type:object,Format:,Title:,Default:nil,Maximum:nil,ExclusiveMaximum:false,Minimum:nil,ExclusiveMinimum:false,MaxLength:nil,MinLength:nil,Pattern:,MaxItems:nil,MinItems:nil,UniqueItems:false,MultipleOf:nil,Enum:[]JSON{},MaxProperties:nil,MinProperties:nil,Required:[name url],Items:nil,AllOf:[]JSONSchemaProps{},OneOf:[]JSONSchemaProps{},AnyOf:[]JSONSchemaProps{},Not:nil,Properties:map[string]JSONSchemaProps{name: {  <nil> Name is the unique Name of the devfile registry. string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},skipTLSVerify: {  <nil> SkipTLSVerify defaults to false.  Set to true in a non-production environment to bypass certificate checking boolean   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},url: {  <nil> URL is the unique URL of the devfile registry. string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},},AdditionalProperties:nil,PatternProperties:map[string]JSONSchemaProps{},Dependencies:JSONSchemaDependencies{},AdditionalItems:nil,Definitions:JSONSchemaDefinitions{},ExternalDocs:nil,Example:nil,Nullable:false,XPreserveUnknownFields:nil,XEmbeddedResource:false,XIntOrString:false,XListMapKeys:[],XListType:nil,XMapType:nil,},JSONSchemas:[]JSONSchemaProps{},} [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>}] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},status: {  <nil> DevfileRegistriesListStatus defines the observed state of DevfileRegistriesList object   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [status] nil [] [] [] nil map[status:{  <nil> INSERT ADDITIONAL STATUS FIELD - define observed state of cluster Important: Run "make" to regenerate code after modifying this file Status shows the state of this CR's devfile registry list.  If registries are no longer reachable, they will be listed here string   nil <nil> false <nil> false <nil> <nil>  <nil> <nil> false <nil> [] <nil> <nil> [] nil [] [] [] nil map[] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>}] nil map[] map[] nil map[] nil nil false <nil> false false [] <nil> <nil>},},AdditionalProperties:nil,PatternProperties:map[string]JSONSchemaProps{},Dependencies:JSONSchemaDependencies{},AdditionalItems:nil,Definitions:JSONSchemaDefinitions{},ExternalDocs:nil,Example:nil,Nullable:false,XPreserveUnknownFields:nil,XEmbeddedResource:false,XIntOrString:false,XListMapKeys:[],XListType:nil,XMapType:nil,},},Subresources:&CustomResourceSubresources{Status:&CustomResourceSubresourceStatus{},Scale:nil,},AdditionalPrinterColumns:[]CustomResourceColumnDefinition{CustomResourceColumnDefinition{Name:Status,Type:string,Format:,Description:The status for the Devfile Registries List,Priority:0,JSONPath:.status.status,},},},},Conversion:&CustomResourceConversion{Strategy:Webhook,Webhook:&WebhookConversion{ClientConfig:&WebhookClientConfig{Service:&ServiceReference{Namespace:system,Name:webhook-service,Path:*/convert,Port:nil,},CABundle:nil,URL:nil,},ConversionReviewVersions:[v1],},},PreserveUnknownFields:false,},Status:CustomResourceDefinitionStatus{Conditions:[]CustomResourceDefinitionCondition{},AcceptedNames:CustomResourceDefinitionNames{Plural:,Singular:,ShortNames:[],Kind:,ListKind:,Categories:[],},StoredVersions:[],},}]


--------------------------------------------------------------------------------
Image:      quay.io/operator-framework/scorecard-test:v1.1.0
Entrypoint: [scorecard-test olm-bundle-validation]
Labels:
        "suite":"olm"
        "test":"olm-bundle-validation-test"
Results:
        Name: olm-bundle-validation
        State: fail

        Errors:
                Error: Field spec.conversion.webhookClientConfig.service.port, Value 0: spec.conversion.webhookClientConfig.service.port: Invalid value: 0: port is not valid: must be between 1 and 65535, inclusive
                Error: Field spec.conversion.webhookClientConfig.service.port, Value 0: spec.conversion.webhookClientConfig.service.port: Invalid value: 0: port is not valid: must be between 1 and 65535, inclusive
        Log:
                time="2023-09-08T17:57:27Z" level=debug msg="Found manifests directory" name=bundle-test
                time="2023-09-08T17:57:27Z" level=debug msg="Found metadata directory" name=bundle-test
                time="2023-09-08T17:57:27Z" level=debug msg="Getting mediaType info from manifests directory" name=bundle-test
                time="2023-09-08T17:57:27Z" level=info msg="Found annotations file" name=bundle-test
                time="2023-09-08T17:57:27Z" level=info msg="Could not find optional dependencies file" name=bundle-test


--------------------------------------------------------------------------------
Image:      quay.io/operator-framework/scorecard-test:v1.1.0
Entrypoint: [scorecard-test olm-crds-have-resources]
Labels:
        "suite":"olm"
        "test":"olm-crds-have-resources-test"
Results:
        Name: olm-crds-have-resources
        State: fail

        Errors:
                Owned CRDs do not have resources specified
        Log:
                Loaded ClusterServiceVersion: registry-operator.v0.1.0


--------------------------------------------------------------------------------
Image:      quay.io/operator-framework/scorecard-test:v1.1.0
Entrypoint: [scorecard-test basic-check-spec]
Labels:
        "suite":"basic"
        "test":"basic-check-spec-test"
Results:
        Name: basic-check-spec
        State: pass



--------------------------------------------------------------------------------
Image:      quay.io/operator-framework/scorecard-test:v1.1.0
Entrypoint: [scorecard-test olm-status-descriptors]
Labels:
        "suite":"olm"
        "test":"olm-status-descriptors-test"
Results:
        Name: olm-status-descriptors
        State: fail

        Log:
                Loaded ClusterServiceVersion: registry-operator.v0.1.0
                Loaded 3 Custom Resources from alm-examples

Additional context

Any workaround?

None.

Suggestion on how to fix the bug

Failed test cases should be addressed by using this resource: https://sdk.operatorframework.io/docs/testing-operators/scorecard/

  • olm-bundle-validation
  • olm-crds-have-resources
  • olm-spec-descriptors
  • olm-status-descriptors
@openshift-ci openshift-ci bot added kind/bug Something isn't working area/registry Devfile registry for stacks and infrastructure labels Sep 8, 2023
@michael-valdron michael-valdron moved this to Backlog in Devfile Project Sep 8, 2023
@michael-valdron michael-valdron added devtools-week severity/blocker Issues that prevent developers from working labels Sep 8, 2023
@michael-valdron michael-valdron self-assigned this Sep 11, 2023
@michael-valdron michael-valdron moved this from Backlog to To Do 📝 in Devfile Project Sep 11, 2023
@michael-valdron michael-valdron moved this from To Do 📝 to In Progress 🚧 in Devfile Project Sep 13, 2023
@michael-valdron
Copy link
Member Author

michael-valdron commented Sep 13, 2023

olm-spec-descriptors and olm-crds-have-resources failures have been fixed in devfile/registry-operator@a381722

@michael-valdron
Copy link
Member Author

olm-bundle-validation failing due to the missing webhook service port under crds, this has been fixed in devfile/registry-operator@658d64d

@michael-valdron
Copy link
Member Author

olm-status-descriptors failure has been fixed by updating the scorecard-test image devfile/registry-operator@cebe24d, adding descriptors on status fields devfile/registry-operator@a381722, and the addition of the Conditions fields:

@michael-valdron
Copy link
Member Author

devfile/registry-operator#48 will be included in the next release cut, therefore the review for this issue will begin after the mentioned PR is merged.

@michael-valdron michael-valdron moved this from In Progress 🚧 to In Review 👀 in Devfile Project Sep 14, 2023
@michael-valdron
Copy link
Member Author

devfile/registry-operator#48 will be included in the next release cut, therefore the review for this issue will begin after the mentioned PR is merged.

Also devfile/registry-operator#50

@michael-valdron
Copy link
Member Author

devfile/registry-operator#49 is ready for review

@michael-valdron
Copy link
Member Author

@michael-valdron
Copy link
Member Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/registry Devfile registry for stacks and infrastructure devtools-week kind/bug Something isn't working severity/blocker Issues that prevent developers from working
Projects
Status: Done ✅
Development

Successfully merging a pull request may close this issue.

1 participant