Merge pull request #2463 from provokateurin/feat/sd_notify

Add sd_notify support
This commit is contained in:
Herman Slatman
2025-11-12 14:39:28 +01:00
committed by GitHub
3 changed files with 13 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ import (
"strings"
"time"
"github.com/coreos/go-systemd/v22/daemon"
"github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware"
"golang.org/x/sync/errgroup"
@@ -469,8 +470,12 @@ func (ca *CA) Run() error {
return ca.srv.ListenAndServe()
})
_, _ = daemon.SdNotify(true, daemon.SdNotifyReady)
err := eg.Wait()
_, _ = daemon.SdNotify(true, daemon.SdNotifyStopping)
// if the error is not the usual HTTP server closed error, it is
// highly likely that an error occurred when starting one of the
// CA servers, possibly because of a port already being in use or
@@ -526,6 +531,8 @@ func (ca *CA) Stop() error {
// Reload reloads the configuration of the CA and calls to the server Reload
// method.
func (ca *CA) Reload() error {
_, _ = daemon.SdNotify(true, daemon.SdNotifyReloading)
cfg, err := config.LoadConfiguration(ca.opts.configFile)
if err != nil {
return fmt.Errorf("error reloading ca configuration: %w", err)
@@ -590,6 +597,9 @@ func (ca *CA) Reload() error {
ca.config = newCA.config
ca.opts = newCA.opts
ca.renewer = newCA.renewer
_, _ = daemon.SdNotify(true, daemon.SdNotifyReady)
return nil
}

1
go.mod
View File

@@ -8,6 +8,7 @@ require (
github.com/Masterminds/sprig/v3 v3.3.0
github.com/ccoveille/go-safecast/v2 v2.0.0
github.com/coreos/go-oidc/v3 v3.16.0
github.com/coreos/go-systemd/v22 v22.6.0
github.com/dgraph-io/badger v1.6.2
github.com/dgraph-io/badger/v2 v2.2007.4
github.com/fxamacker/cbor/v2 v2.9.0

2
go.sum
View File

@@ -107,6 +107,8 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz
github.com/coreos/go-oidc/v3 v3.16.0 h1:qRQUCFstKpXwmEjDQTIbyY/5jF00+asXzSkmkoa/mow=
github.com/coreos/go-oidc/v3 v3.16.0/go.mod h1:wqPbKFrVnE90vty060SB40FCJ8fTHTxSwyXJqZH+sI8=
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd/v22 v22.6.0 h1:aGVa/v8B7hpb0TKl0MWoAavPDmHvobFe5R5zn0bCJWo=
github.com/coreos/go-systemd/v22 v22.6.0/go.mod h1:iG+pp635Fo7ZmV/j14KUcmEyWF+0X7Lua8rrTWzYgWU=
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo=
github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=