Skip to content

Converge one Domain in domains.yml and record the previous vhost hash (S-004-2, 11, 12, 13, 17) #116

Closed

Description

@shipmill-romamo

Builds part of spec S-004, docs/specs/004-domains-apply.md (feature issue #87): the acceptance criteria below. Each needs a test that names its id (test_s004_<k>_..., or a proves: S-004-2 comment line).

This is the engine side: domains.yml limited to one Domain, and the receipt's previousConfigurationSha256.

  • S-004-2: With Domains d1 and d2 both proxied on a, domains apply d1 --yes renders only d1's proxy.configurationPath, and d2's vhost file and receipt are unchanged
  • S-004-11: A domains.yml run on a proxy server with a hand-written file at proxy.configurationPath writes a receipt whose previousConfigurationSha256 is that file's sha256, and a run with no file there writes null
  • S-004-12: A DeploymentReceipt without previousConfigurationSha256 still loads in services status
  • S-004-13: A vhost that nginx -t rejects makes domains apply <d> --yes exit ENGINE_STEP_FAILED
  • S-004-17: The converge_domains tool called with domain: <d> runs only on d's proxy server and renders only d, called without domain runs on every server in cloudfall_servers as before, and called with an unknown domain exits PRECONDITION

Activity

  1. shipmill-romamo commented on Oct 27, 2026

    @shipmill-romamo
    ContributorAuthor

    Triage: implement, for the next release candidate.

    The plan: build the criteria listed in the body, as docs/specs/004-domains-apply.md (S-004, approved in #100) says, each with a test that names its id. A departure from a criterion goes back as a question, never a quiet change. Build issues start in order: this one starts once every issue on its Depends on lines has closed. I'll link the PR here.

  2. shipmill-romamo commented on Oct 27, 2026

    @shipmill-romamo
    ContributorAuthor

    The build is in #133: domains.yml can render one Domain, the converge_domains tool takes an optional domain and runs only on its proxy server, and every domain receipt records previousConfigurationSha256 (optional, so older receipts still load). Without domain, the tool runs exactly as before. Proven with engine tests; no live nginx run yet. This issue closes when #133 merges.

  3. added a commit that references this issue on Oct 27, 2026
    b59c591
  4. shipmill-romamo commented on Oct 27, 2026

    @shipmill-romamo
    ContributorAuthor

    Released in v0.8.0rc6 (pre-release). uv tool install --prerelease allow cloudfall==0.8.0rc6
    A plain install gets it with the next stable release.
    If you filed this: react 👍 on this comment once it works for you, or reply if it doesn't.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions