trust the swarm services ca in swarm-ci-metrics
The poller's forge, authelia and collector calls go to leaves issued by the swarm's own CA, and its reqwest/rustls roots come from SSL_CERT_FILE, which the unit never set. Every pass since it was deployed fails "invalid peer certificate: UnknownIssuer" before pushing, so the CI runs dashboard has no hyperhive.ci.run.* samples (#5438). - nix/host-modules/swarm-ci-metrics.nix: import lib/hive-ca-trust.nix and register a host trustBundle for the unit, as swarm-controller does; it adds swarm-ci-metrics-ca-bundle.service and sets SSL_CERT_FILE. - nix/module-eval/ci-metrics.nix: a case asserting the unit's SSL_CERT_FILE is its bundle path when self-signed, with the bundle unit's ordering, and absent where the poller is off. - docs/swarm/ci-metrics.md: how the poller trusts the swarm's CA.
This commit is contained in:
parent
d4f3d1ef8e
commit
6630a51022
3 changed files with 51 additions and 3 deletions
|
|
@ -18,6 +18,13 @@ none of them on its host. On a host without the store, its leaf
|
|||
(`deploy.bao.ciMetricsClientCertFile` and `ciMetricsClientKeyFile`) is the one
|
||||
file to copy, as for the CI runner.
|
||||
|
||||
With a self-signed gateway, those names serve leaves the swarm's own CA issued.
|
||||
The poller reads them through `swarm-ci-metrics-ca-bundle.service`, which joins
|
||||
the system CAs and the host's `trust-bundle.pem` into
|
||||
`/run/swarm-ci-metrics-ca/trust-bundle.pem` and sets that file as the poller's
|
||||
`SSL_CERT_FILE` ([CA](ca.md#the-trust-bundle)). Without it, every pass fails
|
||||
with `invalid peer certificate: UnknownIssuer`.
|
||||
|
||||
## What it reads, and as whom
|
||||
|
||||
| what | where | identity |
|
||||
|
|
|
|||
Loading…
Reference in a new issue