Documentation ¶
Index ¶
Constants ¶
View Source
const ( ProtocolReconnectingPTY = "reconnecting-pty" ProtocolSSH = "ssh" ProtocolDial = "dial" )
View Source
const EnvAgentSubsystem = "CODER_AGENT_SUBSYSTEM"
EnvAgentSubsystem is the environment variable used to denote the specialized environment in which the agent is running (e.g. envbox, envbuilder).
View Source
const EnvProcPrioMgmt = "CODER_PROC_PRIO_MGMT"
EnvProcPrioMgmt determines whether we attempt to manage process CPU and OOM Killer priority.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Agent ¶
type Client ¶
type Client interface { Manifest(ctx context.Context) (agentsdk.Manifest, error) Listen(ctx context.Context) (net.Conn, error) DERPMapUpdates(ctx context.Context) (<-chan agentsdk.DERPMapUpdate, io.Closer, error) ReportStats(ctx context.Context, log slog.Logger, statsChan <-chan *agentsdk.Stats, setInterval func(time.Duration)) (io.Closer, error) PostLifecycle(ctx context.Context, state agentsdk.PostLifecycleRequest) error PostAppHealth(ctx context.Context, req agentsdk.PostAppHealthsRequest) error PostStartup(ctx context.Context, req agentsdk.PostStartupRequest) error PostMetadata(ctx context.Context, req agentsdk.PostMetadataRequest) error PatchLogs(ctx context.Context, req agentsdk.PatchLogs) error GetServiceBanner(ctx context.Context) (codersdk.ServiceBannerConfig, error) }
type Options ¶
type Options struct { Filesystem afero.Fs LogDir string TempDir string ExchangeToken func(ctx context.Context) (string, error) Client Client ReconnectingPTYTimeout time.Duration EnvironmentVariables map[string]string Logger slog.Logger IgnorePorts map[int]string PortCacheDuration time.Duration SSHMaxTimeout time.Duration TailnetListenPort uint16 Subsystems []codersdk.AgentSubsystem Addresses []netip.Prefix PrometheusRegistry *prometheus.Registry ReportMetadataInterval time.Duration ServiceBannerRefreshInterval time.Duration Syscaller agentproc.Syscaller // ModifiedProcesses is used for testing process priority management. ModifiedProcesses chan []*agentproc.Process // ProcessManagementTick is used for testing process priority management. ProcessManagementTick <-chan time.Time }
type PostWorkspaceAgentAppHealth ¶
type PostWorkspaceAgentAppHealth func(context.Context, agentsdk.PostAppHealthsRequest) error
PostWorkspaceAgentAppHealth updates the workspace app health.
type WorkspaceAgentApps ¶
type WorkspaceAgentApps func(context.Context) ([]codersdk.WorkspaceApp, error)
WorkspaceAgentApps fetches the workspace apps.
type WorkspaceAppHealthReporter ¶
WorkspaceAppHealthReporter is a function that checks and reports the health of the workspace apps until the passed context is canceled.
func NewWorkspaceAppHealthReporter ¶
func NewWorkspaceAppHealthReporter(logger slog.Logger, apps []codersdk.WorkspaceApp, postWorkspaceAgentAppHealth PostWorkspaceAgentAppHealth) WorkspaceAppHealthReporter
NewWorkspaceAppHealthReporter creates a WorkspaceAppHealthReporter that reports app health to coderd.
Directories ¶
Path | Synopsis |
---|---|
Package agentproc contains logic for interfacing with local processes running in the same context as the agent.
|
Package agentproc contains logic for interfacing with local processes running in the same context as the agent. |
agentproctest
Package agentproctest contains utility functions for testing process management in the agent.
|
Package agentproctest contains utility functions for testing process management in the agent. |
Package reaper contains logic for reaping subprocesses.
|
Package reaper contains logic for reaping subprocesses. |
Click to show internal directories.
Click to hide internal directories.