Documentation
¶
Overview ¶
Package daemon implements the kukeond process: it owns a controller.Exec, exposes the kukeonv1 API over a unix socket using net/rpc + jsonrpc, and manages its own lifecycle (listener, PID file, graceful shutdown).
Index ¶
- type Controller
- type DaemonFake
- type KukeonV1Service
- func (s *KukeonV1Service) ApplyDocuments(args *kukeonv1.ApplyDocumentsArgs, reply *kukeonv1.ApplyDocumentsReply) error
- func (s *KukeonV1Service) AttachContainer(args *kukeonv1.AttachContainerArgs, reply *kukeonv1.AttachContainerReply) error
- func (s *KukeonV1Service) CreateCell(args *kukeonv1.CreateCellArgs, reply *kukeonv1.CreateCellReply) error
- func (s *KukeonV1Service) CreateConfig(args *kukeonv1.CreateConfigArgs, reply *kukeonv1.CreateConfigReply) error
- func (s *KukeonV1Service) CreateRealm(args *kukeonv1.CreateRealmArgs, reply *kukeonv1.CreateRealmReply) error
- func (s *KukeonV1Service) CreateSecret(args *kukeonv1.CreateSecretArgs, reply *kukeonv1.CreateSecretReply) error
- func (s *KukeonV1Service) CreateSpace(args *kukeonv1.CreateSpaceArgs, reply *kukeonv1.CreateSpaceReply) error
- func (s *KukeonV1Service) CreateStack(args *kukeonv1.CreateStackArgs, reply *kukeonv1.CreateStackReply) error
- func (s *KukeonV1Service) DeleteBlueprint(args *kukeonv1.DeleteBlueprintArgs, reply *kukeonv1.DeleteBlueprintReply) error
- func (s *KukeonV1Service) DeleteCell(args *kukeonv1.DeleteCellArgs, reply *kukeonv1.DeleteCellReply) error
- func (s *KukeonV1Service) DeleteConfig(args *kukeonv1.DeleteConfigArgs, reply *kukeonv1.DeleteConfigReply) error
- func (s *KukeonV1Service) DeleteDocuments(args *kukeonv1.DeleteDocumentsArgs, reply *kukeonv1.DeleteDocumentsReply) error
- func (s *KukeonV1Service) DeleteRealm(args *kukeonv1.DeleteRealmArgs, reply *kukeonv1.DeleteRealmReply) error
- func (s *KukeonV1Service) DeleteSecret(args *kukeonv1.DeleteSecretArgs, reply *kukeonv1.DeleteSecretReply) error
- func (s *KukeonV1Service) DeleteSpace(args *kukeonv1.DeleteSpaceArgs, reply *kukeonv1.DeleteSpaceReply) error
- func (s *KukeonV1Service) DeleteStack(args *kukeonv1.DeleteStackArgs, reply *kukeonv1.DeleteStackReply) error
- func (s *KukeonV1Service) GetBlueprint(args *kukeonv1.GetBlueprintArgs, reply *kukeonv1.GetBlueprintReply) error
- func (s *KukeonV1Service) GetCell(args *kukeonv1.GetCellArgs, reply *kukeonv1.GetCellReply) error
- func (s *KukeonV1Service) GetConfig(args *kukeonv1.GetConfigArgs, reply *kukeonv1.GetConfigReply) error
- func (s *KukeonV1Service) GetContainer(args *kukeonv1.GetContainerArgs, reply *kukeonv1.GetContainerReply) error
- func (s *KukeonV1Service) GetRealm(args *kukeonv1.GetRealmArgs, reply *kukeonv1.GetRealmReply) error
- func (s *KukeonV1Service) GetSecret(args *kukeonv1.GetSecretArgs, reply *kukeonv1.GetSecretReply) error
- func (s *KukeonV1Service) GetSpace(args *kukeonv1.GetSpaceArgs, reply *kukeonv1.GetSpaceReply) error
- func (s *KukeonV1Service) GetStack(args *kukeonv1.GetStackArgs, reply *kukeonv1.GetStackReply) error
- func (s *KukeonV1Service) KillCell(args *kukeonv1.KillCellArgs, reply *kukeonv1.KillCellReply) error
- func (s *KukeonV1Service) ListBlueprints(args *kukeonv1.ListBlueprintsArgs, reply *kukeonv1.ListBlueprintsReply) error
- func (s *KukeonV1Service) ListCells(args *kukeonv1.ListCellsArgs, reply *kukeonv1.ListCellsReply) error
- func (s *KukeonV1Service) ListConfigs(args *kukeonv1.ListConfigsArgs, reply *kukeonv1.ListConfigsReply) error
- func (s *KukeonV1Service) ListContainers(args *kukeonv1.ListContainersArgs, reply *kukeonv1.ListContainersReply) error
- func (s *KukeonV1Service) ListRealms(_ *kukeonv1.ListRealmsArgs, reply *kukeonv1.ListRealmsReply) error
- func (s *KukeonV1Service) ListSecrets(args *kukeonv1.ListSecretsArgs, reply *kukeonv1.ListSecretsReply) error
- func (s *KukeonV1Service) ListSpaces(args *kukeonv1.ListSpacesArgs, reply *kukeonv1.ListSpacesReply) error
- func (s *KukeonV1Service) ListStacks(args *kukeonv1.ListStacksArgs, reply *kukeonv1.ListStacksReply) error
- func (s *KukeonV1Service) LogContainer(args *kukeonv1.LogContainerArgs, reply *kukeonv1.LogContainerReply) error
- func (s *KukeonV1Service) MaterializeCell(args *kukeonv1.MaterializeCellArgs, reply *kukeonv1.MaterializeCellReply) error
- func (s *KukeonV1Service) Ping(_ *kukeonv1.PingArgs, reply *kukeonv1.PingReply) error
- func (s *KukeonV1Service) PurgeCell(args *kukeonv1.PurgeCellArgs, reply *kukeonv1.PurgeCellReply) error
- func (s *KukeonV1Service) PurgeRealm(args *kukeonv1.PurgeRealmArgs, reply *kukeonv1.PurgeRealmReply) error
- func (s *KukeonV1Service) PurgeSpace(args *kukeonv1.PurgeSpaceArgs, reply *kukeonv1.PurgeSpaceReply) error
- func (s *KukeonV1Service) PurgeStack(args *kukeonv1.PurgeStackArgs, reply *kukeonv1.PurgeStackReply) error
- func (s *KukeonV1Service) RefreshAll(_ *kukeonv1.RefreshAllArgs, reply *kukeonv1.RefreshAllReply) error
- func (s *KukeonV1Service) StartCell(args *kukeonv1.StartCellArgs, reply *kukeonv1.StartCellReply) error
- func (s *KukeonV1Service) StopCell(args *kukeonv1.StopCellArgs, reply *kukeonv1.StopCellReply) error
- type Options
- type Server
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller struct {
}
func NewController ¶
func NewController() *Controller
func (*Controller) Restart ¶
func (c *Controller) Restart() error
func (*Controller) Start ¶
func (c *Controller) Start() error
func (*Controller) Stop ¶
func (c *Controller) Stop() error
type KukeonV1Service ¶
type KukeonV1Service struct {
// contains filtered or unexported fields
}
KukeonV1Service implements the net/rpc server methods for the KukeonV1 service. Each method always returns nil to net/rpc and carries structured errors inside the Reply envelope so errdefs sentinels survive the wire.
func NewKukeonV1Service ¶
func NewKukeonV1Service( ctx context.Context, logger *slog.Logger, core kukeonv1.Client, ) *KukeonV1Service
NewKukeonV1Service constructs a service bound to the given kukeon Client. The service borrows the client; the caller owns its lifecycle.
func (*KukeonV1Service) ApplyDocuments ¶
func (s *KukeonV1Service) ApplyDocuments(args *kukeonv1.ApplyDocumentsArgs, reply *kukeonv1.ApplyDocumentsReply) error
func (*KukeonV1Service) AttachContainer ¶ added in v0.2.0
func (s *KukeonV1Service) AttachContainer( args *kukeonv1.AttachContainerArgs, reply *kukeonv1.AttachContainerReply, ) error
AttachContainer is the placeholder endpoint shipped in #57. It enforces the Attachable gate at the API boundary; the full client lands in #66.
func (*KukeonV1Service) CreateCell ¶
func (s *KukeonV1Service) CreateCell(args *kukeonv1.CreateCellArgs, reply *kukeonv1.CreateCellReply) error
CreateCell is the net/rpc method for KukeonV1.CreateCell. net/rpc requires exported pointer-to-struct args and reply plus a single error return.
Cells created with Spec.AutoDelete=true (`kuke run --rm`) are not followed by a per-cell watcher goroutine — the daemon's reconcile loop observes the root task exit on a subsequent tick and runs the kill+delete sequence. That makes AutoDelete cleanup restart-resilient: a cell whose Spec.AutoDelete=true survives a daemon restart still gets cleaned up after the daemon is back, without per-cell startup wiring.
func (*KukeonV1Service) CreateConfig ¶ added in v0.6.0
func (s *KukeonV1Service) CreateConfig(args *kukeonv1.CreateConfigArgs, reply *kukeonv1.CreateConfigReply) error
func (*KukeonV1Service) CreateRealm ¶
func (s *KukeonV1Service) CreateRealm(args *kukeonv1.CreateRealmArgs, reply *kukeonv1.CreateRealmReply) error
CreateRealm is the net/rpc method for KukeonV1.CreateRealm.
func (*KukeonV1Service) CreateSecret ¶ added in v0.6.0
func (s *KukeonV1Service) CreateSecret(args *kukeonv1.CreateSecretArgs, reply *kukeonv1.CreateSecretReply) error
func (*KukeonV1Service) CreateSpace ¶
func (s *KukeonV1Service) CreateSpace(args *kukeonv1.CreateSpaceArgs, reply *kukeonv1.CreateSpaceReply) error
CreateSpace is the net/rpc method for KukeonV1.CreateSpace.
func (*KukeonV1Service) CreateStack ¶
func (s *KukeonV1Service) CreateStack(args *kukeonv1.CreateStackArgs, reply *kukeonv1.CreateStackReply) error
CreateStack is the net/rpc method for KukeonV1.CreateStack.
func (*KukeonV1Service) DeleteBlueprint ¶ added in v0.6.0
func (s *KukeonV1Service) DeleteBlueprint( args *kukeonv1.DeleteBlueprintArgs, reply *kukeonv1.DeleteBlueprintReply, ) error
func (*KukeonV1Service) DeleteCell ¶
func (s *KukeonV1Service) DeleteCell(args *kukeonv1.DeleteCellArgs, reply *kukeonv1.DeleteCellReply) error
func (*KukeonV1Service) DeleteConfig ¶ added in v0.6.0
func (s *KukeonV1Service) DeleteConfig( args *kukeonv1.DeleteConfigArgs, reply *kukeonv1.DeleteConfigReply, ) error
func (*KukeonV1Service) DeleteDocuments ¶ added in v0.6.0
func (s *KukeonV1Service) DeleteDocuments( args *kukeonv1.DeleteDocumentsArgs, reply *kukeonv1.DeleteDocumentsReply, ) error
func (*KukeonV1Service) DeleteRealm ¶
func (s *KukeonV1Service) DeleteRealm(args *kukeonv1.DeleteRealmArgs, reply *kukeonv1.DeleteRealmReply) error
func (*KukeonV1Service) DeleteSecret ¶ added in v0.6.0
func (s *KukeonV1Service) DeleteSecret(args *kukeonv1.DeleteSecretArgs, reply *kukeonv1.DeleteSecretReply) error
func (*KukeonV1Service) DeleteSpace ¶
func (s *KukeonV1Service) DeleteSpace(args *kukeonv1.DeleteSpaceArgs, reply *kukeonv1.DeleteSpaceReply) error
func (*KukeonV1Service) DeleteStack ¶
func (s *KukeonV1Service) DeleteStack(args *kukeonv1.DeleteStackArgs, reply *kukeonv1.DeleteStackReply) error
func (*KukeonV1Service) GetBlueprint ¶ added in v0.6.0
func (s *KukeonV1Service) GetBlueprint(args *kukeonv1.GetBlueprintArgs, reply *kukeonv1.GetBlueprintReply) error
func (*KukeonV1Service) GetCell ¶
func (s *KukeonV1Service) GetCell(args *kukeonv1.GetCellArgs, reply *kukeonv1.GetCellReply) error
func (*KukeonV1Service) GetConfig ¶ added in v0.6.0
func (s *KukeonV1Service) GetConfig(args *kukeonv1.GetConfigArgs, reply *kukeonv1.GetConfigReply) error
func (*KukeonV1Service) GetContainer ¶
func (s *KukeonV1Service) GetContainer(args *kukeonv1.GetContainerArgs, reply *kukeonv1.GetContainerReply) error
func (*KukeonV1Service) GetRealm ¶
func (s *KukeonV1Service) GetRealm(args *kukeonv1.GetRealmArgs, reply *kukeonv1.GetRealmReply) error
func (*KukeonV1Service) GetSecret ¶ added in v0.6.0
func (s *KukeonV1Service) GetSecret(args *kukeonv1.GetSecretArgs, reply *kukeonv1.GetSecretReply) error
func (*KukeonV1Service) GetSpace ¶
func (s *KukeonV1Service) GetSpace(args *kukeonv1.GetSpaceArgs, reply *kukeonv1.GetSpaceReply) error
func (*KukeonV1Service) GetStack ¶
func (s *KukeonV1Service) GetStack(args *kukeonv1.GetStackArgs, reply *kukeonv1.GetStackReply) error
func (*KukeonV1Service) KillCell ¶
func (s *KukeonV1Service) KillCell(args *kukeonv1.KillCellArgs, reply *kukeonv1.KillCellReply) error
func (*KukeonV1Service) ListBlueprints ¶ added in v0.6.0
func (s *KukeonV1Service) ListBlueprints( args *kukeonv1.ListBlueprintsArgs, reply *kukeonv1.ListBlueprintsReply, ) error
func (*KukeonV1Service) ListCells ¶
func (s *KukeonV1Service) ListCells(args *kukeonv1.ListCellsArgs, reply *kukeonv1.ListCellsReply) error
func (*KukeonV1Service) ListConfigs ¶ added in v0.6.0
func (s *KukeonV1Service) ListConfigs( args *kukeonv1.ListConfigsArgs, reply *kukeonv1.ListConfigsReply, ) error
func (*KukeonV1Service) ListContainers ¶
func (s *KukeonV1Service) ListContainers(args *kukeonv1.ListContainersArgs, reply *kukeonv1.ListContainersReply) error
func (*KukeonV1Service) ListRealms ¶
func (s *KukeonV1Service) ListRealms(_ *kukeonv1.ListRealmsArgs, reply *kukeonv1.ListRealmsReply) error
func (*KukeonV1Service) ListSecrets ¶ added in v0.6.0
func (s *KukeonV1Service) ListSecrets(args *kukeonv1.ListSecretsArgs, reply *kukeonv1.ListSecretsReply) error
func (*KukeonV1Service) ListSpaces ¶
func (s *KukeonV1Service) ListSpaces(args *kukeonv1.ListSpacesArgs, reply *kukeonv1.ListSpacesReply) error
func (*KukeonV1Service) ListStacks ¶
func (s *KukeonV1Service) ListStacks(args *kukeonv1.ListStacksArgs, reply *kukeonv1.ListStacksReply) error
func (*KukeonV1Service) LogContainer ¶ added in v0.3.0
func (s *KukeonV1Service) LogContainer( args *kukeonv1.LogContainerArgs, reply *kukeonv1.LogContainerReply, ) error
LogContainer enforces the Attachable gate at the API boundary and returns the host path of the per-container sbsh capture file. Bytes never traverse this RPC — the client tails HostCapturePath directly.
func (*KukeonV1Service) MaterializeCell ¶ added in v0.6.0
func (s *KukeonV1Service) MaterializeCell( args *kukeonv1.MaterializeCellArgs, reply *kukeonv1.MaterializeCellReply, ) error
MaterializeCell is the net/rpc method for KukeonV1.MaterializeCell (#818). Mirrors CreateCell, but the daemon-side controller skips the StartCell step so the resulting cell is left in a stopped state — the substrate for `kuke create cell --from-blueprint` / `--from-config` scaffolding.
func (*KukeonV1Service) Ping ¶
Ping acks that the kukeonv1 RPC handler is serving and reports the daemon build version. Used by `kuke init` to wait until kukeond is ready.
func (*KukeonV1Service) PurgeCell ¶
func (s *KukeonV1Service) PurgeCell(args *kukeonv1.PurgeCellArgs, reply *kukeonv1.PurgeCellReply) error
func (*KukeonV1Service) PurgeRealm ¶
func (s *KukeonV1Service) PurgeRealm(args *kukeonv1.PurgeRealmArgs, reply *kukeonv1.PurgeRealmReply) error
func (*KukeonV1Service) PurgeSpace ¶
func (s *KukeonV1Service) PurgeSpace(args *kukeonv1.PurgeSpaceArgs, reply *kukeonv1.PurgeSpaceReply) error
func (*KukeonV1Service) PurgeStack ¶
func (s *KukeonV1Service) PurgeStack(args *kukeonv1.PurgeStackArgs, reply *kukeonv1.PurgeStackReply) error
func (*KukeonV1Service) RefreshAll ¶
func (s *KukeonV1Service) RefreshAll(_ *kukeonv1.RefreshAllArgs, reply *kukeonv1.RefreshAllReply) error
func (*KukeonV1Service) StartCell ¶
func (s *KukeonV1Service) StartCell(args *kukeonv1.StartCellArgs, reply *kukeonv1.StartCellReply) error
func (*KukeonV1Service) StopCell ¶
func (s *KukeonV1Service) StopCell(args *kukeonv1.StopCellArgs, reply *kukeonv1.StopCellReply) error
type Options ¶
type Options struct {
// SocketPath is the unix socket path the daemon listens on.
SocketPath string
// SocketMode is the file mode applied to the socket after creation.
SocketMode os.FileMode
// SocketGID, when non-zero, is the group the listener socket is chowned
// to (uid stays root) so non-root members of that group can dial the
// daemon. Set by `kuke init` to the kukeon GID. Each Serve re-applies
// this so a daemon restart does not lose group access.
SocketGID int
// PIDFile, when non-empty, is written on Serve and removed on Stop.
PIDFile string
// ReconcileInterval is the period of the background cell-reconciliation
// loop. Zero or negative disables the loop — useful for tests and for
// operators who explicitly opt out via `--reconcile-interval 0`.
ReconcileInterval time.Duration
// Controller is forwarded to controller.NewControllerExec.
Controller controller.Options
}
Options configures a Server.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server hosts the kukeonv1 API over JSON-RPC on a unix socket.