Documentation
¶
Index ¶
- Constants
- func CurrentVersion(homeDir string) (v version.Version, source string, err error)
- func InstallIfNeeded(ctx context.Context, o *globals.GlobalOpts) (string, error)
- func NewGetVersions(envoyVersionsURL string, p version.Platform, v string) version.GetReleaseVersions
- func VersionUsageList() string
- func WriteCurrentVersion(v version.Version, homeDir string) error
- type LogFunc
- type Runtime
- type StartupHook
Constants ¶
const ( // CurrentVersionWorkingDirFile is used for stable "versions" and "help" output CurrentVersionWorkingDirFile = "$PWD/.envoy-version" // CurrentVersionHomeDirFile is used for stable "versions" and "help" output CurrentVersionHomeDirFile = "$FUNC_E_HOME/version" )
Variables ¶
This section is empty.
Functions ¶
func CurrentVersion ¶
CurrentVersion returns the first version in priority of VersionUsageList and its source or an error. The "source" and error messages returned include unexpanded variables to clarify the intended context. In the case no version was found, the version returned will be nil, not an error.
func InstallIfNeeded ¶
InstallIfNeeded downloads an Envoy binary corresponding to globals.GlobalOpts and returns a path to it or an error.
func NewGetVersions ¶ added in v1.1.0
func NewGetVersions(envoyVersionsURL string, p version.Platform, v string) version.GetReleaseVersions
NewGetVersions creates a new Envoy versions fetcher. TODO: validate the data before returning it!
func VersionUsageList ¶
func VersionUsageList() string
VersionUsageList is the priority order of Envoy version sources. This includes unresolved variables as it is both used statically for markdown generation, and also at runtime.
Types ¶
type Runtime ¶
type Runtime struct {
Out, Err io.Writer
OutFile, ErrFile *os.File
// contains filtered or unexported fields
}
Runtime manages an Envoy lifecycle
func NewRuntime ¶
NewRuntime creates a new Runtime that runs envoy in globals.RunOpts RunDir opts allows a user running envoy to control the working directory by ID or path, allowing explicit cleanup.
func (*Runtime) GetAdminAddress ¶
GetAdminAddress returns the current admin address in host:port format, or empty if not yet available. Exported for admin data collection functionality.
type StartupHook ¶ added in v1.2.0
StartupHook runs just after Envoy logs "starting main dispatch loop".
This is useful for callers who need access to two non-deterministic values:
1. The run directory (where stdout, stderr and the pid file are written) 2. The admin address (which is possibly ephemeral)
## Implementation Notes
Startup hooks are considered mandatory and will stop the run with error if failed. If your hook is optional, rescue panics and log your own errors.
Startup hooks run on the goroutine that consumes Envoy's STDERR. Envoy doesn't write a lot to stderr, so short tasks won't fill up the pipe and cause Envoy to block. However, if your hook is long-running, it must be run in a goroutine.