Skip to content

tracking: Improve CRD versioning #757

@Techassi

Description

@Techassi

Follow-up tracking issue of #642.

Documentation Tasks

Framework Tasks

  • feat(stackable-versioned): Add version-specific item docs operator-rs#866
  • Traitify the try_convert function, see this comment => feat(versioned): Add KubernetesConvertable trait operator-rs#1067
  • Add support for fallible conversions
  • Add support individual per-container versioning
  • Add a validation stage between initial collection of containers in a module which will also build a "dependency graph" of structs.
  • Add new moved action to support moving fields across nested sub structs. An alternative is to support changed(from_name = <JSONPath>).
  • Can we (partially) fill in webhook details in the generated code?
  • Integrate with Serde (renames, flattening, untagged).
  • Automatically mark deprecated versions as deprecated=true
  • Add support for version removal. Mark removed versions as served=false
  • Automatically mark the latest version as storage=true (or should we mark the previous version as storage=true to give users time to migrate?)
  • Auto-generate action docs
  • Handle versioning of named/unnamed enum fields
  • Preserve module imports that are added by rust-analyzer (ideally they should be moved to the top of the file, but also shouldn't be invalid)
  • Integrate downgrade_with/upgrade_with with hint(...) to more cleverly combine those two mechanisms (if both are used, the function only cares about the inner type (of Vec or Option) instead of the whole type).
  • Support shared impl blocks for versioned structs and enums to avoid code duplication.

Operator Tasks

  • Roll out CRD conversion webhooks in all operators

stackablectl Tasks

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions