Documentation ¶
Index ¶
- Constants
- Variables
- func ApplyFlagsToGuest(ctx context.Context, guest *api.MachineGuest) bool
- func BlueGreenStrategy(md *machineDeployment, blueMachines []*machineUpdateEntry) *blueGreen
- func DeployWithConfig(ctx context.Context, appConfig *appconfig.Config, forceYes bool, ...) (err error)
- func New() (cmd *cobra.Command)
- type MachineDeployment
- type MachineDeploymentArgs
- type ProcessGroupsDiff
Constants ¶
Variables ¶
View Source
var ( ErrAborted = errors.New("deployment aborted by user") ErrWaitTimeout = errors.New("wait for goroutine timeout") ErrCreateGreenMachine = errors.New("failed to create green machines") ErrWaitForStartedState = errors.New("could not get all green machines into started state") ErrWaitForHealthy = errors.New("could not get all green machines to be healthy") ErrMarkReadyForTraffic = errors.New("failed to mark green machines as ready") ErrDestroyBlueMachines = errors.New("failed to destroy previous deployment") ErrValidationError = errors.New("app not in valid state for bluegreen deployments") )
View Source
var CommonFlags = flag.Set{ flag.Region(), flag.Image(), flag.Now(), flag.RemoteOnly(false), flag.LocalOnly(), flag.Push(), flag.Detach(), flag.Strategy(), flag.Dockerfile(), flag.Ignorefile(), flag.ImageLabel(), flag.BuildArg(), flag.BuildSecret(), flag.BuildTarget(), flag.NoCache(), flag.Nixpacks(), flag.BuildOnly(), flag.Bool{ Name: "provision-extensions", Description: "Provision any extensions assigned as a default to first deployments", }, flag.StringArray{ Name: "env", Shorthand: "e", Description: "Set of environment variables in the form of NAME=VALUE pairs. Can be specified multiple times.", }, flag.Bool{ Name: "auto-confirm", Description: "Will automatically confirm changes when running non-interactively.", }, flag.Int{ Name: "wait-timeout", Description: "Seconds to wait for individual machines to transition states and become healthy.", Default: int(DefaultWaitTimeout.Seconds()), }, flag.String{ Name: "release-command-timeout", Description: "Seconds to wait for a release command finish running, or 'none' to disable.", Default: strconv.Itoa(int(DefaultReleaseCommandTimeout.Seconds())), }, flag.Int{ Name: "lease-timeout", Description: "Seconds to lease individual machines while running deployment. All machines are leased at the beginning and released at the end. The lease is refreshed periodically for this same time, which is why it is short. flyctl releases leases in most cases.", Default: int(DefaultLeaseTtl.Seconds()), }, flag.Bool{ Name: "force-nomad", Description: "(Deprecated) Use the Apps v1 platform built with Nomad", Default: false, Hidden: true, }, flag.Bool{ Name: "force-machines", Description: "Use the Apps v2 platform built with Machines", Default: false, Hidden: true, }, flag.String{ Name: "vm-size", Description: `The VM size to use when deploying for the first time. See "fly platform vm-sizes" for valid values`, Aliases: []string{"size"}, }, flag.Bool{ Name: "ha", Description: "Create spare machines that increases app availability", Default: true, }, flag.Bool{ Name: "smoke-checks", Description: "Perform smoke checks during deployment", Default: true, }, flag.Float64{ Name: "max-unavailable", Description: "Max number of unavailable machines during rolling updates. A number between 0 and 1 means percent of total machines", Default: 0.33, }, flag.Bool{ Name: "no-public-ips", Description: "Do not allocate any new public IP addresses", }, flag.Int{ Name: "vm-cpus", Description: "Number of CPUs", Aliases: []string{"cpus"}, }, flag.String{ Name: "vm-cpukind", Description: "The kind of CPU to use ('shared' or 'performance')", }, flag.Int{ Name: "vm-memory", Description: "Memory (in megabytes) to attribute to the VM", Aliases: []string{"memory"}, }, flag.StringArray{ Name: "file-local", Description: "Set of files in the form of /path/inside/machine=<local/path> pairs. Can be specified multiple times.", }, flag.StringArray{ Name: "file-literal", Description: "Set of literals in the form of /path/inside/machine=VALUE pairs where VALUE is the content. Can be specified multiple times.", }, flag.StringArray{ Name: "file-secret", Description: "Set of secrets in the form of /path/inside/machine=SECRET pairs where SECRET is the name of the secret. Can be specified multiple times.", }, flag.StringSlice{ Name: "exclude-regions", Description: "Deploy to all machines except machines in these regions. Multiple regions can be specified with comma separated values or by providing the flag multiple times. --exclude-regions iad,sea --exclude-regions syd will exclude all three iad, sea, and syd regions. Applied after --only-regions. V2 machines platform only.", }, flag.StringSlice{ Name: "only-regions", Description: "Deploy to machines only in these regions. Multiple regions can be specified with comma separated values or by providing the flag multiple times. --only-regions iad,sea --only-regions syd will deploy to all three iad, sea, and syd regions. Applied before --exclude-regions. V2 machines platform only.", }, }
Functions ¶
func ApplyFlagsToGuest ¶ added in v0.1.66
func ApplyFlagsToGuest(ctx context.Context, guest *api.MachineGuest) bool
ApplyFlagsToGuest applies CLI flags to a Guest Returns true if any flags were applied
func BlueGreenStrategy ¶ added in v0.1.40
func BlueGreenStrategy(md *machineDeployment, blueMachines []*machineUpdateEntry) *blueGreen
func DeployWithConfig ¶ added in v0.0.337
Types ¶
type MachineDeployment ¶ added in v0.0.452
func NewMachineDeployment ¶ added in v0.0.452
func NewMachineDeployment(ctx context.Context, args MachineDeploymentArgs) (MachineDeployment, error)
type MachineDeploymentArgs ¶ added in v0.0.452
type MachineDeploymentArgs struct { AppCompact *api.AppCompact DeploymentImage string Strategy string EnvFromFlags []string PrimaryRegionFlag string SkipSmokeChecks bool SkipHealthChecks bool RestartOnly bool WaitTimeout time.Duration LeaseTimeout time.Duration ReleaseCmdTimeout time.Duration Guest *api.MachineGuest IncreasedAvailability bool AllocPublicIP bool UpdateOnly bool Files []*api.File ProvisionExtensions bool ExcludeRegions map[string]interface{} OnlyRegions map[string]interface{} }
type ProcessGroupsDiff ¶ added in v0.0.490
type ProcessGroupsDiff struct {
// contains filtered or unexported fields
}
Click to show internal directories.
Click to hide internal directories.