Documentation
¶
Index ¶
- Constants
- func DisplayProcessStatus(state ProcessState) string
- type DependsOnConfig
- type DeprecationParams
- type EnvCmd
- type Environment
- type LogRotationConfig
- type LoggerConfig
- type MemoryState
- type ProcessCondition
- type ProcessConfig
- func (p *ProcessConfig) AssignProcessExecutableAndArgs(shellConf *command.ShellConfig, elevatedShellArg string)
- func (p *ProcessConfig) CalculateReplicaName() string
- func (p *ProcessConfig) Compare(another *ProcessConfig) bool
- func (p *ProcessConfig) GetDependencies() []string
- func (p *ProcessConfig) IsDeferred() bool
- func (p *ProcessConfig) ValidateProcessConfig() error
- type ProcessDependency
- type ProcessFunc
- type ProcessPorts
- type ProcessState
- type Processes
- type ProcessesState
- type Project
- func (p *Project) GetDependenciesOrderNames() ([]string, error)
- func (p *Project) GetElevatedShellArg() string
- func (p *Project) GetLexicographicProcessNames() ([]string, error)
- func (p *Project) GetProcesses(names ...string) ([]ProcessConfig, error)
- func (p *Project) WithProcesses(names []string, fn ProcessFunc) error
- type ProjectState
- type RestartPolicy
- type RestartPolicyConfig
- type ShutDownParams
- type Vars
Constants ¶
const ( ProcessStateDisabled = "Disabled" ProcessStateForeground = "Foreground" ProcessStatePending = "Pending" ProcessStateRunning = "Running" ProcessStateLaunching = "Launching" ProcessStateLaunched = "Launched" ProcessStateRestarting = "Restarting" ProcessStateTerminating = "Terminating" ProcessStateCompleted = "Completed" ProcessStateSkipped = "Skipped" ProcessStateError = "Error" )
const ( ProcessHealthReady = "Ready" ProcessHealthNotReady = "Not Ready" ProcessHealthUnknown = PlaceHolderValue )
const ( ProcessUpdateUpdated = "updated" ProcessUpdateRemoved = "removed" ProcessUpdateAdded = "added" ProcessUpdateError = "error" )
const DefaultLaunchTimeout = 5
const DefaultNamespace = "default"
const PlaceHolderValue = "-"
Variables ¶
This section is empty.
Functions ¶
func DisplayProcessStatus ¶ added in v1.73.0
func DisplayProcessStatus(state ProcessState) string
Display a process status for the UI.
In particular, this displays "Failed" if the process has completed with a non-zero exit code. This makes it clearer when a process has failed, as opposed to exiting successfully.
We can't change the `Status` field to "Failed" directly because that would change the JSON API behavior, but we can change it in the TUI.
Types ¶
type DependsOnConfig ¶
type DependsOnConfig map[string]ProcessDependency
type DeprecationParams ¶
type Environment ¶
type Environment []string
type LogRotationConfig ¶ added in v0.69.0
type LogRotationConfig struct {
// Directory to log to when filelogging is enabled
Directory string `yaml:"directory,omitempty"`
// Filename is the name of the logfile which will be placed inside the directory
Filename string `yaml:"filename,omitempty"`
// MaxSize the max size in MB of the logfile before it's rolled
MaxSize int `yaml:"max_size_mb,omitempty"`
// MaxBackups the max number of rolled files to keep
MaxBackups int `yaml:"max_backups,omitempty"`
// MaxAge the max age in days to keep a logfile
MaxAge int `yaml:"max_age_days,omitempty"`
// Compress determines if the rotated log files should be compressed
// using gzip. The default is not to perform compression.
Compress bool `json:"compress" yaml:"compress,omitempty"`
}
LogRotationConfig is the configuration for logging
type LoggerConfig ¶ added in v0.69.0
type LoggerConfig struct {
// Rotation is the configuration for logging rotation
Rotation *LogRotationConfig `yaml:"rotation,omitempty"`
// FieldsOrder is the order in which fields are logged
FieldsOrder []string `yaml:"fields_order,omitempty"`
// DisableJSON disables log JSON formatting
DisableJSON bool `yaml:"disable_json,omitempty"`
// TimestampFormat is the format of the timestamp
TimestampFormat string `yaml:"timestamp_format,omitempty"`
// NoColor disables coloring
NoColor bool `yaml:"no_color,omitempty"`
// NoMetadata disables log metadata (process, replica)
NoMetadata bool `yaml:"no_metadata,omitempty"`
// AddTimestamp adds timestamp to log
AddTimestamp bool `yaml:"add_timestamp,omitempty"`
// FlushEachLine flushes the logger on each line
FlushEachLine bool `yaml:"flush_each_line,omitempty"`
}
type MemoryState ¶ added in v0.77.4
type ProcessCondition ¶ added in v1.64.1
type ProcessCondition int
const ( // ProcessConditionCompleted is the type for waiting until a process has completed (any exit code). ProcessConditionCompleted ProcessCondition = iota // ProcessConditionCompletedSuccessfully is the type for waiting until a process has completed successfully (exit code 0). ProcessConditionCompletedSuccessfully // ProcessConditionHealthy is the type for waiting until a process is healthy. ProcessConditionHealthy // ProcessConditionStarted is the type for waiting until a process has started (default). ProcessConditionStarted // ProcessConditionLogReady is the type for waiting until a process has printed a predefined log line ProcessConditionLogReady )
func (ProcessCondition) String ¶ added in v1.64.1
func (i ProcessCondition) String() string
func (*ProcessCondition) UnmarshalYAML ¶ added in v1.64.1
func (c *ProcessCondition) UnmarshalYAML(node *yaml.Node) error
type ProcessConfig ¶
type ProcessConfig struct {
Name string
Disabled bool `yaml:"disabled,omitempty"`
IsDaemon bool `yaml:"is_daemon,omitempty"`
Command string `yaml:"command,omitempty"`
Entrypoint []string `yaml:"entrypoint,omitempty"`
LogLocation string `yaml:"log_location,omitempty"`
LoggerConfig *LoggerConfig `yaml:"log_configuration,omitempty"`
Environment Environment `yaml:"environment,omitempty"`
RestartPolicy RestartPolicyConfig `yaml:"availability,omitempty"`
DependsOn DependsOnConfig `yaml:"depends_on,omitempty"`
LivenessProbe *health.Probe `yaml:"liveness_probe,omitempty"`
ReadinessProbe *health.Probe `yaml:"readiness_probe,omitempty"`
ReadyLogLine string `yaml:"ready_log_line,omitempty"`
ShutDownParams ShutDownParams `yaml:"shutdown,omitempty"`
DisableAnsiColors bool `yaml:"disable_ansi_colors,omitempty"`
WorkingDir string `yaml:"working_dir,omitempty"`
Namespace string `yaml:"namespace,omitempty"`
Replicas int `yaml:"replicas,omitempty"`
Extensions map[string]interface{} `yaml:",inline"`
Description string `yaml:"description,omitempty"`
Vars Vars `yaml:"vars,omitempty"`
IsForeground bool `yaml:"is_foreground,omitempty"`
IsTty bool `yaml:"is_tty,omitempty"`
IsElevated bool `yaml:"is_elevated,omitempty"`
LaunchTimeout int `yaml:"launch_timeout_seconds,omitempty"`
IsDisabled string `yaml:"is_disabled,omitempty"`
DisableDotEnv bool `yaml:"is_dotenv_disabled,omitempty"`
OriginalConfig string `yaml:"original_config,omitempty"`
ReplicaNum int `yaml:"replica_num,omitempty"`
ReplicaName string `yaml:"replica_name,omitempty"`
Executable string `yaml:"executable,omitempty"`
Args []string `yaml:"args,omitempty"`
}
func (*ProcessConfig) AssignProcessExecutableAndArgs ¶ added in v1.34.0
func (p *ProcessConfig) AssignProcessExecutableAndArgs(shellConf *command.ShellConfig, elevatedShellArg string)
func (*ProcessConfig) CalculateReplicaName ¶ added in v0.55.0
func (p *ProcessConfig) CalculateReplicaName() string
func (*ProcessConfig) Compare ¶ added in v1.27.0
func (p *ProcessConfig) Compare(another *ProcessConfig) bool
Compare returns true if two process configs are equal
func (*ProcessConfig) GetDependencies ¶
func (p *ProcessConfig) GetDependencies() []string
func (*ProcessConfig) IsDeferred ¶ added in v0.77.4
func (p *ProcessConfig) IsDeferred() bool
func (*ProcessConfig) ValidateProcessConfig ¶ added in v1.34.0
func (p *ProcessConfig) ValidateProcessConfig() error
type ProcessDependency ¶
type ProcessDependency struct {
Condition ProcessCondition `yaml:",omitempty"`
Extensions map[string]interface{} `yaml:",inline"`
}
type ProcessFunc ¶
type ProcessFunc func(process ProcessConfig) error
type ProcessPorts ¶ added in v0.55.0
type ProcessState ¶
type ProcessState struct {
Name string `json:"name"`
Namespace string `json:"namespace"`
Status string `json:"status"`
SystemTime string `json:"system_time"`
Age time.Duration `json:"age" swaggertype:"primitive,integer"`
Health string `json:"is_ready"`
HasHealthProbe bool `json:"has_ready_probe"`
Restarts int `json:"restarts"`
ExitCode int `json:"exit_code"`
Pid int `json:"pid"`
IsElevated bool `json:"is_elevated"`
PasswordProvided bool `json:"password_provided"`
Mem int64 `json:"mem"`
CPU float64 `json:"cpu"`
IsRunning bool `json:"is_running"`
}
func NewProcessState ¶ added in v0.55.0
func NewProcessState(proc *ProcessConfig) *ProcessState
func (*ProcessState) IsReady ¶ added in v1.63.0
func (p *ProcessState) IsReady() bool
Check if a process is running and healthy.
If `hasHealthProbe` is true, the process must be healthy to be considered ready.
func (*ProcessState) IsReadyReason ¶ added in v1.63.0
func (p *ProcessState) IsReadyReason() (bool, string)
Check if a process is running and healthy and explain why.
If `hasHealthProbe` is true, the process must be healthy to be considered ready.
The explanation may be empty.
type Processes ¶
type Processes map[string]ProcessConfig
type ProcessesState ¶ added in v0.50.0
type ProcessesState struct {
States []ProcessState `json:"data"`
}
func (*ProcessesState) IsReady ¶ added in v1.63.0
func (p *ProcessesState) IsReady() bool
type Project ¶
type Project struct {
Version string `yaml:"version"`
Name string `yaml:"name,omitempty"`
LogLocation string `yaml:"log_location,omitempty"`
LogLevel string `yaml:"log_level,omitempty"`
LogLength int `yaml:"log_length,omitempty"`
LoggerConfig *LoggerConfig `yaml:"log_configuration,omitempty"`
LogFormat string `yaml:"log_format,omitempty"`
Processes Processes `yaml:"processes"`
Environment Environment `yaml:"environment,omitempty"`
ShellConfig *command.ShellConfig `yaml:"shell,omitempty"`
IsStrict bool `yaml:"is_strict,omitempty"`
Vars Vars `yaml:"vars,omitempty"`
DisableEnvExpansion bool `yaml:"disable_env_expansion,omitempty"`
IsTuiDisabled bool `yaml:"is_tui_disabled,omitempty"`
ExtendsProject string `yaml:"extends,omitempty"`
EnvCommands EnvCmd `yaml:"env_cmds,omitempty"`
IsOrderedShutdown bool `yaml:"ordered_shutdown,omitempty"`
FileNames []string `yaml:"file_names,omitempty"`
EnvFileNames []string `yaml:"env_file_names,omitempty"`
DotEnvVars map[string]string `yaml:"dot_env_vars,omitempty"`
}
func (*Project) GetDependenciesOrderNames ¶
func (*Project) GetElevatedShellArg ¶ added in v1.46.0
func (*Project) GetLexicographicProcessNames ¶
func (*Project) GetProcesses ¶ added in v0.75.0
func (p *Project) GetProcesses(names ...string) ([]ProcessConfig, error)
func (*Project) WithProcesses ¶
func (p *Project) WithProcesses(names []string, fn ProcessFunc) error
WithProcesses run ProcessFunc on each Process and dependencies in dependency order
type ProjectState ¶ added in v0.75.0
type ProjectState struct {
FileNames []string `json:"fileNames"`
UpTime time.Duration `json:"upTime" swaggertype:"primitive,integer"`
StartTime time.Time `json:"startTime"`
ProcessNum int `json:"processNum"`
RunningProcessNum int `json:"runningProcessNum"`
UserName string `json:"userName"`
Version string `json:"version"`
ProjectName string `json:"projectName"`
MemoryState *MemoryState `json:"memoryState,omitempty"`
}
type RestartPolicy ¶ added in v1.64.1
type RestartPolicy int
const ( RestartPolicyNo RestartPolicy = iota RestartPolicyAlways RestartPolicyOnFailure RestartPolicyExitOnFailure )
func (RestartPolicy) String ¶ added in v1.64.1
func (i RestartPolicy) String() string
func (*RestartPolicy) UnmarshalYAML ¶ added in v1.64.1
func (p *RestartPolicy) UnmarshalYAML(node *yaml.Node) error
type RestartPolicyConfig ¶
type RestartPolicyConfig struct {
Restart RestartPolicy `yaml:",omitempty"`
BackoffSeconds int `yaml:"backoff_seconds,omitempty"`
MaxRestarts int `yaml:"max_restarts,omitempty"`
ExitOnEnd bool `yaml:"exit_on_end,omitempty"`
ExitOnSkipped bool `yaml:"exit_on_skipped,omitempty"`
}