registry-operator / adr

Collection of Architectural Decision Records (ADRs)
The Unlicense
0 stars 2 forks source link

[registry-operator][helm-charts]: Custom Resources version skew strategy #22

Open shanduur opened 2 months ago

shanduur commented 2 months ago

Context and Problem Statement

In managing custom resources within the registry operator and helm charts, it's crucial to establish a version skew strategy that ensures compatibility and smooth upgrades. Currently, we face the challenge of defining a clear approach to managing versioning, particularly concerning potential breaking changes and the frequency of updates.

Considered Options

gantt
    title Incremental Breaking Changes
    dateFormat  YYYY-MM-DD

    section v1alpha1
    feature Foo.Bar         :crit, v1a1f1, 2030-01-01, 10d
    fix Foo.Bar             :v1a1x1, after v1a1f1, 4d

    section v1alpha2
    BREAKING feature Foo.Bar    :crit, v1a2f1, after v1a1x1, 7d
    feature Foo.Baz             :v1a2f2, after v1a1x1, 4d

    section v1alpha3
    REFACTOR feature Foo.Bar    :crit, v1a3f1, after v1a2f1, 7d
    fix Foo.Baz                 :v1a3x1, after v1a2f2, 14d

    section v1beta1
    CHORE promote Foo to beta    :crit, v1b1f1, after v1a3x1, 7d
    fix Foo.Bar                  :v1b1x1, after v1b1f1, 3d

    section v1beta2
    BREAKING feature Foo.Bar     :crit, v1b2f1, after v1b1x1, 4d
    fix Foo.Baz                  :v1b2x1, after v1b2f1, 3d
    feature Foo.Baz.Cux          :v1b2f2, after v1b2f1, 8d
gantt
    title Incremental Breaking Changes
    dateFormat  YYYY-MM-DD

    section v1alpha1
    feature Foo.Bar             :crit, v1a1f1, 2030-01-01, 10d
    fix Foo.Bar                 :v1a1x1, after v1a1f1, 4d
    BREAKING feature Foo.Bar    :v1a2f1, after v1a1x1, 7d

    section v1alpha2
    feature Foo.Baz             :crit, v1a2f2, after v1a2f1, 4d
    REFACTOR feature Foo.Bar    :v1a2f2, after v1a2f1, 7d
    fix Foo.Baz                 :v1a2x1, after v1a2f2, 14d

    section v1beta1
    CHORE promote Foo to beta    :crit, v1b1f1, after v1a2x1, 7d
    fix Foo.Bar                  :v1b1x1, after v1b1f1, 3d

    section v1beta2
    feature Foo.Baz.Cux          :crit, v1b2f1, after v1b1x1, 8d
    fix Foo.Baz                  :v1b2x1, after v1b1x1, 3d