Skip to content

Commit e39a08b

Browse files
committed
KREP-002: add declarative resource collections support
Introduces declarative resource collections to KRO, enabling dynamic creation of multiple resources based on runtime data. This addresses the fundamental limitation where each RGD resource block could only create a single Kubernetes resource, requiring static definition of all resources at design time. This proposal adds the `forEach` field to RGD `spec.resources`, allowing users to create N resources where N is determined at runtime from arrays, maps, or discovered resources. The design maintains KRO's declarative model and security guarantees while solving real world use cases like creating resources per tenant, per namespace, or per availability zone. While this proposal also covers related enhancements such as collection support in `externalRef`, status field computations with collections, and various integration points, the implementation will be split into phases. The initial implementation will focus on core `forEach` functionality with basic collections, followed by incremental additions of advanced features like collection chaining and external resource discovery. The enhancement is fully backward compatible, requiring no API version changes or migration. Existing RGDs continue to work unchanged, and users can adopt collections incrementally as needed. All changes are additive and maintain KRO's existing reconciliation semantics.
1 parent 65ebb02 commit e39a08b

File tree

1 file changed

+633
-0
lines changed

1 file changed

+633
-0
lines changed

0 commit comments

Comments
 (0)