Documentation
¶
Index ¶
- Constants
- func AgentScriptEnv() map[string]string
- func ApplyErrorf(format string, args ...any) *proto.ApplyComplete
- func CleanStaleSessions(ctx context.Context, workDirectory string, fs afero.Fs, now time.Time, ...) error
- func DefaultDisplayApps() *proto.DisplayApps
- func DirHasLockfile(dir string) (bool, error)
- func MutateTags(userID uuid.UUID, provided ...map[string]string) map[string]string
- func ParseErrorf(format string, args ...any) *proto.ParseComplete
- func PlanErrorf(format string, args ...any) *proto.PlanComplete
- func ProvisionerJobLogsNotifyChannel(jobID uuid.UUID) string
- func Serve(ctx context.Context, server Server, options *ServeOptions) error
- func SessionDir(sessID string) string
- func Tar(w io.Writer, logger slog.Logger, directory string, limit int64) error
- func Untar(directory string, r io.Reader) error
- type ProvisionerJobLogsNotifyMessage
- type ServeOptions
- type Server
- type Session
Constants ¶
const ( TagScope = "scope" TagOwner = "owner" ScopeUser = "user" ScopeOrganization = "organization" )
const (
// ReadmeFile is the location we look for to extract documentation from template versions.
ReadmeFile = "README.md"
)
const (
// TemplateArchiveLimit represents the maximum size of a template in bytes.
TemplateArchiveLimit = 1 << 20
)
Variables ¶
This section is empty.
Functions ¶
func AgentScriptEnv ¶
AgentScriptEnv returns a key-pair of scripts that are consumed by the Coder Terraform Provider. https://github.com/coder/terraform-provider-coder/blob/main/provider/agent.go (updateInitScript) performs additional string substitutions.
func ApplyErrorf ¶ added in v2.1.4
func ApplyErrorf(format string, args ...any) *proto.ApplyComplete
func CleanStaleSessions ¶ added in v2.2.0
func CleanStaleSessions(ctx context.Context, workDirectory string, fs afero.Fs, now time.Time, logger slog.Logger) error
CleanStaleSessions browses the work directory searching for stale session directories. Coder provisioner is supposed to remove them once after finishing the provisioning, but there is a risk of keeping them in case of a failure.
func DefaultDisplayApps ¶ added in v2.1.5
func DefaultDisplayApps() *proto.DisplayApps
DefaultDisplayApps returns the default display applications to enable if none are specified in a template.
func DirHasLockfile ¶
func MutateTags ¶ added in v2.5.0
MutateTags adjusts the "owner" tag dependent on the "scope". If the scope is "user", the "owner" is changed to the user ID. This is for user-scoped provisioner daemons, where users should own their own operations. Multiple sets of tags may be passed to this function; they will be merged into one single tag set. Otherwise, the "owner" tag is always an empty string. NOTE: "owner" must NEVER be nil. Otherwise it will end up being duplicated in the database, as idx_provisioner_daemons_name_owner_key is a partial unique index that includes a JSON field.
func ParseErrorf ¶ added in v2.1.4
func ParseErrorf(format string, args ...any) *proto.ParseComplete
func PlanErrorf ¶ added in v2.1.4
func PlanErrorf(format string, args ...any) *proto.PlanComplete
func ProvisionerJobLogsNotifyChannel ¶
ProvisionerJobLogsNotifyChannel is the PostgreSQL NOTIFY channel to publish updates to job logs on.
func Serve ¶
func Serve(ctx context.Context, server Server, options *ServeOptions) error
Serve starts a dRPC connection for the provisioner and transport provided.
func SessionDir ¶ added in v2.2.0
SessionDir returns the directory name with mandatory prefix.
Types ¶
type ProvisionerJobLogsNotifyMessage ¶
type ProvisionerJobLogsNotifyMessage struct { CreatedAfter int64 `json:"created_after"` EndOfLogs bool `json:"end_of_logs,omitempty"` }
ProvisionerJobLogsNotifyMessage is the payload published on the provisioner job logs notify channel.
type ServeOptions ¶
type ServeOptions struct { // Listener serves multiple connections. Cannot be combined with Conn. Listener net.Listener // Conn is a single connection to serve. Cannot be combined with Listener. Conn drpc.Transport Logger slog.Logger WorkDirectory string ExternalProvisioner bool }
ServeOptions are configurations to serve a provisioner.
type Server ¶ added in v2.1.4
type Server interface { Parse(s *Session, r *proto.ParseRequest, canceledOrComplete <-chan struct{}) *proto.ParseComplete Plan(s *Session, r *proto.PlanRequest, canceledOrComplete <-chan struct{}) *proto.PlanComplete Apply(s *Session, r *proto.ApplyRequest, canceledOrComplete <-chan struct{}) *proto.ApplyComplete }