Skip to content

Commit

Permalink
Adopt healthchecks
Browse files Browse the repository at this point in the history
  • Loading branch information
majst01 committed Feb 11, 2025
1 parent e42bbc3 commit db23c1c
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 68 deletions.
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ require (
github.com/google/uuid v1.6.0
github.com/klauspost/connect-compress/v2 v2.0.0
github.com/lestrrat-go/jwx/v2 v2.1.3
github.com/metal-stack/api v0.0.0-20250210064220-af29112e1145
github.com/metal-stack/api v0.0.0-20250211071026-5b30e480db1b
github.com/metal-stack/go-ipam v1.14.8
github.com/metal-stack/masterdata-api v0.11.5
github.com/metal-stack/metal-go v0.39.7
Expand Down Expand Up @@ -172,7 +172,7 @@ require (
go.uber.org/zap v1.27.0 // indirect
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
golang.org/x/crypto v0.33.0 // indirect
golang.org/x/exp v0.0.0-20250207012021-f9890c6ad9f3 // indirect
golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac // indirect
golang.org/x/sys v0.30.0 // indirect
golang.org/x/text v0.22.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250207221924-e9438ea467c6 // indirect
Expand Down
16 changes: 8 additions & 8 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -247,8 +247,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o
github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/meilisearch/meilisearch-go v0.27.2 h1:3G21dJ5i208shnLPDsIEZ0L0Geg/5oeXABFV7nlK94k=
github.com/meilisearch/meilisearch-go v0.27.2/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0=
github.com/metal-stack/api v0.0.0-20250210064220-af29112e1145 h1:gKh6V4KpkUJdv47ubBMLF5P6D52wSnEdzJnhXemeZtc=
github.com/metal-stack/api v0.0.0-20250210064220-af29112e1145/go.mod h1:YaQlRS64oa6gRk2QEuT7cEAcspDF8W4YSHi5ttSxFuk=
github.com/metal-stack/api v0.0.0-20250211071026-5b30e480db1b h1:DvxSj0zVTdY5VkGw4PQPnTmOrB7DrQUa/Wb2vOJR8aM=
github.com/metal-stack/api v0.0.0-20250211071026-5b30e480db1b/go.mod h1:LT6ZfNbpuDOcSS0KJFuFMyaWhHNDTESFsGLxr+kjX+w=
github.com/metal-stack/go-ipam v1.14.8 h1:M840hp1RcM2fHfMjFG5rn02yKFq6hXh+WvmYISxvnwA=
github.com/metal-stack/go-ipam v1.14.8/go.mod h1:LzAKT0X9dGAMs1uoLyJfJZkhwMMDLaSYvx9n6MJ9FI4=
github.com/metal-stack/masterdata-api v0.11.5 h1:r7bYdhdVgOjCk6k7K/SCLlHALH23ZuMGY8E4udk4wXQ=
Expand Down Expand Up @@ -450,13 +450,13 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus=
golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M=
golang.org/x/exp v0.0.0-20250207012021-f9890c6ad9f3 h1:qNgPs5exUA+G0C96DrPwNrvLSj7GT/9D+3WMWUcUg34=
golang.org/x/exp v0.0.0-20250207012021-f9890c6ad9f3/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU=
golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac h1:l5+whBCLH3iH2ZNHYLbAe58bo7yrN4mVcnkHDYz5vvs=
golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac/go.mod h1:hH+7mtFmImwwcMvScyxUhjuVHR3HGaDPMn9rMSUUbxo=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM=
golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
Expand Down Expand Up @@ -514,8 +514,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY=
golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
Expand Down
9 changes: 5 additions & 4 deletions pkg/service/health/health-service.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"connectrpc.com/connect"
apiv1 "github.com/metal-stack/api/go/metalstack/api/v2"
"github.com/metal-stack/api/go/metalstack/api/v2/apiv2connect"
metalgo "github.com/metal-stack/metal-go"
ipamv1connect "github.com/metal-stack/go-ipam/api/v1/apiv1connect"
"golang.org/x/sync/errgroup"
)

Expand All @@ -25,8 +25,8 @@ type healthchecker interface {
type Config struct {
Log *slog.Logger
Ctx context.Context
MetalClient metalgo.Client
HealthcheckInterval time.Duration
Ipam ipamv1connect.IpamServiceClient
}

type healthServiceServer struct {
Expand All @@ -38,8 +38,9 @@ type healthServiceServer struct {

func New(c Config) (apiv2connect.HealthServiceHandler, error) {
var checkers []healthchecker
if c.MetalClient != nil {
checkers = append(checkers, &machineHealthChecker{m: c.MetalClient})

if c.Ipam != nil {
checkers = append(checkers, &ipamHealthChecker{ipam: c.Ipam})
}

h := &healthServiceServer{
Expand Down
36 changes: 36 additions & 0 deletions pkg/service/health/ipam-checker.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package health

import (
// ipamv1 "github.com/metal-stack/go-ipam/api/v1"
"context"
"fmt"

"connectrpc.com/connect"
apiv2 "github.com/metal-stack/api/go/metalstack/api/v2"
apiv1 "github.com/metal-stack/go-ipam/api/v1"
ipamv1connect "github.com/metal-stack/go-ipam/api/v1/apiv1connect"
)

type ipamHealthChecker struct {
ipam ipamv1connect.IpamServiceClient
}

func (h *ipamHealthChecker) Health(ctx context.Context) *apiv2.HealthStatus {
resp, err := h.ipam.Version(ctx, connect.NewRequest(&apiv1.VersionRequest{}))

var (
status = apiv2.ServiceStatus_SERVICE_STATUS_HEALTHY
message string
)
if err != nil {
status = apiv2.ServiceStatus_SERVICE_STATUS_UNHEALTHY
message = err.Error()
} else {
message = fmt.Sprintf("connected to ipam service version:%q", resp.Msg.Revision)
}
return &apiv2.HealthStatus{
Name: apiv2.Service_SERVICE_IPAM,
Status: status,
Message: message,
}
}
54 changes: 0 additions & 54 deletions pkg/service/health/machine-checker.go

This file was deleted.

0 comments on commit db23c1c

Please sign in to comment.