Skip to content

CRD generator missing type for GenericKubernetesResource  #6725

@csviri

Description

@csviri

Describe the bug

When updated fabric8 version for to 6.13.4 but also for 7.0.0+ versions, the CRD generator generated an invalid CRD for:

  @PreserveUnknownFields
  private GenericKubernetesResource resource;

the result:

resource:
     x-kubernetes-embedded-resource: true
     x-kubernetes-preserve-unknown-fields: true

when I try to apply such resource k8s gives an error message:

spec.validation.openAPIV3Schema.properties[spec].properties[childResources].items.properties[resource].type: Required value: must be object if x-kubernetes-embedded-resource is true

Fabric8 Kubernetes Client version

6.13.4

Steps to reproduce

Open this branch in Kubernetes Glue Operator:

  1. https://github.com/java-operator-sdk/kubernetes-glue-operator/tree/quarkus-update
  2. compile with mvn clean install -DskipTests
  3. apply the generated crd from: kubernetes-glue-operator/target/kubernetes/glues.io.csviri.operator.glue-v1.yml

Expected behavior

What seems to be enough is to have type: object to be added to generated snipper:

resource:
     type: object
     x-kubernetes-embedded-resource: true
     x-kubernetes-preserve-unknown-fields: true

Runtime

Kubernetes (vanilla)

Kubernetes API Server version

1.25.3@latest

Environment

Linux

Fabric8 Kubernetes Client Logs

No response

Additional context

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions