Documentation ¶
Index ¶
Constants ¶
View Source
const ( DeployGroup = "HAPROXY_DEPLOYMENT_GROUP" DeployGroupAltPort = "HAPROXY_DEPLOYMENT_ALT_PORT" DeployGroupColour = "HAPROXY_DEPLOYMENT_COLOUR" DeployProxyPort = "HAPROXY_0_PORT" DeployTargetInstances = "HAPROXY_DEPLOYMENT_TARGET_INSTANCES" DeployStartedAt = "HAPROXY_DEPLOYMENT_STARTED_AT" ProxyAppId = "HAPROXY_APP_ID" ColourBlue = "blue" ColourGreen = "green" )
View Source
const ( HAProxyStatsQP = "/haproxy?stats;csv" HAProxyPidsQP = "/_haproxy_getpids" BackendRE = `(?i)^(\d+)_(\d+)_(\d+)_(\d+)_(\d+)$` )
Variables ¶
View Source
var ( ErrorNoLabels = errors.New("No labels found. Please define the HAPROXY_DEPLOYMENT_GROUP and HAPROXY_DEPLOYMENT_ALT_PORT label") ErrorNoServicePortSet = errors.New("No service port set") LabelFormatErr = "Please define the %s label" )
Functions ¶
This section is empty.
Types ¶
type BGClient ¶
type BGClient struct {
// contains filtered or unexported fields
}
func (*BGClient) DeployBlueGreen ¶
func (c *BGClient) DeployBlueGreen(app *marathon.Application) (*marathon.Application, error)
func (*BGClient) DeployBlueGreenFromFile ¶
func (c *BGClient) DeployBlueGreenFromFile(filename string) (*marathon.Application, error)
type BlueGreen ¶
type BlueGreen interface { // Starts a blue green deployment. If the application exists then the deployment will slowly // release the new version, draining connections from the HAProxy balancer during the process // {filename} - the file name of the json | yaml application // {opts} - blue/green options DeployBlueGreenFromFile(filename string) (*marathon.Application, error) // Starts a blue green deployment. If the application exists then the deployment will slowly // release the new version, draining connections from the HAProxy balancer during the process // {app} - the application to deploy/update // {opts} - blue/green options DeployBlueGreen(app *marathon.Application) (*marathon.Application, error) }
func NewBlueGreenClient ¶
func NewBlueGreenClient(marathon marathon.Marathon, opts *BlueGreenOptions) BlueGreen
type BlueGreenOptions ¶
type BlueGreenOptions struct { // The max time to wait on HAProxy to drain connections (in seconds) ProxyWaitTimeout time.Duration // Initial number of app instances to create InitialInstances int // Delay (in seconds) to wait between each successive deployment step StepDelay time.Duration // Resume from previous deployment Resume bool // Marathon-LB stats endpoint - ex: http://host:9090 LoadBalancer string // if true will attempt to wait until the NEW application or group is running Wait bool // If true an error will be returned on params defined in the configuration file that // could not resolve to user input and environment variables ErrorOnMissingParams bool // Additional environment params - looks at this map for token substitution which takes // priority over matching environment variables EnvParams map[string]string // Do not actually deploy or scale. Dry run only DryRun bool }
func NewBlueGreenOptions ¶
func NewBlueGreenOptions() *BlueGreenOptions
Click to show internal directories.
Click to hide internal directories.