Documentation ¶
Index ¶
- Constants
- Variables
- func BoolValue(v *bool) bool
- func CreateStackName(namespace string, stackType StackType, names ...string) string
- func GetVersion() string
- func Int64Value(v *int64) int64
- func MapApply(dest, src interface{})
- func SetVersion(v string)
- func SetupLogging(verbosity int)
- func StringValue(v *string) string
- func TimeValue(v *time.Time) time.Time
- type ArtifactCreator
- type ArtifactGetter
- type ArtifactManager
- type ArtifactProvider
- type BaseExtensionImpl
- func (ext *BaseExtensionImpl) DecorateStackParameters(stackName string, stackParameters map[string]string) (map[string]string, error)
- func (ext *BaseExtensionImpl) DecorateStackTags(stackName string, stackTags map[string]string) (map[string]string, error)
- func (ext *BaseExtensionImpl) DecorateStackTemplate(assetName string, stackName string, inTemplate io.Reader) (io.Reader, error)
- func (ext *BaseExtensionImpl) ID() string
- type CPUMemory
- type ClusterInstanceLister
- type ClusterManager
- type Config
- type Container
- type ContainerInstance
- type Context
- type Database
- type DockerImageBuilder
- type DockerImagePusher
- type DockerManager
- type ECSRunTaskResult
- type ElbManager
- type ElbRule
- type ElbRuleLister
- type EnvProvider
- type Environment
- type EnvironmentVariableEvaluator
- type Extension
- type ExtensionImpl
- type ExtensionsManager
- type GitInfo
- type ImageFinder
- type Instance
- type InstanceLister
- type InstanceManager
- type JSONOutput
- type LogsManager
- type LogsViewer
- type ParamGetter
- type ParamManager
- type ParamSetter
- type Pipeline
- type PipelineGitInfoGetter
- type PipelineManager
- type PipelineStageState
- type PipelineStateLister
- type RdsIamAuthenticationSetter
- type RdsManager
- type RepositoryAuthenticator
- type Roleset
- type RolesetDeleter
- type RolesetGetter
- type RolesetManager
- type RolesetUpserter
- type Schedule
- type Service
- type Stack
- type StackDeleter
- type StackGetter
- type StackLister
- type StackManager
- type StackType
- type StackUpserter
- type StackWaiter
- type Task
- type TaskCommandExecutor
- type TaskContainerLister
- type TaskManager
- type TaskStopper
- type TemplateUpdateMode
Constants ¶
const ( Empty = "" DefaultVersion = "1.0.0-local" )
Constants used by common package
const ( // StackStatusCreateInProgress is a StackStatus enum value StackStatusCreateInProgress = "CREATE_IN_PROGRESS" // StackStatusCreateFailed is a StackStatus enum value StackStatusCreateFailed = "CREATE_FAILED" // StackStatusCreateComplete is a StackStatus enum value StackStatusCreateComplete = "CREATE_COMPLETE" // StackStatusRollbackInProgress is a StackStatus enum value StackStatusRollbackInProgress = "ROLLBACK_IN_PROGRESS" // StackStatusRollbackFailed is a StackStatus enum value StackStatusRollbackFailed = "ROLLBACK_FAILED" // StackStatusRollbackComplete is a StackStatus enum value StackStatusRollbackComplete = "ROLLBACK_COMPLETE" // StackStatusDeleteInProgress is a StackStatus enum value StackStatusDeleteInProgress = "DELETE_IN_PROGRESS" // StackStatusDeleteFailed is a StackStatus enum value StackStatusDeleteFailed = "DELETE_FAILED" // StackStatusDeleteComplete is a StackStatus enum value StackStatusDeleteComplete = "DELETE_COMPLETE" // StackStatusUpdateInProgress is a StackStatus enum value StackStatusUpdateInProgress = "UPDATE_IN_PROGRESS" // StackStatusUpdateCompleteCleanupInProgress is a StackStatus enum value StackStatusUpdateCompleteCleanupInProgress = "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS" // StackStatusUpdateComplete is a StackStatus enum value StackStatusUpdateComplete = "UPDATE_COMPLETE" // StackStatusUpdateRollbackInProgress is a StackStatus enum value StackStatusUpdateRollbackInProgress = "UPDATE_ROLLBACK_IN_PROGRESS" // StackStatusUpdateRollbackFailed is a StackStatus enum value StackStatusUpdateRollbackFailed = "UPDATE_ROLLBACK_FAILED" // StackStatusUpdateRollbackCompleteCleanupInProgress is a StackStatus enum value StackStatusUpdateRollbackCompleteCleanupInProgress = "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS" // StackStatusUpdateRollbackComplete is a StackStatus enum value StackStatusUpdateRollbackComplete = "UPDATE_ROLLBACK_COMPLETE" // StackStatusReviewInProgress is a StackStatus enum value StackStatusReviewInProgress = "REVIEW_IN_PROGRESS" )
const ( StackTypeVpc StackType = "vpc" StackTypeTarget = "target" StackTypeIam = "iam" StackTypeEnv = "environment" StackTypeLoadBalancer = "loadbalancer" StackTypeConsul = "consul" StackTypeRepo = "repo" StackTypeApp = "app" StackTypeService = "service" StackTypePipeline = "pipeline" StackTypeDatabase = "database" StackTypeSchedule = "schedule" StackTypeBucket = "bucket" )
List of valid stack types
const ( EnvProviderEcs EnvProvider = "ecs" EnvProviderEcsFargate = "ecs-fargate" EnvProviderEc2 = "ec2" )
List of valid environment strategies
Variables ¶
var CPUMemorySupport = []CPUMemory{ {CPU: 256, Memory: []int{512, 1, 2}}, {CPU: 512, Memory: []int{1, 2, 3, 4}}, {CPU: 1024, Memory: []int{2, 3, 4, 5, 6, 7, 8}}, {CPU: 2048, Memory: []int{4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}}, {CPU: 4096, Memory: []int{8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30}}, }
CPUMemorySupport represents valid ECS combinations
Functions ¶
func BoolValue ¶ added in v0.2.1
BoolValue returns the value of the bool pointer passed in or false if the pointer is nil.
func CreateStackName ¶
CreateStackName will create a name for a stack
func Int64Value ¶ added in v0.2.1
Int64Value returns the value of the int64 pointer passed in or 0 if the pointer is nil.
func MapApply ¶ added in v0.1.8
func MapApply(dest, src interface{})
MapApply recursively applies map values from source to destination
func SetVersion ¶ added in v0.1.3
func SetVersion(v string)
SetVersion returns the current version of the app
func SetupLogging ¶
func SetupLogging(verbosity int)
SetupLogging - verbosity 0=error, 1=info, 2=debug
func StringValue ¶ added in v0.2.1
StringValue returns the value of the string pointer passed in or "" if the pointer is nil.
Types ¶
type ArtifactCreator ¶ added in v0.2.1
type ArtifactCreator interface {
CreateArtifact(body io.ReadSeeker, destURI string) error
}
ArtifactCreator for creating artifacts
type ArtifactGetter ¶ added in v1.1.1
type ArtifactGetter interface {
GetArtifact(uri string, etag string) (io.ReadCloser, string, error)
}
ArtifactGetter for getting artifacts. conditional get (based on etag). returns body, etag and optional error
type ArtifactManager ¶ added in v0.2.1
type ArtifactManager interface { ArtifactCreator ArtifactGetter }
ArtifactManager composite of all artifact capabilities
type ArtifactProvider ¶ added in v0.2.1
type ArtifactProvider string
ArtifactProvider describes supported artifact strategies
const ( ArtifactProviderEcr ArtifactProvider = "ecr" ArtifactProviderS3 = "s3" )
List of valid artifact providers
type BaseExtensionImpl ¶ added in v1.1.1
type BaseExtensionImpl struct {
// contains filtered or unexported fields
}
BaseExtensionImpl basic no-op extension
func (*BaseExtensionImpl) DecorateStackParameters ¶ added in v1.1.1
func (ext *BaseExtensionImpl) DecorateStackParameters(stackName string, stackParameters map[string]string) (map[string]string, error)
DecorateStackParameters don't decorate, just return
func (*BaseExtensionImpl) DecorateStackTags ¶ added in v1.1.1
func (ext *BaseExtensionImpl) DecorateStackTags(stackName string, stackTags map[string]string) (map[string]string, error)
DecorateStackTags don't decorate, just return
func (*BaseExtensionImpl) DecorateStackTemplate ¶ added in v1.1.1
func (ext *BaseExtensionImpl) DecorateStackTemplate(assetName string, stackName string, inTemplate io.Reader) (io.Reader, error)
DecorateStackTemplate don't decorate, just return
func (*BaseExtensionImpl) ID ¶ added in v1.1.1
func (ext *BaseExtensionImpl) ID() string
ID returns unique id for extension
type ClusterInstanceLister ¶
type ClusterInstanceLister interface {
ListInstances(clusterName string) ([]ContainerInstance, error)
}
ClusterInstanceLister for getting cluster instances
type ClusterManager ¶
type ClusterManager interface { ClusterInstanceLister RepositoryAuthenticator }
ClusterManager composite of all cluster capabilities
type Config ¶
type Config struct { Namespace string `yaml:"namespace,omitempty"` Environments []Environment `yaml:"environments,omitempty"` Service Service `yaml:"service,omitempty"` Basedir string `yaml:"-"` RelMuFile string `yaml:"-"` Repo struct { Name string Slug string Revision string Branch string Provider string } `yaml:"-"` Templates map[string]interface{} `yaml:"templates,omitempty"` Parameters map[string]map[string]string `yaml:"parameters,omitempty"` Tags map[string]map[string]string `yaml:"tags,omitempty"` Extensions []Extension `yaml:"extensions,omitempty"` DisableIAM bool `yaml:"disableIAM,omitempty"` Roles struct { CloudFormation string `yaml:"cloudFormation,omitempty"` } `yaml:"roles,omitempty"` }
Config defines the structure of the yml file for the mu config
type ContainerInstance ¶ added in v0.2.1
type ContainerInstance *ecs.ContainerInstance
ContainerInstance represents the ECS container instance
type Context ¶
type Context struct { Config Config StackManager StackManager ClusterManager ClusterManager InstanceManager InstanceManager ElbManager ElbManager RdsManager RdsManager ParamManager ParamManager LocalPipelineManager PipelineManager // instance that ignores region/profile/role PipelineManager PipelineManager LogsManager LogsManager DockerManager DockerManager DockerOut io.Writer TaskManager TaskManager ArtifactManager ArtifactManager RolesetManager RolesetManager ExtensionsManager ExtensionsManager }
Context defines the context object passed around
func (*Context) InitializeConfig ¶ added in v0.1.7
InitializeConfig loads config object
func (*Context) InitializeConfigFromFile ¶ added in v0.1.7
InitializeConfigFromFile loads config from file
func (*Context) InitializeContext ¶ added in v0.1.7
InitializeContext loads manager objects
func (*Context) InitializeExtensions ¶ added in v1.1.1
InitializeExtensions loads extension objects
type Database ¶ added in v0.1.12
type Database struct { Name string `yaml:"name,omitempty"` InstanceClass string `yaml:"instanceClass,omitempty"` Engine string `yaml:"engine,omitempty"` IamAuthentication bool `yaml:"iamAuthentication,omitempty"` MasterUsername string `yaml:"masterUsername,omitempty"` AllocatedStorage string `yaml:"allocatedStorage,omitempty"` }
Database definition
type DockerImageBuilder ¶ added in v0.1.3
type DockerImageBuilder interface {
ImageBuild(contextDir string, serviceName string, relDockerfile string, tags []string, dockerOut io.Writer) error
}
DockerImageBuilder for creating docker images
type DockerImagePusher ¶ added in v0.1.3
type DockerImagePusher interface {
ImagePush(image string, registryAuth string, dockerOut io.Writer) error
}
DockerImagePusher for pushing docker images
type DockerManager ¶ added in v0.1.3
type DockerManager interface { DockerImageBuilder DockerImagePusher }
DockerManager composite of all cluster capabilities
type ECSRunTaskResult ¶ added in v0.1.13
type ECSRunTaskResult *ecs.RunTaskOutput
ECSRunTaskResult describes the output result from ECS call to RunTask
type ElbManager ¶ added in v0.1.7
type ElbManager interface { ElbRuleLister }
ElbManager composite of all cluster capabilities
type ElbRuleLister ¶ added in v0.1.7
ElbRuleLister for getting cluster instances
type EnvProvider ¶ added in v0.2.1
type EnvProvider string
EnvProvider describes supported environment strategies
type Environment ¶
type Environment struct { Name string `yaml:"name,omitempty"` Provider EnvProvider `yaml:"provider,omitempty"` Loadbalancer struct { HostedZone string `yaml:"hostedzone,omitempty"` Name string `yaml:"name,omitempty"` Certificate string `yaml:"certificate,omitempty"` Internal bool `yaml:"internal,omitempty"` } `yaml:"loadbalancer,omitempty"` Cluster struct { InstanceType string `yaml:"instanceType,omitempty"` ImageID string `yaml:"imageId,omitempty"` ImageOsType string `yaml:"osType,omitempty"` InstanceTenancy string `yaml:"instanceTenancy,omitempty"` DesiredCapacity int `yaml:"desiredCapacity,omitempty"` MinSize int `yaml:"minSize,omitempty"` MaxSize int `yaml:"maxSize,omitempty"` KeyName string `yaml:"keyName,omitempty"` SSHAllow string `yaml:"sshAllow,omitempty"` TargetCPUReservation int `yaml:"targetCPUReservation,omitempty"` TargetMemoryReservation int `yaml:"targetMemoryReservation,omitempty"` HTTPProxy string `yaml:"httpProxy,omitempty"` } `yaml:"cluster,omitempty"` Discovery struct { Provider string `yaml:"provider,omitempty"` Configuration map[string]string `yaml:"configuration,omitempty"` } `yaml:"discovery,omitempty"` VpcTarget struct { VpcID string `yaml:"vpcId,omitempty"` InstanceSubnetIds []string `yaml:"instanceSubnetIds,omitempty"` ElbSubnetIds []string `yaml:"elbSubnetIds,omitempty"` } `yaml:"vpcTarget,omitempty"` Roles struct { EcsInstance string `yaml:"ecsInstance,omitempty"` ConsulClientTask string `yaml:"consulClientTask,omitempty"` ConsulInstance string `yaml:"consulInstance,omitempty"` ConsulServerTask string `yaml:"consulServerTask,omitempty"` } `yaml:"roles,omitempty"` }
Environment defines the structure of the yml file for an environment
type EnvironmentVariableEvaluator ¶ added in v1.2.1
EnvironmentVariableEvaluator implements an io.Reader
type ExtensionImpl ¶ added in v1.1.1
type ExtensionImpl interface { ID() string DecorateStackTemplate(assetName string, stackName string, templateBody io.Reader) (io.Reader, error) DecorateStackParameters(stackName string, stackParameters map[string]string) (map[string]string, error) DecorateStackTags(stackName string, stackTags map[string]string) (map[string]string, error) }
ExtensionImpl provides API for an extension
type ExtensionsManager ¶ added in v1.1.1
type ExtensionsManager interface { ExtensionImpl AddExtension(extension ExtensionImpl) error }
ExtensionsManager provides API for running extensions
type ImageFinder ¶
ImageFinder for finding latest image
type InstanceLister ¶ added in v0.2.1
InstanceLister for getting instances
type InstanceManager ¶ added in v0.2.1
type InstanceManager interface { InstanceLister }
InstanceManager composite of all instance capabilities
type JSONOutput ¶ added in v0.1.13
type JSONOutput struct { Values [1]struct { Key string `json:"key"` Value string `json:"value"` } `json:"values"` }
JSONOutput common json definition
type LogsManager ¶ added in v0.1.10
type LogsManager interface { LogsViewer }
LogsManager composite of all logs capabilities
type LogsViewer ¶ added in v0.1.10
type LogsViewer interface {
ViewLogs(logGroup string, searchDuration time.Duration, follow bool, filter string, callback func(string, string, int64)) error
}
LogsViewer for viewing cloudwatch logs
type ParamGetter ¶ added in v0.1.12
ParamGetter for getting parameters
type ParamManager ¶ added in v0.1.12
type ParamManager interface { ParamGetter ParamSetter }
ParamManager composite of all param capabilities
type ParamSetter ¶ added in v0.1.12
ParamSetter for setting parameters
type Pipeline ¶ added in v0.1.5
type Pipeline struct { Source struct { Provider string `yaml:"provider,omitempty"` Repo string `yaml:"repo,omitempty"` Branch string `yaml:"branch,omitempty"` } `yaml:"source,omitempty"` Build struct { Disabled bool `yaml:"disabled,omitempty"` Type string `yaml:"type,omitempty"` ComputeType string `yaml:"computeType,omitempty"` Image string `yaml:"image,omitempty"` Bucket string `yaml:"bucket,omitempty"` } `yaml:"build,omitempty"` Acceptance struct { Disabled bool `yaml:"disabled,omitempty"` Environment string `yaml:"environment,omitempty"` Type string `yaml:"type,omitempty"` ComputeType string `yaml:"computeType,omitempty"` Image string `yaml:"image,omitempty"` Roles struct { CodeBuild string `yaml:"codeBuild,omitempty"` Mu string `yaml:"mu,omitempty"` } `yaml:"roles,omitempty"` } `yaml:"acceptance,omitempty"` Production struct { Disabled bool `yaml:"disabled,omitempty"` Environment string `yaml:"environment,omitempty"` Roles struct { CodeBuild string `yaml:"codeBuild,omitempty"` Mu string `yaml:"mu,omitempty"` } `yaml:"roles,omitempty"` } `yaml:"production,omitempty"` MuBaseurl string `yaml:"muBaseurl,omitempty"` MuVersion string `yaml:"muVersion,omitempty"` Roles struct { Pipeline string `yaml:"pipeline,omitempty"` Build string `yaml:"build,omitempty"` } `yaml:"roles,omitempty"` Bucket string `yaml:"bucket,omitempty"` }
Pipeline definition
type PipelineGitInfoGetter ¶ added in v0.1.10
PipelineGitInfoGetter for getting the git revision
type PipelineManager ¶ added in v0.1.5
type PipelineManager interface { PipelineStateLister PipelineGitInfoGetter }
PipelineManager composite of all cluster capabilities
type PipelineStageState ¶ added in v0.2.1
type PipelineStageState *codepipeline.StageState
PipelineStageState a representation of the state of a stage in the pipeline
type PipelineStateLister ¶ added in v0.1.5
type PipelineStateLister interface {
ListState(pipelineName string) ([]PipelineStageState, error)
}
PipelineStateLister for getting cluster instances
type RdsIamAuthenticationSetter ¶ added in v0.1.12
type RdsIamAuthenticationSetter interface {
SetIamAuthentication(dbInstanceIdentifier string, enabled bool, dbEngine string) error
}
RdsIamAuthenticationSetter for getting db instances
type RdsManager ¶ added in v0.1.12
type RdsManager interface { RdsIamAuthenticationSetter }
RdsManager composite of all cluster capabilities
type RepositoryAuthenticator ¶ added in v0.1.3
RepositoryAuthenticator auths for a repo
type RolesetDeleter ¶ added in v1.0.1
type RolesetDeleter interface { DeleteCommonRoleset() error DeleteEnvironmentRoleset(environmentName string) error DeleteServiceRoleset(environmentName string, serviceName string) error DeletePipelineRoleset(serviceName string) error }
RolesetDeleter for deleting a roleset
type RolesetGetter ¶ added in v1.0.1
type RolesetGetter interface { GetCommonRoleset() (Roleset, error) GetEnvironmentRoleset(environmentName string) (Roleset, error) GetServiceRoleset(environmentName string, serviceName string) (Roleset, error) GetPipelineRoleset(serviceName string) (Roleset, error) }
RolesetGetter for getting a roleset
type RolesetManager ¶ added in v1.0.1
type RolesetManager interface { RolesetGetter RolesetUpserter RolesetDeleter }
RolesetManager composite of all roleset capabilities
type RolesetUpserter ¶ added in v1.0.1
type RolesetUpserter interface { UpsertCommonRoleset() error UpsertEnvironmentRoleset(environmentName string) error UpsertServiceRoleset(environmentName string, serviceName string, codeDeployBucket string) error UpsertPipelineRoleset(serviceName string, pipelineBucket string, codeDeployBucket string) error }
RolesetUpserter for managing a roleset
type Schedule ¶ added in v1.1.1
type Schedule struct { Name string `yaml:"name,omitempty"` Expression string `yaml:"expression,omitempty"` Command []string `yaml:"command,omitempty"` }
Schedule definition
type Service ¶
type Service struct { Name string `yaml:"name,omitempty"` DesiredCount int `yaml:"desiredCount,omitempty"` MinSize int `yaml:"minSize,omitempty"` MaxSize int `yaml:"maxSize,omitempty"` Dockerfile string `yaml:"dockerfile,omitempty"` ImageRepository string `yaml:"imageRepository,omitempty"` Port int `yaml:"port,omitempty"` Protocol string `yaml:"protocol,omitempty"` HealthEndpoint string `yaml:"healthEndpoint,omitempty"` CPU int `yaml:"cpu,omitempty"` Memory int `yaml:"memory,omitempty"` NetworkMode string `yaml:"networkMode,omitempty"` Environment map[string]interface{} `yaml:"environment,omitempty"` PathPatterns []string `yaml:"pathPatterns,omitempty"` HostPatterns []string `yaml:"hostPatterns,omitempty"` Priority int `yaml:"priority,omitempty"` Pipeline Pipeline `yaml:"pipeline,omitempty"` Database Database `yaml:"database,omitempty"` Schedule []Schedule `yaml:"schedules,omitempty"` TargetCPUUtilization int `yaml:"targetCPUUtilization,omitempty"` Roles struct { Ec2Instance string `yaml:"ec2Instance,omitempty"` CodeDeploy string `yaml:"codeDeploy,omitempty"` EcsEvents string `yaml:"ecsEvents,omitempty"` EcsService string `yaml:"ecsService,omitempty"` EcsTask string `yaml:"ecsTask,omitempty"` ApplicationAutoScaling string `yaml:"applicationAutoScaling,omitempty"` } `yaml:"roles,omitempty"` }
Service defines the structure of the yml file for a service
type Stack ¶
type Stack struct { ID string Name string Status string StatusReason string LastUpdateTime time.Time Tags map[string]string Outputs map[string]string Parameters map[string]string }
Stack summary
type StackDeleter ¶
StackDeleter for deleting stacks
type StackGetter ¶
StackGetter for getting stacks
type StackLister ¶
StackLister for listing stacks
type StackManager ¶
type StackManager interface { StackUpserter StackWaiter StackLister StackGetter StackDeleter ImageFinder }
StackManager composite of all stack capabilities
type StackUpserter ¶
type StackUpserter interface {
UpsertStack(stackName string, templateName string, templateData interface{}, parameters map[string]string, tags map[string]string, roleArn string) error
}
StackUpserter for applying changes to a stack
type StackWaiter ¶
StackWaiter for waiting on stack status to be final
type Task ¶ added in v0.1.13
type Task struct { Name string Environment string Service string TaskDefinition string Cluster string Command []string Containers []Container }
Task describes task definition
type TaskCommandExecutor ¶ added in v0.1.13
type TaskCommandExecutor interface {
ExecuteCommand(namespace string, task Task) (ECSRunTaskResult, error)
}
TaskCommandExecutor for executing commands against an environment
type TaskContainerLister ¶ added in v0.1.13
type TaskContainerLister interface {
ListTasks(namespace string, environment string, serviceName string) ([]Task, error)
}
TaskContainerLister for listing tasks with containers
type TaskManager ¶ added in v0.1.13
type TaskManager interface { TaskContainerLister TaskStopper TaskCommandExecutor }
TaskManager composite of all task capabilities
type TaskStopper ¶ added in v1.0.1
TaskStopper for restarting tasks
type TemplateUpdateMode ¶ added in v1.1.1
type TemplateUpdateMode string
TemplateUpdateMode of valid template update modes
const ( TemplateUpdateReplace TemplateUpdateMode = "replace" TemplateUpdateMerge = "merge" )
list of update modes