Three insertion points: - CreateEntity (POST /api/v1/entities) - EnrollClient (POST /api/v1/clients/enroll) - seed.go (seed ingest at deploy time) Shared logic in internal/checkdefaults — resolves host IP from lan_ip > mesh.netbird.ip > mesh_ip, SSH user/port from attributes. Default checks per entity type: - proxmox-host/standalone-server: ping + cpu + memory + load + disk + updates - workstation: ping + cpu + memory + load - lxc: cpu + memory + load + disk - vm: ping - service: process_check.sh All idempotent (ON CONFLICT DO NOTHING). New machines now get monitoring automatically — no manual curl calls needed.
14 lines
337 B
Go
14 lines
337 B
Go
package httpapi
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/dtoro/oikos/internal/checkdefaults"
|
|
"github.com/google/uuid"
|
|
"github.com/jackc/pgx/v5"
|
|
)
|
|
|
|
func ensureDefaultChecks(ctx context.Context, tx pgx.Tx, entityID uuid.UUID, slug, entityType string, attrsJSON []byte) {
|
|
checkdefaults.Ensure(ctx, tx, entityID, slug, entityType, attrsJSON)
|
|
}
|