Skip to content

Support references between types #841

@t3mi

Description

@t3mi

Description

If complex schema is known, it's not possible to define it using references between custom types.

Observed Behavior:
failed to build resourcegraphdefinition 'noop': failed to build OpenAPI schema

Expected Behavior:
ResourceGraphDefinition ready to be used

Reproduction Steps (Please include ResourceGraphDefinition and Instances files):

apiVersion: kro.run/v1alpha1
kind: ResourceGraphDefinition
metadata:
  name: noop
spec:
  schema:
    apiVersion: v1alpha1
    kind: NoOp
    spec:
      config: config
    types:
      config:
        list: '[]kv'
        map: map[string]map2
      kv:
        key: string
        value: string
      map2:
        key1: string
        key2: string
  resources: []

Versions:

  • kro version: 0.6.3
  • Kubernetes Version (kubectl version): 1.33.2

Error Logs (if applicable)**:

2025-11-20T16:43:13.408Z	DEBUG	rgd-controller	setting resourcegraphdefinition as managed	{"controller": "ResourceGraphDefinition", "controllerGroup": "kro.run", "controllerKind": "ResourceGraphDefinition", "name": "noop", "reconcileID": "dbfd60a2-b73a-4e17-b908-f7dcd4147f0b"}
2025-11-20T16:43:13.408Z	DEBUG	rgd-controller	reconciling resource graph definition graph	{"controller": "ResourceGraphDefinition", "controllerGroup": "kro.run", "controllerKind": "ResourceGraphDefinition", "name": "noop", "reconcileID": "dbfd60a2-b73a-4e17-b908-f7dcd4147f0b"}
2025-11-20T16:43:13.409Z	DEBUG	rgd-controller	calculating resource graph definition status and conditions	{"controller": "ResourceGraphDefinition", "controllerGroup": "kro.run", "controllerKind": "ResourceGraphDefinition", "name": "noop", "reconcileID": "dbfd60a2-b73a-4e17-b908-f7dcd4147f0b"}
2025-11-20T16:43:13.409Z	DEBUG	rgd-controller	updating resource graph definition status	{"controller": "ResourceGraphDefinition", "controllerGroup": "kro.run", "controllerKind": "ResourceGraphDefinition", "name": "noop", "reconcileID": "dbfd60a2-b73a-4e17-b908-f7dcd4147f0b", "state": "Inactive", "conditions": 4}
2025-11-20T16:43:13.409Z	ERROR	rgd-controller	Reconciler error	{"controller": "ResourceGraphDefinition", "controllerGroup": "kro.run", "controllerKind": "ResourceGraphDefinition", "name": "noop", "reconcileID": "dbfd60a2-b73a-4e17-b908-f7dcd4147f0b", "error": "failed to build resourcegraphdefinition 'noop': failed to build OpenAPI schema for instance: failed to build OpenAPI schema for instance: failed to build pre-defined types schema: unknown type: kv"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler
	sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:316
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem
	sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:263
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func2.2
	sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:224
  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Which option describes the most your issue?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.triage/acceptedIndicates an issue or PR is ready to be actively worked on.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions