FSKY Foundry is now Gitfield. All users, organizations, repos, and other things remain. Update your remote URLs, container image tags, and logins from foundry.fsky.io to gitfield.org.
Reconciliation treats an existing, unexpired leaf as current without comparing its SANs (or issuer identity) to the desired configuration. Reproduced with a local CA: issue for old.internal.example, change the config to new.internal.example, then run plan and apply; both report no changes and the stored cert still contains the old SAN.
Relevant code: internal/renew/renew.go:38-59 decides from unreadability and expiry/ARI; internal/plan/plan.go:93-114 uses that decision to plan issuance.
Make currentness account for the configured certificate identity and issuer, not only the current leaf's expiry. A changed SAN set must trigger replacement (or an explicit actionable incompatibility error), including for local CA certificates.
Acceptance: regression test issues/loads a leaf whose SAN set differs from config and proves plan reports replacement and apply produces a leaf covering the configured names; an unchanged matching leaf remains a no-op.
Reconciliation treats an existing, unexpired leaf as current without comparing its SANs (or issuer identity) to the desired configuration. Reproduced with a local CA: issue for `old.internal.example`, change the config to `new.internal.example`, then run `plan` and `apply`; both report no changes and the stored cert still contains the old SAN.
Relevant code: `internal/renew/renew.go:38-59` decides from unreadability and expiry/ARI; `internal/plan/plan.go:93-114` uses that decision to plan issuance.
Make currentness account for the configured certificate identity and issuer, not only the current leaf's expiry. A changed SAN set must trigger replacement (or an explicit actionable incompatibility error), including for local CA certificates.
Acceptance: regression test issues/loads a leaf whose SAN set differs from config and proves `plan` reports replacement and `apply` produces a leaf covering the configured names; an unchanged matching leaf remains a no-op.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Reconciliation treats an existing, unexpired leaf as current without comparing its SANs (or issuer identity) to the desired configuration. Reproduced with a local CA: issue for
old.internal.example, change the config tonew.internal.example, then runplanandapply; both report no changes and the stored cert still contains the old SAN.Relevant code:
internal/renew/renew.go:38-59decides from unreadability and expiry/ARI;internal/plan/plan.go:93-114uses that decision to plan issuance.Make currentness account for the configured certificate identity and issuer, not only the current leaf's expiry. A changed SAN set must trigger replacement (or an explicit actionable incompatibility error), including for local CA certificates.
Acceptance: regression test issues/loads a leaf whose SAN set differs from config and proves
planreports replacement andapplyproduces a leaf covering the configured names; an unchanged matching leaf remains a no-op.