WIP: feat: the spec's cloud section and keel cloud (0046) #68

Draft
marcos-mendez wants to merge 3 commits from feat/spec-cloud-section into main
marcos-mendez commented 2026-10-02 11:02:16 -03:00 (Migrated from github.com)

The spec gains a cloud section for Keel Cloud (handbook decision 0046, proposed in handbook#39), additive under version: 1, and keel cloud runs Keel Cloud's node agent from the keel-overlay-cloud package of Keel-Linux/keel-cloud.

  • cloud.endpoint (https only, no path), cloud.api_key (skip or a file reference), cloud.entry_secret (a file reference), cloud.set (a DNS label, required with a key), cloud.ca_file. Secrets are file references only, never generate.
  • keel only validates it; diff reports cloud: not compared. The agent writes network.overlay.wireguard.peers, which spec apply --system converges and diff compares as before.
  • keel cloud ... execs keel-cloud-node ...; without the package it says which package and exits 9.
  • 0.16.0, changelog, docs/spec.md "cloud", README.

Tests: tests/test_spec_cloud.py; the full suite passes locally at 99.8 percent. Used in the real test of keel-cloud's Phase A on the test VM (two Keel Core containers with this keel brought the overlay up through Keel Cloud).

Test plan

  • CI green
  • Merged before keel-overlay-cloud is published, which depends on keel >= 0.16.0
The spec gains a `cloud` section for Keel Cloud (handbook decision 0046, proposed in handbook#39), additive under `version: 1`, and `keel cloud` runs Keel Cloud's node agent from the `keel-overlay-cloud` package of Keel-Linux/keel-cloud. - `cloud.endpoint` (https only, no path), `cloud.api_key` (`skip` or a file reference), `cloud.entry_secret` (a file reference), `cloud.set` (a DNS label, required with a key), `cloud.ca_file`. Secrets are file references only, never `generate`. - keel only validates it; `diff` reports `cloud: not compared`. The agent writes `network.overlay.wireguard.peers`, which `spec apply --system` converges and `diff` compares as before. - `keel cloud ...` execs `keel-cloud-node ...`; without the package it says which package and exits 9. - 0.16.0, changelog, docs/spec.md "cloud", README. Tests: `tests/test_spec_cloud.py`; the full suite passes locally at 99.8 percent. Used in the real test of keel-cloud's Phase A on the test VM (two Keel Core containers with this keel brought the overlay up through Keel Cloud). ## Test plan - [ ] CI green - [ ] Merged before keel-overlay-cloud is published, which depends on keel >= 0.16.0
marcos-mendez commented 2026-10-02 11:56:08 -03:00 (Migrated from github.com)

Paused by the maintainer (2026-10-02) until the etcd mesh (Phase 5 of tracker#46: registry, install by discovery, three nodes without Keel Cloud) is stable. Then the node-side client ships in images, small and disabled, and is enabled later through apt update and apt upgrade. Needs an independent security review before merge.

Paused by the maintainer (2026-10-02) until the etcd mesh (Phase 5 of tracker#46: registry, install by discovery, three nodes without Keel Cloud) is stable. Then the node-side client ships in images, small and disabled, and is enabled later through apt update and apt upgrade. Needs an independent security review before merge.
This pull request has changes conflicting with the target branch.
  • README.md
  • debian/changelog
  • keel/__init__.py
  • keel/cli.py
  • pyproject.toml
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/spec-cloud-section:feat/spec-cloud-section
git switch feat/spec-cloud-section
Sign in to join this conversation.
No description provided.