← The board

E1 Stack updates

Area
E — Maintenance
Audience
operator
Kind
feature
Status
accepted
Maturity
shipped
Shipped in
0.17.0
Labels
updates
Relates to
A5C9E2E3E4

The feature in the specification · Read at

Requirements

  1. E1-R1acceptedMUST

    All service images MUST be pinned to an immutable digest, of the multi-architecture index rather than of one platform's image, in the manifest that declares the service, a bundled part's in its own plugin manifest, with the version tag recorded alongside it and shown wherever a version is shown. No service MAY resolve an image by tag when it runs.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/image.rs
    recorded partial
    lemonfiber-media-stackscripts/manifest_rules.pyscripts/check_images.pyscripts/test_validate_manifest.py::floating tag
    cited by
    lemonfiber@7008624f60lemonfiber@904f8367e4lemonfiber@ce320dfaf0lemonfiber-decline@fe842b5e65lemonfiber-request-gate@0508824d2alemonfiber-media-stack@a1d36db369lemonfiber-media-stack@57c78154bclemonfiber-media-stack@65fab1ba41lemonfiber-media-stack@ec253d72fclemonfiber-media-stack@67e7c43d66lemonfiber-media-stack@097228ff2alemonfiber-media-stack@fd952d6ed2lemonfiber-media-stack@f04d3f9ef6lemonfiber-media-stack@c1c758093dlemonfiber-media-stack@20702c4ddelemonfiber-media-stack@e071c636d5lemonfiber-media-stack@ad12175c11lemonfiber-media-stack@6bc02c5ea7lemonfiber-media-stack@4f40f42d53lemonfiber-media-stack@72249f5540lemonfiber-media-stack@229331955flemonfiber-media-stack@06d9b5cf6flemonfiber-media-stack@422ec85ed2lemonfiber-media-stack@5298e9b285lemonfiber-media-stack@4fc654fe88lemonfiber-media-stack@091492c9c1lemonfiber-media-stack@232a2ba48dlemonfiber-media-stack@7b9b03b746lemonfiber-media-stack@e275151608lemonfiber-media-stack@60ec00fb53lemonfiber-media-stack@605acfd884lemonfiber-media-stack@4c7bc56170lemonfiber-media-stack@216c0f1dbelemonfiber-media-stack@57de36ff7flemonfiber-media-stack@623aa15c3clemonfiber-media-stack@b60ea04572lemonfiber-media-stack@02407bd4dflemonfiber-media-stack@23678bee21lemonfiber-media-stack@28467ba7aelemonfiber-media-stack@e019b4e3e4
  2. E1-R2acceptedMUST

    Available updates MUST be shown with current version, target version, and the significance of the jump before anything is applied.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/run.rscrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/tests/integration/update.rs
  3. E1-R3acceptedMUST

    An update that will migrate service state MUST state that the change is irreversible before proceeding.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/run.rscrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/tests/integration/update.rs
    cited by
    lemonfiber@b2c5dd9dc4
  4. E1-R4acceptedMUST

    A backup MUST be taken automatically before any update touching service state.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/run.rscrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/tests/integration/update.rs
    cited by
    lemonfiber@a4c7d2dcce
  5. E1-R5acceptedMUST

    If the pre-update backup fails, the update MUST NOT proceed.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/run.rscrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/tests/integration/update.rs
    cited by
    lemonfiber@f09d1a1a15
  6. E1-R6acceptedMUST

    Services MUST be updated one at a time with health verified between each.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/run.rscrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/tests/integration/update.rs
    cited by
    lemonfiber@23e2c42506
  7. E1-R7acceptedMUST

    A failed update MUST halt the run and MUST report which services were and were not updated.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/run.rscrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/tests/integration/update.rs
    cited by
    lemonfiber@f09d1a1a15
  8. E1-R8acceptedMUST

    Rollback MUST be offered only where it can actually succeed; where migration has occurred, restore MUST be indicated instead.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/run.rscrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/tests/integration/update.rs
  9. E1-R9acceptedMUST

    Locally modified stack files MUST NOT be overwritten without a diff and confirmation.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/run.rscrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/tests/integration/update.rs
  10. E1-R10acceptedMUST

    Major version transitions MUST be highlighted distinctly from minor and patch updates.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/run.rscrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/tests/integration/update.rs
  11. E1-R11acceptedMUST

    Insufficient disk space MUST be detected before pulling.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/run.rscrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/tests/integration/update.rs
  12. E1-R12acceptedMUST

    Active transfers MUST be reported before an update, with an option to wait.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/run.rscrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/tests/integration/update.rs
  13. E1-R13acceptedMUST

    Individual services MUST be updatable without updating others.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/run.rscrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/tests/integration/update.rs
  14. E1-R14acceptedMUST

    lemonfiber MUST NOT repeatedly prompt an operator who has chosen to remain on current versions.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/run.rscrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-manifest/src/validate.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/tests/integration/update.rs