takod

package
v0.5.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2026 License: MIT Imports: 31 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BackupDir        = "/var/lib/tako/backups"
	DefaultRetention = 7
)
View Source
const (
	BackupStorageProviderS3           = "s3"
	BackupStorageProviderR2           = "r2"
	BackupStorageProviderS3Compatible = "s3-compatible"
)
View Source
const DefaultBuildCacheKeepStorage = "20GB"
View Source
const (
	PortAllocationKindMeshUpstream = "mesh-upstream"
)

Variables

This section is empty.

Functions

func CleanupBackupObjects added in v0.5.4

func CleanupBackupObjects(ctx context.Context, storage BackupStorageConfig, retention BackupObjectRetention) error

func DeleteVolumeBackup

func DeleteVolumeBackup(ctx context.Context, req BackupRequest) error

func ExportImage

func ExportImage(ctx context.Context, image string, w io.Writer) error

func ReadMeshStatus

func ReadMeshStatus(ctx context.Context, interfaceName string) (*mesh.Status, error)

func RefreshActualStateDocuments

func RefreshActualStateDocuments(ctx context.Context, dataDir string, node string) (int, error)

func ReleaseProjectPortAllocations

func ReleaseProjectPortAllocations(ctx context.Context, dataDir string, project string, environment string) error

func ReleaseServicePortAllocations

func ReleaseServicePortAllocations(ctx context.Context, dataDir string, project string, environment string, service string) error

func ReleaseServicePortAllocationsExceptRevision added in v0.5.4

func ReleaseServicePortAllocationsExceptRevision(ctx context.Context, dataDir string, project string, environment string, service string, keepRevision string) error

func RestoreVolumeBackup

func RestoreVolumeBackup(ctx context.Context, req BackupRequest) error

func StreamProxyAccessLogs

func StreamProxyAccessLogs(ctx context.Context, tail int, follow bool, writer io.Writer) error

func StreamServiceLogs

func StreamServiceLogs(ctx context.Context, req LogsRequest, writer io.Writer) error

func ValidateBackupStorage added in v0.5.4

func ValidateBackupStorage(storage BackupStorageConfig) error

Types

type ActualRefreshTarget

type ActualRefreshTarget struct {
	Project     string
	Environment string
}

func ListActualRefreshTargets

func ListActualRefreshTargets(dataDir string) ([]ActualRefreshTarget, error)

type ActualService

type ActualService struct {
	Name              string            `json:"name"`
	Image             string            `json:"image,omitempty"`
	RevisionImages    map[string]string `json:"revisionImages,omitempty"`
	Replicas          int               `json:"replicas"`
	Containers        []string          `json:"containers,omitempty"`
	ConfigHash        string            `json:"configHash,omitempty"`
	RuntimeID         string            `json:"runtimeId,omitempty"`
	Persistent        bool              `json:"persistent,omitempty"`
	CurrentRevision   string            `json:"currentRevision,omitempty"`
	PreviousRevision  string            `json:"previousRevision,omitempty"`
	WarmingRevisions  []string          `json:"warmingRevisions,omitempty"`
	DeployStrategy    string            `json:"deployStrategy,omitempty"`
	ActiveContainers  []string          `json:"activeContainers,omitempty"`
	WarmingContainers []string          `json:"warmingContainers,omitempty"`
}

type ActualStateResponse

type ActualStateResponse struct {
	Project     string                    `json:"project"`
	Environment string                    `json:"environment"`
	Services    map[string]*ActualService `json:"services"`
}

func GatherActualState

func GatherActualState(ctx context.Context, project string, environment string) (*ActualStateResponse, error)

func ParseActualState

func ParseActualState(project string, environment string, dockerPSOutput string) *ActualStateResponse

type BackupCleanupResponse

type BackupCleanupResponse struct {
	Deleted int `json:"deleted"`
}

func CleanupOldBackups

func CleanupOldBackups(ctx context.Context, req BackupRequest) (*BackupCleanupResponse, error)

type BackupInfo

type BackupInfo struct {
	ID          string            `json:"id"`
	Service     string            `json:"service,omitempty"`
	Volume      string            `json:"volume"`
	Size        int64             `json:"size"`
	CreatedAt   time.Time         `json:"createdAt"`
	Path        string            `json:"path"`
	Compression string            `json:"compression"`
	Remote      *BackupRemoteInfo `json:"remote,omitempty"`
	Warnings    []string          `json:"warnings,omitempty"`
}

func CreateVolumeBackup

func CreateVolumeBackup(ctx context.Context, req BackupRequest) (*BackupInfo, error)

type BackupListResponse

type BackupListResponse struct {
	Backups []BackupInfo `json:"backups"`
}

func ListVolumeBackups

func ListVolumeBackups(ctx context.Context, req BackupRequest) (*BackupListResponse, error)

type BackupObject added in v0.5.4

type BackupObject struct {
	Project     string
	Environment string
	Volume      string
	BackupID    string
	Path        string
	CreatedAt   time.Time
}

type BackupObjectRetention added in v0.5.4

type BackupObjectRetention struct {
	Project       string
	Environment   string
	Volume        string
	RetentionDays int
}

type BackupRemoteInfo added in v0.5.4

type BackupRemoteInfo struct {
	Provider string `json:"provider"`
	Bucket   string `json:"bucket"`
	Key      string `json:"key"`
	Endpoint string `json:"endpoint,omitempty"`
}

func UploadBackupObject added in v0.5.4

func UploadBackupObject(ctx context.Context, storage BackupStorageConfig, object BackupObject) (*BackupRemoteInfo, error)

type BackupRequest

type BackupRequest struct {
	Project        string               `json:"project"`
	Environment    string               `json:"environment"`
	Volume         string               `json:"volume,omitempty"`
	DockerVolume   string               `json:"dockerVolume,omitempty"`
	ExternalVolume bool                 `json:"externalVolume,omitempty"`
	BackupID       string               `json:"backupId,omitempty"`
	RetentionDays  int                  `json:"retentionDays,omitempty"`
	Storage        *BackupStorageConfig `json:"storage,omitempty"`
}

type BackupScheduleRequest added in v0.5.4

type BackupScheduleRequest struct {
	Project       string                 `json:"project"`
	Environment   string                 `json:"environment"`
	Service       string                 `json:"service"`
	Schedule      string                 `json:"schedule"`
	RetentionDays int                    `json:"retentionDays,omitempty"`
	Volumes       []BackupScheduleVolume `json:"volumes"`
	Storage       *BackupStorageConfig   `json:"storage,omitempty"`
}

type BackupScheduleResponse added in v0.5.4

type BackupScheduleResponse struct {
	Project     string    `json:"project"`
	Environment string    `json:"environment"`
	Service     string    `json:"service"`
	Scheduled   bool      `json:"scheduled"`
	UpdatedAt   time.Time `json:"updatedAt"`
}

type BackupScheduleVolume added in v0.5.4

type BackupScheduleVolume struct {
	Volume         string `json:"volume"`
	DockerVolume   string `json:"dockerVolume"`
	ExternalVolume bool   `json:"externalVolume,omitempty"`
}

type BackupScheduler added in v0.5.4

type BackupScheduler struct {
	// contains filtered or unexported fields
}

func NewBackupScheduler added in v0.5.4

func NewBackupScheduler(dataDir string) *BackupScheduler

func (*BackupScheduler) Delete added in v0.5.4

func (s *BackupScheduler) Delete(ctx context.Context, project string, environment string, service string) (*BackupScheduleResponse, error)

func (*BackupScheduler) Run added in v0.5.4

func (s *BackupScheduler) Run(ctx context.Context)

func (*BackupScheduler) Upsert added in v0.5.4

type BackupStorageConfig added in v0.5.4

type BackupStorageConfig struct {
	Provider        string `json:"provider,omitempty"`
	Bucket          string `json:"bucket,omitempty"`
	Region          string `json:"region,omitempty"`
	Endpoint        string `json:"endpoint,omitempty"`
	Prefix          string `json:"prefix,omitempty"`
	AccessKeyID     string `json:"accessKeyId,omitempty"`
	SecretAccessKey string `json:"secretAccessKey,omitempty"`
	SessionToken    string `json:"sessionToken,omitempty"`
	ForcePathStyle  bool   `json:"forcePathStyle,omitempty"`
}

type CleanupRequest

type CleanupRequest struct {
	Project                string   `json:"project"`
	Environment            string   `json:"environment,omitempty"`
	RemoveContainers       bool     `json:"removeContainers,omitempty"`
	RemoveImages           bool     `json:"removeImages,omitempty"`
	RemoveNetworks         bool     `json:"removeNetworks,omitempty"`
	RemoveDeployFiles      bool     `json:"removeDeployFiles,omitempty"`
	RemoveTakodState       bool     `json:"removeTakodState,omitempty"`
	ProxyFiles             []string `json:"proxyFiles,omitempty"`
	ExternalVolumes        []string `json:"externalVolumes,omitempty"`
	PruneDocker            bool     `json:"pruneDocker,omitempty"`
	ImageRepositories      []string `json:"imageRepositories,omitempty"`
	KeepImages             int      `json:"keepImages,omitempty"`
	CleanOldImages         bool     `json:"cleanOldImages,omitempty"`
	CleanStoppedContainers bool     `json:"cleanStoppedContainers,omitempty"`
	CleanDanglingImages    bool     `json:"cleanDanglingImages,omitempty"`
	CleanBuildCache        bool     `json:"cleanBuildCache,omitempty"`
	BuildCacheKeepStorage  string   `json:"buildCacheKeepStorage,omitempty"`
	CleanUnusedVolumes     bool     `json:"cleanUnusedVolumes,omitempty"`
	SecureLogPermissions   bool     `json:"secureLogPermissions,omitempty"`
}

type CleanupResponse

type CleanupResponse struct {
	Project               string   `json:"project"`
	Environment           string   `json:"environment,omitempty"`
	ContainersRemoved     int      `json:"containersRemoved,omitempty"`
	ImagesRemoved         int      `json:"imagesRemoved,omitempty"`
	NetworksRemoved       int      `json:"networksRemoved,omitempty"`
	ProxyFilesRemoved     int      `json:"proxyFilesRemoved,omitempty"`
	BuildCacheCleaned     bool     `json:"buildCacheCleaned,omitempty"`
	UnusedVolumesCleaned  bool     `json:"unusedVolumesCleaned,omitempty"`
	LogPermissionsSecured bool     `json:"logPermissionsSecured,omitempty"`
	InitialDiskUsage      string   `json:"initialDiskUsage,omitempty"`
	FinalDiskUsage        string   `json:"finalDiskUsage,omitempty"`
	DockerDiskUsage       string   `json:"dockerDiskUsage,omitempty"`
	Warnings              []string `json:"warnings,omitempty"`
}

func CleanupProject

func CleanupProject(ctx context.Context, req CleanupRequest) (*CleanupResponse, error)

type ContainerSpec

type ContainerSpec struct {
	Name           string            `json:"name"`
	NetworkAliases []string          `json:"networkAliases,omitempty"`
	Publishes      []string          `json:"publishes,omitempty"`
	Labels         map[string]string `json:"labels,omitempty"`
}

type ContainerStat

type ContainerStat struct {
	Name       string `json:"name"`
	CPUPercent string `json:"cpuPercent"`
	MemUsage   string `json:"memUsage"`
	MemPercent string `json:"memPercent"`
	NetIO      string `json:"netIO"`
	BlockIO    string `json:"blockIO"`
	PIDs       string `json:"pids"`
}

type EnvBundleRequest

type EnvBundleRequest struct {
	Project     string    `json:"project"`
	Environment string    `json:"environment"`
	Content     string    `json:"content,omitempty"`
	UpdatedAt   time.Time `json:"updatedAt,omitempty"`
}

type EnvBundleResponse

type EnvBundleResponse struct {
	Found     bool      `json:"found"`
	Content   string    `json:"content,omitempty"`
	Path      string    `json:"path,omitempty"`
	UpdatedAt time.Time `json:"updatedAt,omitempty"`
}

func ReadEnvBundle

func ReadEnvBundle(ctx context.Context, dataDir string, req EnvBundleRequest) (*EnvBundleResponse, error)

func WriteEnvBundle

func WriteEnvBundle(ctx context.Context, dataDir string, req EnvBundleRequest) (*EnvBundleResponse, error)

type ExportDiscoveryRecord added in v0.4.35

type ExportDiscoveryRecord struct {
	Network     string `json:"network"`
	Project     string `json:"project"`
	Environment string `json:"environment"`
	Service     string `json:"service"`
	Alias       string `json:"alias"`
	Runtime     string `json:"runtime,omitempty"`
}

type ExportDiscoveryResponse added in v0.4.35

type ExportDiscoveryResponse struct {
	Exports []ExportDiscoveryRecord `json:"exports"`
}

func ListExportDiscovery added in v0.4.35

func ListExportDiscovery(ctx context.Context, environment string) (*ExportDiscoveryResponse, error)

type HealthSpec

type HealthSpec struct {
	Command             string `json:"command,omitempty"`
	Path                string `json:"path,omitempty"`
	Port                int    `json:"port,omitempty"`
	Scheme              string `json:"scheme,omitempty"`
	Interval            string `json:"interval,omitempty"`
	Timeout             string `json:"timeout,omitempty"`
	Retries             int    `json:"retries,omitempty"`
	StartPeriod         string `json:"startPeriod,omitempty"`
	WaitAttempts        int    `json:"waitAttempts,omitempty"`
	SmokePath           string `json:"smokePath,omitempty"`
	SmokePort           int    `json:"smokePort,omitempty"`
	SmokeExpectedStatus int    `json:"smokeExpectedStatus,omitempty"`
}

type ImageBuildResponse

type ImageBuildResponse struct {
	Image   string             `json:"image"`
	Output  string             `json:"output,omitempty"`
	Timings *ImageBuildTimings `json:"timings,omitempty"`
}

func BuildImage

func BuildImage(ctx context.Context, image string, r io.Reader, dockerfile ...string) (*ImageBuildResponse, error)

type ImageBuildTimings added in v0.5.4

type ImageBuildTimings struct {
	ExtractMS     int64 `json:"extractMs,omitempty"`
	DockerBuildMS int64 `json:"dockerBuildMs,omitempty"`
	TotalMS       int64 `json:"totalMs,omitempty"`
}

type ImageExistsResponse

type ImageExistsResponse struct {
	Image  string `json:"image"`
	Exists bool   `json:"exists"`
}

func ImageExists

func ImageExists(ctx context.Context, image string) (*ImageExistsResponse, error)

type ImageImportResponse

type ImageImportResponse struct {
	Image  string `json:"image"`
	Output string `json:"output,omitempty"`
}

func ImportImage

func ImportImage(ctx context.Context, image string, r io.Reader) (*ImageImportResponse, error)

type LeaseInfo

type LeaseInfo struct {
	ID          string    `json:"id"`
	ProjectName string    `json:"projectName"`
	Environment string    `json:"environment"`
	Operation   string    `json:"operation"`
	Who         string    `json:"who"`
	PID         int       `json:"pid"`
	CreatedAt   time.Time `json:"createdAt"`
	ExpiresAt   time.Time `json:"expiresAt"`
}

type LeaseRequest

type LeaseRequest struct {
	Project     string `json:"project"`
	Environment string `json:"environment"`
	ID          string `json:"id,omitempty"`
	Operation   string `json:"operation,omitempty"`
	Who         string `json:"who,omitempty"`
	PID         int    `json:"pid,omitempty"`
	TTLSeconds  int64  `json:"ttlSeconds,omitempty"`
}

type LeaseResponse

type LeaseResponse struct {
	Acquired bool       `json:"acquired"`
	Found    bool       `json:"found"`
	Lease    *LeaseInfo `json:"lease,omitempty"`
	Message  string     `json:"message,omitempty"`
}

func AcquireLease

func AcquireLease(ctx context.Context, dataDir string, req LeaseRequest) (*LeaseResponse, error)

func ReadLease

func ReadLease(ctx context.Context, dataDir string, req LeaseRequest) (*LeaseResponse, error)

func ReleaseLease

func ReleaseLease(ctx context.Context, dataDir string, req LeaseRequest) (*LeaseResponse, error)

type LogsRequest

type LogsRequest struct {
	Project     string `json:"project"`
	Environment string `json:"environment"`
	Service     string `json:"service"`
	Tail        int    `json:"tail,omitempty"`
	Follow      bool   `json:"follow,omitempty"`
}

type MeshApplyRequest

type MeshApplyRequest struct {
	Config mesh.WireGuardConfig `json:"config"`
	Node   mesh.Node            `json:"node"`
	Peers  []mesh.Node          `json:"peers,omitempty"`
}

type MeshApplyResponse

type MeshApplyResponse struct {
	Applied bool         `json:"applied"`
	Status  *mesh.Status `json:"status,omitempty"`
}

func ReconcileMesh

func ReconcileMesh(ctx context.Context, request MeshApplyRequest) (*MeshApplyResponse, error)

type MeshKeyResponse

type MeshKeyResponse struct {
	PublicKey string `json:"publicKey"`
}

func EnsureMeshKey

func EnsureMeshKey(ctx context.Context) (*MeshKeyResponse, error)

type MetadataRequest

type MetadataRequest struct {
	Node  any `json:"node,omitempty"`
	Peers any `json:"peers,omitempty"`
}

type MetadataResponse

type MetadataResponse struct {
	NodePath  string `json:"nodePath,omitempty"`
	PeersPath string `json:"peersPath,omitempty"`
}

func WriteMetadata

func WriteMetadata(ctx context.Context, dataDir string, req MetadataRequest) (*MetadataResponse, error)

type MetricsResponse

type MetricsResponse struct {
	Collected bool            `json:"collected"`
	Metrics   json.RawMessage `json:"metrics"`
}

func ReadNodeMetrics

func ReadNodeMetrics(ctx context.Context, collect bool) (*MetricsResponse, error)

type NetworkAttachmentSpec added in v0.4.12

type NetworkAttachmentSpec struct {
	Network string            `json:"network"`
	Aliases []string          `json:"aliases,omitempty"`
	Create  bool              `json:"create,omitempty"`
	Labels  map[string]string `json:"labels,omitempty"`
}

type PortAllocationRequest

type PortAllocationRequest struct {
	Kind          string `json:"kind"`
	Project       string `json:"project"`
	Environment   string `json:"environment"`
	Service       string `json:"service"`
	Revision      string `json:"revision,omitempty"`
	Slot          int    `json:"slot"`
	HostIP        string `json:"hostIp"`
	ContainerPort int    `json:"containerPort"`
	PreferredPort int    `json:"preferredPort"`
	MinPort       int    `json:"minPort"`
	MaxPort       int    `json:"maxPort"`
}

type PortAllocationResponse

type PortAllocationResponse struct {
	Kind          string `json:"kind"`
	Project       string `json:"project"`
	Environment   string `json:"environment"`
	Service       string `json:"service"`
	Revision      string `json:"revision,omitempty"`
	Slot          int    `json:"slot"`
	HostIP        string `json:"hostIp"`
	HostPort      int    `json:"hostPort"`
	ContainerPort int    `json:"containerPort"`
	Key           string `json:"key"`
}

func AllocatePort

func AllocatePort(ctx context.Context, dataDir string, req PortAllocationRequest) (*PortAllocationResponse, error)

type ProxyDynamicDomain added in v0.5.0

type ProxyDynamicDomain struct {
	AskURL string `json:"askUrl"`
}

type ProxyFileRequest

type ProxyFileRequest struct {
	Name    string `json:"name"`
	Content string `json:"content"`
}

type ProxyFileResponse

type ProxyFileResponse struct {
	Path string `json:"path"`
}

func RemoveProxyFile

func RemoveProxyFile(ctx context.Context, name string) (*ProxyFileResponse, error)

func WriteProxyFile

func WriteProxyFile(ctx context.Context, req ProxyFileRequest) (*ProxyFileResponse, error)

type ProxyRoute added in v0.5.0

type ProxyRoute struct {
	Service       string              `json:"service"`
	Revision      string              `json:"revision,omitempty"`
	Domains       []string            `json:"domains,omitempty"`
	RedirectFrom  []string            `json:"redirectFrom,omitempty"`
	Upstreams     []string            `json:"upstreams"`
	HealthCheck   *ProxyRouteHealth   `json:"healthCheck,omitempty"`
	Sticky        bool                `json:"sticky,omitempty"`
	Priority      int                 `json:"priority,omitempty"`
	DynamicDomain *ProxyDynamicDomain `json:"dynamicDomain,omitempty"`
}

type ProxyRouteHealth added in v0.5.0

type ProxyRouteHealth struct {
	Path     string `json:"path,omitempty"`
	Interval string `json:"interval,omitempty"`
}

type ProxyRouteManifest added in v0.5.0

type ProxyRouteManifest struct {
	Version     int          `json:"version"`
	Project     string       `json:"project"`
	Environment string       `json:"environment"`
	Network     string       `json:"network,omitempty"`
	Routes      []ProxyRoute `json:"routes"`
}

func ParseProxyRouteManifest added in v0.5.0

func ParseProxyRouteManifest(content string) (*ProxyRouteManifest, error)

type ReconcileProxyRequest

type ReconcileProxyRequest struct {
	Network string `json:"network"`
	Email   string `json:"email,omitempty"`
	Image   string `json:"image,omitempty"`
}

type ReconcileProxyResponse

type ReconcileProxyResponse struct {
	Container string `json:"container"`
	Image     string `json:"image"`
}

type ReconcileServiceRequest

type ReconcileServiceRequest struct {
	Project            string                  `json:"project"`
	Environment        string                  `json:"environment"`
	Service            string                  `json:"service"`
	Revision           string                  `json:"revision,omitempty"`
	DeployStrategy     string                  `json:"deployStrategy,omitempty"`
	Image              string                  `json:"image"`
	PullImage          bool                    `json:"pullImage,omitempty"`
	Restart            string                  `json:"restart,omitempty"`
	Network            string                  `json:"network"`
	NetworkAlias       string                  `json:"networkAlias,omitempty"`
	NetworkAttachments []NetworkAttachmentSpec `json:"networkAttachments,omitempty"`
	EnvFile            string                  `json:"envFile,omitempty"`
	EnvFileContent     string                  `json:"envFileContent,omitempty"`
	Labels             map[string]string       `json:"labels,omitempty"`
	Mounts             []string                `json:"mounts,omitempty"`
	ExternalVolumes    []string                `json:"externalVolumes,omitempty"`
	Containers         []ContainerSpec         `json:"containers"`
	Health             *HealthSpec             `json:"health,omitempty"`
	Command            string                  `json:"command,omitempty"`
}

type ReconcileServiceResponse

type ReconcileServiceResponse struct {
	Project           string   `json:"project"`
	Environment       string   `json:"environment"`
	Service           string   `json:"service"`
	Containers        []string `json:"containers"`
	RemovedContainers int      `json:"removedContainers,omitempty"`
}

type RemoveServiceRequest

type RemoveServiceRequest struct {
	Project      string `json:"project"`
	Environment  string `json:"environment"`
	Service      string `json:"service"`
	KeepRevision string `json:"keepRevision,omitempty"`
}

type RemoveServiceResponse

type RemoveServiceResponse struct {
	Project           string `json:"project"`
	Environment       string `json:"environment"`
	Service           string `json:"service"`
	RemovedContainers int    `json:"removedContainers"`
}

type Server

type Server struct {
	// contains filtered or unexported fields
}

func NewServer

func NewServer(socket string, dataDir string, version string) *Server

func NewServerWithOptions

func NewServerWithOptions(socket string, dataDir string, version string, opts ServerOptions) *Server

func (*Server) Run

func (s *Server) Run(ctx context.Context) error

func (*Server) Status

func (s *Server) Status() Status

type ServerOptions

type ServerOptions struct {
	NodeName              string
	ActualRefreshInterval time.Duration
}

type StateDocumentRequest

type StateDocumentRequest struct {
	Project     string `json:"project"`
	Environment string `json:"environment"`
	Document    string `json:"document"`
	Node        string `json:"node,omitempty"`
	RevisionID  string `json:"revisionId,omitempty"`
	Content     string `json:"content,omitempty"`
}

type StateDocumentResponse

type StateDocumentResponse struct {
	Found   bool   `json:"found"`
	Content string `json:"content,omitempty"`
	Path    string `json:"path,omitempty"`
}

func AppendStateEvent

func AppendStateEvent(ctx context.Context, dataDir string, req StateDocumentRequest) (*StateDocumentResponse, error)

func DeleteStateDocument added in v0.4.8

func DeleteStateDocument(ctx context.Context, dataDir string, req StateDocumentRequest) (*StateDocumentResponse, error)

func ReadStateDocument

func ReadStateDocument(ctx context.Context, dataDir string, req StateDocumentRequest) (*StateDocumentResponse, error)

func WriteStateDocument

func WriteStateDocument(ctx context.Context, dataDir string, req StateDocumentRequest) (*StateDocumentResponse, error)

type StatsRequest

type StatsRequest struct {
	Project     string `json:"project,omitempty"`
	Environment string `json:"environment,omitempty"`
	Service     string `json:"service,omitempty"`
	All         bool   `json:"all,omitempty"`
}

type StatsResponse

type StatsResponse struct {
	Stats []ContainerStat `json:"stats"`
}

func ReadContainerStats

func ReadContainerStats(ctx context.Context, req StatsRequest) (*StatsResponse, error)

type Status

type Status struct {
	Runtime   string         `json:"runtime"`
	Version   string         `json:"version"`
	Hostname  string         `json:"hostname"`
	Socket    string         `json:"socket"`
	DataDir   string         `json:"dataDir"`
	StartedAt time.Time      `json:"startedAt"`
	Now       time.Time      `json:"now"`
	Node      map[string]any `json:"node,omitempty"`
	Peers     map[string]any `json:"peers,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL