agent
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Index¶
- Constants
- Variables
- func PrometheusMetricsHandler(prometheusRegistry *prometheus.Registry, logger slog.Logger) http.Handler
- func SSHKeySeed(userName, workspaceName, agentName string) (int64, error)
- type Agent
- type Client
- type LSFile
- type LSRelativity
- type LSRequest
- type LSResponse
- type Options
- type PostWorkspaceAgentAppHealth
- type WorkspaceAppHealthReporter
Constants¶
const (ProtocolReconnectingPTY = "reconnecting-pty"ProtocolSSH = "ssh"ProtocolDial = "dial")
const (EnvProcPrioMgmt = "CODER_PROC_PRIO_MGMT"EnvProcOOMScore = "CODER_PROC_OOM_SCORE")
EnvProcPrioMgmt determines whether we attempt to manageprocess CPU and OOM Killer priority.
const EnvAgentSubsystem = "CODER_AGENT_SUBSYSTEM"
EnvAgentSubsystem is the environment variable used to denote thespecialized environment in which the agent is running(e.g. envbox, envbuilder).
Variables¶
var WindowsDriveRegex =regexp.MustCompile(`^[a-zA-Z]:\\$`)
Functions¶
funcPrometheusMetricsHandler¶added inv2.10.0
funcSSHKeySeed¶added inv2.22.0
SSHKeySeed converts an owner userName, workspaceName and agentName to an int64 hash.This uses the FNV-1a hash algorithm which provides decent distribution and collisionresistance for string inputs.
Why owner username, workspace name, and agent name? These are the components that are used in hostnames for theworkspace over SSH, and so we want the workspace to have a stable key with respect to these. We don't use therespective UUIDs. The workspace UUID would be different if you delete and recreate a workspace with the same name.The agent UUID is regenerated on each build. Since Coder's Tailnet networking is handling the authentication, weshould not be showing users warnings about host SSH keys.
Types¶
typeAgent¶
typeClient¶
type Client interface {ConnectRPC25(ctxcontext.Context) (proto.DRPCAgentClient25,tailnetproto.DRPCTailnetClient25,error,)RewriteDERPMap(derpMap *tailcfg.DERPMap)}
typeLSRelativity¶added inv2.21.0
type LSRelativitystring
const (LSRelativityRootLSRelativity = "root"LSRelativityHomeLSRelativity = "home")
typeLSRequest¶added inv2.21.0
type LSRequest struct {// e.g. [], ["repos", "coder"],Path []string `json:"path"`// Whether the supplied path is relative to the user's home directory,// or the root directory.RelativityLSRelativity `json:"relativity"`}
typeLSResponse¶added inv2.21.0
type LSResponse struct {AbsolutePath []string `json:"absolute_path"`// Returned so clients can display the full path to the user, and// copy it to configure file sync// e.g. Windows: "C:\\Users\\coder"// Linux: "/home/coder"AbsolutePathStringstring `json:"absolute_path_string"`Contents []LSFile `json:"contents"`}
typeOptions¶
type Options struct {Filesystemafero.FsLogDirstringTempDirstringScriptDataDirstringExchangeToken func(ctxcontext.Context) (string,error)ClientClientReconnectingPTYTimeouttime.DurationEnvironmentVariables map[string]stringLoggerslog.LoggerIgnorePorts map[int]stringPortCacheDurationtime.DurationSSHMaxTimeouttime.DurationTailnetListenPortuint16Subsystems []codersdk.AgentSubsystemPrometheusRegistry *prometheus.RegistryReportMetadataIntervaltime.DurationServiceBannerRefreshIntervaltime.DurationBlockFileTransferboolExeceragentexec.ExecerExperimentalDevcontainersEnabledboolContainerAPIOptions []agentcontainers.Option// Enable ExperimentalDevcontainersEnabled for these to be effective.}
typePostWorkspaceAgentAppHealth¶
type PostWorkspaceAgentAppHealth func(context.Context,agentsdk.PostAppHealthsRequest)error
PostWorkspaceAgentAppHealth updates the workspace app health.
typeWorkspaceAppHealthReporter¶
WorkspaceAppHealthReporter is a function that checks and reports the health of the workspace apps until the passed context is canceled.
funcNewAppHealthReporterWithClock¶added inv2.13.0
func NewAppHealthReporterWithClock(loggerslog.Logger,apps []codersdk.WorkspaceApp,postWorkspaceAgentAppHealthPostWorkspaceAgentAppHealth,clkquartz.Clock,)WorkspaceAppHealthReporter
NewAppHealthReporterWithClock is only called directly by test code. Product code should callNewAppHealthReporter.
funcNewWorkspaceAppHealthReporter¶
func NewWorkspaceAppHealthReporter(loggerslog.Logger, apps []codersdk.WorkspaceApp, postWorkspaceAgentAppHealthPostWorkspaceAgentAppHealth)WorkspaceAppHealthReporter
NewWorkspaceAppHealthReporter creates a WorkspaceAppHealthReporter that reports app health to coderd.
Source Files¶
Directories¶
Path | Synopsis |
---|---|
acmock Package acmock is a generated GoMock package. | Package acmock is a generated GoMock package. |
dcspec Package dcspec contains an automatically generated Devcontainer specification. | Package dcspec contains an automatically generated Devcontainer specification. |
watcher Package watcher provides file system watching capabilities for the agent. | Package watcher provides file system watching capabilities for the agent. |
Package reaper contains logic for reaping subprocesses. | Package reaper contains logic for reaping subprocesses. |