planutil

package
v1.2.30 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 19, 2024 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// AllGroupAttribute represents the rolling strategy property
	// will cause the action to take place to all instances at the
	// same time. Potentially causing downtime in the cluster.
	AllGroupAttribute = "__all__"

	// NameGroupAttribute represents the rolling strategy porperty
	// will cause the action to take place on one instance at a time.
	NameGroupAttribute = "__name__"

	// ZoneGroupAttribute represents the rolling strategy porperty
	// will cause the action to take place on one instance at a time.
	ZoneGroupAttribute = "logical_zone_name"
)

Variables

View Source
var (
	// DefaultPlanStrategy will use the "default", strategy
	// which defaults to Grow and Shrink
	DefaultPlanStrategy = &models.PlanStrategy{}

	// GrowAndShrinkStrategy will cause the plan to create new instances first
	// and once the changes are finished it will remove the old instances
	GrowAndShrinkStrategy = &models.PlanStrategy{
		GrowAndShrink: new(models.RollingStrategyConfig),
	}

	// RollingGrowAndShrinkStrategy will cause the plan to perform a grow and shrink
	// but instead of creating all the new instances at once, it will do it rolling.
	// This reduces the amount of available capacity for any change on clusters 1>.
	RollingGrowAndShrinkStrategy = &models.PlanStrategy{
		RollingGrowAndShrink: new(models.RollingStrategyConfig),
	}

	// MajorUpgradeStrategy represents the strategy that will
	// be used in Major version upgrades
	MajorUpgradeStrategy = &models.PlanStrategy{
		Rolling: &models.RollingStrategyConfig{
			GroupBy: AllGroupAttribute,
		},
	}

	// RollingByNameStrategy represents the strategy that will
	// be used when the plan wants to be applied one node at a
	// time without causing downtime
	RollingByNameStrategy = &models.PlanStrategy{
		Rolling: &models.RollingStrategyConfig{
			GroupBy: NameGroupAttribute,
		},
	}
)

Functions

This section is empty.

Types

type ReapplyParams

type ReapplyParams struct {
	ID                   string
	HidePlan             bool `kebabcase:"Doesn't print the plan before reapplying"`
	Default              bool `kebabcase:"Overwrites the strategy to the default one"`
	Rolling              bool `kebabcase:"Overwrites the strategy to rolling"`
	GrowAndShrink        bool `kebabcase:"Overwrites the strategy to grow and shrink"`
	RollingGrowAndShrink bool `kebabcase:"Overwrites the strategy to rolling grow and shrink (one at a time)"`
	RollingAll           bool `kebabcase:"Overwrites the strategy to apply the change in all the instances at a time (causes downtime)"`
	Reallocate           bool `kebabcase:"Forces creation of new instances"`
	ExtendedMaintenance  bool `kebabcase:"Stops routing to the cluster instances after the plan has been applied"`
	OverrideFailsafe     bool `kebabcase:"Overrides failsafe at the constructor level that prevent bad things from happening"`
}

ReapplyParams contains the parameters required to call a plan reapply action

func (ReapplyParams) Strategy

func (p ReapplyParams) Strategy() *models.PlanStrategy

Strategy returns a plan strategy from the specified ReapplyParams If all strategies are false, nil will be returned, which won't alter the previously specified strategy.

func (ReapplyParams) Validate

func (p ReapplyParams) Validate() error

Validate returns an error if the parameters are invalid

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL