port TLS/SSL handling to the contracts.ssl contract #1041

Merged
kiara merged 18 commits from kiara/fediversity:ssl-contract into main 2026-06-05 16:12:16 +02:00
Owner

Part of #314.

Follow-ups:

Part of #314. Follow-ups: - cover non-operator groups (#370) - use openbao's [PKI secrets engine](https://openbao.org/docs/secrets/pki/)
kiara force-pushed ssl-contract from 206c0e9d78
Some checks failed
checks-api-asyncapi-validate / api-asyncapi-validate (pull_request) Successful in 32s
Nix flake completeness check / _complete (pull_request) Successful in 35s
checks-api-docs / api-docs (pull_request) Successful in 20s
checks-api-http / api-http (pull_request) Successful in 48s
checks-api-openapi-validate / api-openapi-validate (pull_request) Successful in 7s
checks-api-python-tests / api-python-tests (pull_request) Successful in 6s
checks-apps-api / apps-api (pull_request) Failing after 1m6s
checks-apps-panel / apps-panel (pull_request) Failing after 31s
checks-apps-tf-incus / apps-tf-incus (pull_request) Failing after 28s
checks-deployment-ssh-hosts / deployment-ssh-hosts (pull_request) Failing after 14s
checks-deployment-tf-hosts / deployment-tf-hosts (pull_request) Failing after 19s
checks-deployment-tf-incus-hosts / deployment-tf-incus-hosts (pull_request) Failing after 27s
checks-deployment-nixos-hosts / deployment-nixos-hosts (pull_request) Successful in 3m51s
checks-integrations-spire-openbao / integrations-spire-openbao (pull_request) Successful in 1m12s
checks-integrations-octodns / integrations-octodns (pull_request) Successful in 4m5s
checks-panel-migrations / panel-migrations (pull_request) Successful in 19s
checks-pre-commit / pre-commit (pull_request) Successful in 11s
checks-test-mastodon-service / test-mastodon-service (pull_request) Successful in 17s
checks-test-netbox-service / test-netbox-service (pull_request) Successful in 17s
checks-panel-basic / panel-basic (pull_request) Successful in 1m18s
checks-test-otel-wiring / test-otel-wiring (pull_request) Successful in 9s
checks-test-pixelfed-service / test-pixelfed-service (pull_request) Successful in 16s
devShells-default / default (pull_request) Successful in 9s
flake-show / apps-ssh (pull_request) Successful in 1m32s
nix-unit-effects-common-lib / effects-common-lib (pull_request) Successful in 13s
nix-unit-effects-tf-common-conversion / effects-tf-common-conversion (pull_request) Successful in 6s
nix-unit-lib-data-model / lib-data-model (pull_request) Successful in 6s
nix-unit-lib-function / lib-function (pull_request) Successful in 6s
nix-unit-lib-lib / lib-lib (pull_request) Successful in 7s
nix-unit-resources-otel / resources-otel (pull_request) Successful in 11s
nixosConfigurations-dev-combined / dev-combined (pull_request) Successful in 3s
nixosConfigurations-dev-forgejo-runner / dev-forgejo-runner (pull_request) Successful in 3s
nixosConfigurations-dev-forgejo / dev-forgejo (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-api / hosting-provider-api (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-combined / hosting-provider-combined (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-incus / hosting-provider-incus (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-netbox / hosting-provider-netbox (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-openbao / hosting-provider-openbao (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-otel-collector / hosting-provider-otel-collector (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-panel / hosting-provider-panel (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-spire / hosting-provider-spire (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-terraform-backend / hosting-provider-terraform-backend (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-windmill / hosting-provider-windmill (pull_request) Successful in 3s
checks-apps-tf / apps-tf (pull_request) Successful in 53m38s
nixosConfigurations-operator-authelia / operator-authelia (pull_request) Successful in 3s
nixosConfigurations-operator-combined / operator-combined (pull_request) Successful in 3s
nixosConfigurations-operator-garage / operator-garage (pull_request) Successful in 3s
nixosConfigurations-operator-mastodon / operator-mastodon (pull_request) Successful in 3s
nixosConfigurations-operator-peertube / operator-peertube (pull_request) Successful in 3s
nixosConfigurations-operator-pixelfed / operator-pixelfed (pull_request) Successful in 3s
checks-test-peertube-service / test-peertube-service (pull_request) Failing after 7m37s
to d19a7dbb59
Some checks failed
checks-api-asyncapi-validate / api-asyncapi-validate (pull_request) Successful in 7s
checks-api-docs / api-docs (pull_request) Successful in 6s
Nix flake completeness check / _complete (pull_request) Successful in 21s
checks-api-http / api-http (pull_request) Successful in 8s
checks-api-openapi-validate / api-openapi-validate (pull_request) Successful in 5s
checks-api-python-tests / api-python-tests (pull_request) Successful in 5s
checks-apps-api / apps-api (pull_request) Failing after 28s
checks-apps-panel / apps-panel (pull_request) Failing after 30s
checks-apps-tf-incus / apps-tf-incus (pull_request) Failing after 28s
checks-apps-tf / apps-tf (pull_request) Successful in 56s
checks-deployment-nixos-hosts / deployment-nixos-hosts (pull_request) Successful in 25s
checks-deployment-ssh-hosts / deployment-ssh-hosts (pull_request) Failing after 12s
checks-deployment-tf-hosts / deployment-tf-hosts (pull_request) Failing after 18s
checks-deployment-tf-incus-hosts / deployment-tf-incus-hosts (pull_request) Failing after 25s
checks-integrations-octodns / integrations-octodns (pull_request) Successful in 27s
checks-integrations-spire-openbao / integrations-spire-openbao (pull_request) Successful in 11s
checks-panel-basic / panel-basic (pull_request) Successful in 9s
checks-panel-migrations / panel-migrations (pull_request) Successful in 5s
checks-pre-commit / pre-commit (pull_request) Successful in 7s
checks-test-mastodon-service / test-mastodon-service (pull_request) Successful in 16s
checks-test-netbox-service / test-netbox-service (pull_request) Successful in 17s
checks-test-otel-wiring / test-otel-wiring (pull_request) Successful in 8s
checks-test-peertube-service / test-peertube-service (pull_request) Successful in 2m19s
checks-test-pixelfed-service / test-pixelfed-service (pull_request) Successful in 15s
devShells-default / default (pull_request) Successful in 9s
flake-show / apps-ssh (pull_request) Successful in 1m26s
nix-unit-effects-common-lib / effects-common-lib (pull_request) Successful in 12s
nix-unit-effects-tf-common-conversion / effects-tf-common-conversion (pull_request) Successful in 13s
nix-unit-lib-data-model / lib-data-model (pull_request) Successful in 12s
nix-unit-lib-function / lib-function (pull_request) Successful in 6s
nix-unit-lib-lib / lib-lib (pull_request) Successful in 6s
nix-unit-resources-otel / resources-otel (pull_request) Successful in 10s
nixosConfigurations-dev-combined / dev-combined (pull_request) Successful in 3s
nixosConfigurations-dev-forgejo-runner / dev-forgejo-runner (pull_request) Successful in 3s
nixosConfigurations-dev-forgejo / dev-forgejo (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-api / hosting-provider-api (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-combined / hosting-provider-combined (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-incus / hosting-provider-incus (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-netbox / hosting-provider-netbox (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-openbao / hosting-provider-openbao (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-otel-collector / hosting-provider-otel-collector (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-panel / hosting-provider-panel (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-spire / hosting-provider-spire (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-terraform-backend / hosting-provider-terraform-backend (pull_request) Successful in 3s
nixosConfigurations-hosting-provider-windmill / hosting-provider-windmill (pull_request) Successful in 3s
nixosConfigurations-operator-authelia / operator-authelia (pull_request) Successful in 3s
nixosConfigurations-operator-combined / operator-combined (pull_request) Successful in 3s
nixosConfigurations-operator-garage / operator-garage (pull_request) Successful in 3s
nixosConfigurations-operator-mastodon / operator-mastodon (pull_request) Successful in 3s
nixosConfigurations-operator-peertube / operator-peertube (pull_request) Successful in 3s
nixosConfigurations-operator-pixelfed / operator-pixelfed (pull_request) Successful in 3s
2026-06-05 00:37:47 +02:00
Compare
kiara force-pushed ssl-contract from 8f364d8a34
Some checks failed
checks-api-asyncapi-validate / api-asyncapi-validate (pull_request) Successful in 8s
checks-api-docs / api-docs (pull_request) Successful in 8s
checks-api-openapi-validate / api-openapi-validate (pull_request) Successful in 5s
checks-api-python-tests / api-python-tests (pull_request) Successful in 5s
Nix flake completeness check / _complete (pull_request) Successful in 22s
checks-api-http / api-http (pull_request) Successful in 42s
checks-deployment-nixos-hosts / deployment-nixos-hosts (pull_request) Successful in 27s
checks-deployment-tf-hosts / deployment-tf-hosts (pull_request) Has been cancelled
checks-deployment-tf-incus-hosts / deployment-tf-incus-hosts (pull_request) Has been cancelled
checks-integrations-octodns / integrations-octodns (pull_request) Has been cancelled
checks-integrations-spire-openbao / integrations-spire-openbao (pull_request) Has been cancelled
checks-deployment-ssh-hosts / deployment-ssh-hosts (pull_request) Has been cancelled
checks-panel-basic / panel-basic (pull_request) Has been cancelled
checks-test-mastodon-service / test-mastodon-service (pull_request) Has been cancelled
checks-apps-tf-incus / apps-tf-incus (pull_request) Has been cancelled
checks-apps-tf / apps-tf (pull_request) Has been cancelled
checks-test-otel-wiring / test-otel-wiring (pull_request) Has been cancelled
checks-test-peertube-service / test-peertube-service (pull_request) Has been cancelled
checks-apps-panel / apps-panel (pull_request) Has been cancelled
checks-test-pixelfed-service / test-pixelfed-service (pull_request) Has been cancelled
checks-apps-api / apps-api (pull_request) Has been cancelled
devShells-default / default (pull_request) Has been cancelled
flake-show / apps-ssh (pull_request) Has been cancelled
nix-unit-effects-common-lib / effects-common-lib (pull_request) Has been cancelled
nix-unit-effects-tf-common-conversion / effects-tf-common-conversion (pull_request) Has been cancelled
nix-unit-lib-data-model / lib-data-model (pull_request) Has been cancelled
nix-unit-lib-function / lib-function (pull_request) Has been cancelled
nix-unit-lib-lib / lib-lib (pull_request) Has been cancelled
nix-unit-resources-otel / resources-otel (pull_request) Has been cancelled
nixosConfigurations-dev-forgejo-runner / dev-forgejo-runner (pull_request) Has been cancelled
nixosConfigurations-dev-forgejo / dev-forgejo (pull_request) Has been cancelled
nixosConfigurations-hosting-provider-api / hosting-provider-api (pull_request) Has been cancelled
nixosConfigurations-hosting-provider-incus / hosting-provider-incus (pull_request) Has been cancelled
nixosConfigurations-hosting-provider-netbox / hosting-provider-netbox (pull_request) Has been cancelled
nixosConfigurations-hosting-provider-openbao / hosting-provider-openbao (pull_request) Has been cancelled
nixosConfigurations-hosting-provider-otel-collector / hosting-provider-otel-collector (pull_request) Has been cancelled
nixosConfigurations-hosting-provider-panel / hosting-provider-panel (pull_request) Has been cancelled
nixosConfigurations-hosting-provider-spire / hosting-provider-spire (pull_request) Has been cancelled
nixosConfigurations-hosting-provider-terraform-backend / hosting-provider-terraform-backend (pull_request) Has been cancelled
nixosConfigurations-hosting-provider-windmill / hosting-provider-windmill (pull_request) Has been cancelled
nixosConfigurations-operator-authelia / operator-authelia (pull_request) Has been cancelled
nixosConfigurations-operator-combined / operator-combined (pull_request) Has been cancelled
nixosConfigurations-operator-garage / operator-garage (pull_request) Has been cancelled
nixosConfigurations-operator-mastodon / operator-mastodon (pull_request) Has been cancelled
nixosConfigurations-operator-peertube / operator-peertube (pull_request) Has been cancelled
nixosConfigurations-operator-pixelfed / operator-pixelfed (pull_request) Has been cancelled
nixosConfigurations-dev-combined / dev-combined (pull_request) Failing after 3s
nixosConfigurations-hosting-provider-combined / hosting-provider-combined (pull_request) Failing after 4s
checks-panel-migrations / panel-migrations (pull_request) Successful in 6s
checks-pre-commit / pre-commit (pull_request) Successful in 12s
checks-test-netbox-service / test-netbox-service (pull_request) Successful in 20s
to 8c329efb37
Some checks failed
Nix flake completeness check / _complete (pull_request) Successful in 23s
checks-deployment-nixos-hosts / deployment-nixos-hosts (pull_request) Successful in 1m11s
checks-deployment-ssh-hosts / deployment-ssh-hosts (pull_request) Successful in 15m40s
checks-docs / docs (pull_request) Successful in 3m10s
checks-integrations-spire-openbao / integrations-spire-openbao (pull_request) Successful in 12s
checks-deployment-tf-hosts / deployment-tf-hosts (pull_request) Successful in 18m47s
checks-test-mastodon-service / test-mastodon-service (pull_request) Successful in 19s
checks-test-otel-wiring / test-otel-wiring (pull_request) Successful in 10s
checks-integrations-octodns / integrations-octodns (pull_request) Successful in 1m23s
checks-panel-basic / panel-basic (pull_request) Successful in 1m21s
checks-test-pixelfed-service / test-pixelfed-service (pull_request) Successful in 19s
checks-treefmt / treefmt (pull_request) Successful in 9s
devShells-default / default (pull_request) Successful in 13s
nix-unit-effects-common-lib / effects-common-lib (pull_request) Successful in 22s
nix-unit-effects-tf-common-conversion / effects-tf-common-conversion (pull_request) Successful in 17s
nix-unit-lib-data-model / lib-data-model (pull_request) Successful in 7s
nix-unit-lib-function / lib-function (pull_request) Successful in 7s
nix-unit-lib-lib / lib-lib (pull_request) Successful in 7s
flake-show / apps-ssh (pull_request) Successful in 1m44s
checks-test-peertube-service / test-peertube-service (pull_request) Successful in 2m30s
nixosConfigurations-operator-authelia / operator-authelia (pull_request) Successful in 4s
nixosConfigurations-operator-combined / operator-combined (pull_request) Successful in 4s
nixosConfigurations-operator-garage / operator-garage (pull_request) Successful in 4s
nixosConfigurations-operator-mastodon / operator-mastodon (pull_request) Successful in 4s
nixosConfigurations-operator-peertube / operator-peertube (pull_request) Successful in 4s
nixosConfigurations-operator-pixelfed / operator-pixelfed (pull_request) Successful in 4s
checks-apps-tf-incus / apps-tf-incus (pull_request) Successful in 26m37s
checks-apps-api / apps-api (pull_request) Successful in 27m17s
checks-apps-panel / apps-panel (pull_request) Successful in 37m59s
checks-apps-tf / apps-tf (pull_request) Successful in 39m15s
nixosConfigurations-dev-forgejo-runner / dev-forgejo-runner (pull_request) Failing after 3s
nixosConfigurations-dev-forgejo / dev-forgejo (pull_request) Failing after 3s
nixosConfigurations-hosting-provider-api / hosting-provider-api (pull_request) Failing after 4s
nixosConfigurations-hosting-provider-incus / hosting-provider-incus (pull_request) Failing after 3s
nixosConfigurations-hosting-provider-netbox / hosting-provider-netbox (pull_request) Failing after 3s
nixosConfigurations-hosting-provider-openbao / hosting-provider-openbao (pull_request) Failing after 4s
nixosConfigurations-hosting-provider-otel-collector / hosting-provider-otel-collector (pull_request) Failing after 4s
nixosConfigurations-hosting-provider-panel / hosting-provider-panel (pull_request) Failing after 3s
nixosConfigurations-hosting-provider-spire / hosting-provider-spire (pull_request) Failing after 4s
nixosConfigurations-hosting-provider-terraform-backend / hosting-provider-terraform-backend (pull_request) Failing after 3s
nixosConfigurations-hosting-provider-windmill / hosting-provider-windmill (pull_request) Failing after 3s
nix-unit-resources-otel / resources-otel (pull_request) Failing after 26s
checks-deployment-tf-incus-hosts / deployment-tf-incus-hosts (pull_request) Successful in 25m27s
2026-06-05 14:16:42 +02:00
Compare
gate garage cross-node trust on a garage node being deployed
All checks were successful
Nix flake completeness check / _complete (pull_request) Successful in 23s
checks-deployment-nixos-hosts / deployment-nixos-hosts (pull_request) Successful in 28s
checks-deployment-ssh-hosts / deployment-ssh-hosts (pull_request) Successful in 15m28s
checks-integrations-octodns / integrations-octodns (pull_request) Successful in 39s
checks-integrations-spire-openbao / integrations-spire-openbao (pull_request) Successful in 12s
checks-panel-basic / panel-basic (pull_request) Successful in 1m19s
checks-test-mastodon-service / test-mastodon-service (pull_request) Successful in 19s
checks-test-otel-wiring / test-otel-wiring (pull_request) Successful in 11s
checks-test-peertube-service / test-peertube-service (pull_request) Successful in 20s
checks-docs / docs (pull_request) Successful in 3m10s
checks-treefmt / treefmt (pull_request) Successful in 9s
checks-test-pixelfed-service / test-pixelfed-service (pull_request) Successful in 18s
checks-deployment-tf-hosts / deployment-tf-hosts (pull_request) Successful in 18m53s
devShells-default / default (pull_request) Successful in 12s
nix-unit-effects-common-lib / effects-common-lib (pull_request) Successful in 9s
nix-unit-effects-tf-common-conversion / effects-tf-common-conversion (pull_request) Successful in 16s
nix-unit-lib-data-model / lib-data-model (pull_request) Successful in 16s
nix-unit-lib-lib / lib-lib (pull_request) Successful in 7s
nix-unit-lib-function / lib-function (pull_request) Successful in 16s
nixosConfigurations-dev-forgejo-runner / dev-forgejo-runner (pull_request) Successful in 4s
nixosConfigurations-dev-forgejo / dev-forgejo (pull_request) Successful in 4s
nix-unit-resources-otel / resources-otel (pull_request) Successful in 14s
nixosConfigurations-hosting-provider-api / hosting-provider-api (pull_request) Successful in 4s
nixosConfigurations-hosting-provider-incus / hosting-provider-incus (pull_request) Successful in 4s
nixosConfigurations-hosting-provider-netbox / hosting-provider-netbox (pull_request) Successful in 4s
nixosConfigurations-hosting-provider-openbao / hosting-provider-openbao (pull_request) Successful in 4s
nixosConfigurations-hosting-provider-otel-collector / hosting-provider-otel-collector (pull_request) Successful in 4s
nixosConfigurations-hosting-provider-panel / hosting-provider-panel (pull_request) Successful in 4s
nixosConfigurations-hosting-provider-spire / hosting-provider-spire (pull_request) Successful in 4s
nixosConfigurations-hosting-provider-terraform-backend / hosting-provider-terraform-backend (pull_request) Successful in 4s
nixosConfigurations-hosting-provider-windmill / hosting-provider-windmill (pull_request) Successful in 4s
nixosConfigurations-operator-authelia / operator-authelia (pull_request) Successful in 4s
nixosConfigurations-operator-combined / operator-combined (pull_request) Successful in 4s
nixosConfigurations-operator-garage / operator-garage (pull_request) Successful in 4s
nixosConfigurations-operator-mastodon / operator-mastodon (pull_request) Successful in 4s
nixosConfigurations-operator-peertube / operator-peertube (pull_request) Successful in 4s
nixosConfigurations-operator-pixelfed / operator-pixelfed (pull_request) Successful in 4s
flake-show / apps-ssh (pull_request) Successful in 1m44s
checks-deployment-tf-incus-hosts / deployment-tf-incus-hosts (pull_request) Successful in 24m22s
checks-apps-tf-incus / apps-tf-incus (pull_request) Successful in 26m0s
checks-apps-api / apps-api (pull_request) Successful in 27m7s
checks-apps-panel / apps-panel (pull_request) Successful in 38m9s
checks-apps-tf / apps-tf (pull_request) Successful in 42m6s
e684cf5c02
The cross-node trust addition forced `garage.sslDomains` for every
non-garage node, and `garage.sslDomains` always references the garage
`domain` (`s3.${domain}`, `web.${domain}`). Groups without a garage
ancilliary (`hosting-provider`, `dev`) do not set `domain` in their
`default-config`, so building their `nixosConfigurations.*` toplevels
threw `attribute 'domain' missing`.

Gate `garageTrustDomains` on `ancilliaryHosts ? garage`, the same test
the node's `/etc/hosts` garage wiring already uses: a node only needs to
trust the garage certs when there is a garage node to trust. Groups with
a garage ancilliary (`operator`) are unaffected and keep baking the
trust bundle.

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Kiara Grouwstra <kiara@procolix.eu>
kiara changed title from WIP: port TLS/SSL handling to the contracts.ssl contract to port TLS/SSL handling to the contracts.ssl contract 2026-06-05 16:12:00 +02:00
kiara merged commit 827048f5e6 into main 2026-06-05 16:12:16 +02:00
kiara deleted branch ssl-contract 2026-06-05 16:12:16 +02:00
Sign in to join this conversation.
No reviewers
fediversity/developers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
fediversity/fediversity!1041
No description provided.