Decision note 0046: Keel Cloud, version 1 scope (proposed) #39

Open
marcos-mendez wants to merge 1 commit from docs/decision-0046-keel-cloud-v1 into docs/decisions-0044-0045-web-cloud-dns
marcos-mendez commented 2026-10-02 10:08:29 -03:00 (Migrated from github.com)

Decision note 0046, proposed: the version 1 scope of Keel Cloud, which 0020 said "starts with its own decision note". Design only: no service code, no new repository, not for merging until the maintainer decides it.

Stacked on #38 (it builds on 0044 and 0045); the base moves to main when #38 merges.

What it defines:

  • Keel Cloud as a separate, self-hostable service that coordinates nodes the operator owns, never required (0020's standalone parity, with a table of the standalone equivalent of each feature).
  • The API key: identifies an account, offered at installation, stored as a 0600 secret file referenced by a new cloud section of the spec.
  • Three version 1 services: membership and key exchange, DNS with a health check through Keel DNS zones (0045), a read-only registry view from etcd (0025) and Monit (0040).
  • What version 1 is not: no orchestration, no backup, no traffic relay, no remote configuration.
  • Architecture on Keel appliances (Keel DNS, etcd, Keel Web, a Python API), packaged as .deb (0039), HA across three sites, IPv6 first and TLS only.
  • Trust model: entry secret proofs Keel Cloud relays but cannot forge, peers pinned per set, operator confirmation of new peers, CAA against DNS-01 abuse.
  • The self-hosted path, phases A to C with done criteria and their place in tracker#46, and eight open questions with recommendations.

The three-part justification of brief section 10 is in "Why a note, and why now", since 0024 to 0026 had moved membership and discovery to the nodes.

The IPv4 front door idea of the maintainer is recorded as a proposed addendum to 0044, in #38.

Decision note 0046, **proposed**: the version 1 scope of Keel Cloud, which 0020 said "starts with its own decision note". Design only: no service code, no new repository, not for merging until the maintainer decides it. Stacked on #38 (it builds on 0044 and 0045); the base moves to `main` when #38 merges. What it defines: - Keel Cloud as a separate, self-hostable service that coordinates nodes the operator owns, never required (0020's standalone parity, with a table of the standalone equivalent of each feature). - The API key: identifies an account, offered at installation, stored as a 0600 secret file referenced by a new `cloud` section of the spec. - Three version 1 services: membership and key exchange, DNS with a health check through Keel DNS zones (0045), a read-only registry view from etcd (0025) and Monit (0040). - What version 1 is not: no orchestration, no backup, no traffic relay, no remote configuration. - Architecture on Keel appliances (Keel DNS, etcd, Keel Web, a Python API), packaged as `.deb` (0039), HA across three sites, IPv6 first and TLS only. - Trust model: entry secret proofs Keel Cloud relays but cannot forge, peers pinned per set, operator confirmation of new peers, CAA against DNS-01 abuse. - The self-hosted path, phases A to C with done criteria and their place in tracker#46, and eight open questions with recommendations. The three-part justification of brief section 10 is in "Why a note, and why now", since 0024 to 0026 had moved membership and discovery to the nodes. The IPv4 front door idea of the maintainer is recorded as a proposed addendum to 0044, in #38.
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin docs/decision-0046-keel-cloud-v1:docs/decision-0046-keel-cloud-v1
git switch docs/decision-0046-keel-cloud-v1

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch docs/decisions-0044-0045-web-cloud-dns
git merge --no-ff docs/decision-0046-keel-cloud-v1
git switch docs/decision-0046-keel-cloud-v1
git rebase docs/decisions-0044-0045-web-cloud-dns
git switch docs/decisions-0044-0045-web-cloud-dns
git merge --ff-only docs/decision-0046-keel-cloud-v1
git switch docs/decision-0046-keel-cloud-v1
git rebase docs/decisions-0044-0045-web-cloud-dns
git switch docs/decisions-0044-0045-web-cloud-dns
git merge --no-ff docs/decision-0046-keel-cloud-v1
git switch docs/decisions-0044-0045-web-cloud-dns
git merge --squash docs/decision-0046-keel-cloud-v1
git switch docs/decisions-0044-0045-web-cloud-dns
git merge --ff-only docs/decision-0046-keel-cloud-v1
git switch docs/decisions-0044-0045-web-cloud-dns
git merge docs/decision-0046-keel-cloud-v1
git push origin docs/decisions-0044-0045-web-cloud-dns
Sign in to join this conversation.
No description provided.