Skip to content

Platform composition support beyond Crossplane (kro) #21

@monadic

Description

@monadic

Motivation

The Crossplane work established a reusable pattern for explaining generated resources:

  • XR-first abstraction
  • deterministic lineage resolver
  • graceful partial lineage
  • shared consumption by trace, tree, and map

Other composition engines (notably kro) have the same characteristics:

  • resources generated from higher-level abstractions
  • metadata that may be incomplete
  • misleading "unmanaged" classifications today

Scope

  • Add support for kro (or similar composition engines) by:
    • implementing a resolver that identifies the platform root (kro equivalent of XR)
    • extracting lineage using kro metadata (annotations / owner relationships)
  • Reuse existing Crossplane patterns:
    • no special-case UX
    • no new presentation logic
  • Integrate with existing flows:
    • trace
    • tree composition
    • map / ownership summaries

Explicit Non-Goals

  • No cloud-provider API calls
  • No speculative inference
  • No UX redesign
  • No regression to Crossplane behavior

Tests / Proofs of Success

Unit / contract tests

  • Fixture set with:
    • kro-managed resource
    • kro root abstraction
  • Assert resolver returns:
    • root abstraction
    • partial lineage when metadata is missing

Trace

  • cub-scout trace <kro-managed-resource> shows:
    • Managed → kro root
    • (partial lineage) when appropriate

Tree

  • cub-scout tree composition groups kro resources under the kro root

Map

  • kro-managed resources do not appear as orphans
  • Crossplane behavior remains unchanged

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions