Skip to content

Managed resources: Prototype first declarative resource end-to-end (VariableSet) #1609

@zaychenko-sergei

Description

@zaychenko-sergei

Design scope

Goal: Prove the resource model on one real resource kind.

Scope - Implement the minimum vertical slice for a single resource VariableSet:

  • common resource envelope:
    • apiVersion
    • kind
    • metadata
    • spec
  • modification API with full-manifest apply/replace
  • simplest ownership scope: bind to particular account
  • minimal selector support: direct entity reference
  • metadata parts like labels, annotations simply stored
  • current desired-state persistence
  • generation handling
  • schema + semantic validation
  • transactional write of:
    • current resource state
    • resource event
    • outbox message
  • asynchronous consumer that reacts to resource changes
  • minimal status model:
    • observedGeneration
    • basic readiness / error information

Outcome: One real resource can be declared, stored, reacted to asynchronously, and queried back with basic status.

Resource definition

apiVersion: core.kamu.dev/v1alpha1
kind: VariableSet
metadata:
  name: analytics-defaults
spec:
  targetDatasetRef: kamu/my-test.dataset
  variables:
    APP_ENV:
      value: production
    LOG_LEVEL:
      value: info
    MAX_RETRIES:
      value: "3"
status:
  phase: Ready
  observedGeneration: 3
  variables:
    total: 3
    resolved: 3
    invalid: 0
  conditions:
    - type: Ready
      status: "True"
      reason: Reconciled
      message: VariableSet successfully reconciled
      lastTransitionTime: "2026-03-19T18:30:00Z"

Metadata

Metadata

Labels

enhancementNew feature or requestrustPull requests that update Rust code
No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions