Documentation ¶
Overview ¶
Package manifest provides functionality to create Manifest files.
Package manifest provides functionality to create Manifest files.
Package manifest provides functionality to create Manifest files.
Index ¶
- Constants
- Variables
- func DockerfileBuildRequired(svc interface{}) (bool, error)
- func IsArmArch(arch string) bool
- func IsTypeAService(t string) bool
- func JobTypes() []string
- func ParsePortMapping(s *string) (port *string, protocol *string, err error)
- func RedirectPlatform(os, arch, wlType string) (platform string, err error)
- func ServiceTypes() []string
- func WorkloadTypes() []string
- type AdvancedCount
- type Alias
- type AppRunnerInstanceConfig
- type AuthorizationConfig
- type BackendService
- func (s BackendService) ApplyEnv(envName string) (WorkloadManifest, error)
- func (s *BackendService) BuildArgs(wsRoot string) *DockerBuildArgs
- func (s *BackendService) BuildRequired() (bool, error)
- func (s *BackendService) EnvFile() string
- func (s *BackendService) MarshalBinary() ([]byte, error)
- func (s *BackendService) Port() (port uint16, ok bool)
- func (s *BackendService) Publish() []Topic
- func (b BackendService) Validate() error
- type BackendServiceConfig
- type BackendServiceProps
- type BitbucketProperties
- type Build
- type BuildArgsOrString
- type CodeCommitProperties
- type CommandOverride
- type ContainerHealthCheck
- type Count
- type DeadLetterQueue
- type DependsOn
- type DockerBuildArgs
- type EFSConfigOrBool
- type EFSVolumeConfiguration
- type EntryPointOverride
- type ErrInvalidPipelineManifestVersion
- type ErrInvalidWorkloadType
- type ErrUnknownProvider
- type ExecuteCommand
- type ExecuteCommandConfig
- type GitHubProperties
- type GitHubV1Properties
- type HTTPHealthCheckArgs
- type HealthCheckArgsOrString
- type IPNet
- type Image
- type ImageOverride
- type ImageWithHealthcheck
- type ImageWithHealthcheckAndOptionalPort
- type ImageWithOptionalPort
- type ImageWithPort
- type ImageWithPortAndHealthcheck
- type IntRangeBand
- type Interpolator
- type JobFailureHandlerConfig
- type JobTriggerConfig
- type LoadBalancedWebService
- func (s LoadBalancedWebService) ApplyEnv(envName string) (WorkloadManifest, error)
- func (s *LoadBalancedWebService) BuildArgs(wsRoot string) *DockerBuildArgs
- func (s *LoadBalancedWebService) BuildRequired() (bool, error)
- func (s *LoadBalancedWebService) EnvFile() string
- func (s *LoadBalancedWebService) HasAliases() bool
- func (s *LoadBalancedWebService) MarshalBinary() ([]byte, error)
- func (s *LoadBalancedWebService) Port() (port uint16, ok bool)
- func (s *LoadBalancedWebService) Publish() []Topic
- func (l LoadBalancedWebService) Validate() error
- type LoadBalancedWebServiceConfig
- type LoadBalancedWebServiceProps
- type Logging
- type MountPointOpts
- type NLBHealthCheckArgs
- type NetworkConfig
- type NetworkLoadBalancerConfiguration
- type OverrideRule
- type Percentage
- type PipelineManifest
- type PipelineSchemaMajorVersion
- type PipelineStage
- type Placement
- type PlatformArgs
- type PlatformArgsOrString
- type PlatformString
- type Provider
- type PublishConfig
- type QueueScaling
- type Range
- type RangeConfig
- type RequestDrivenWebService
- func (s RequestDrivenWebService) ApplyEnv(envName string) (WorkloadManifest, error)
- func (s *RequestDrivenWebService) BuildArgs(wsRoot string) *DockerBuildArgs
- func (s *RequestDrivenWebService) BuildRequired() (bool, error)
- func (s *RequestDrivenWebService) ContainerPlatform() string
- func (s *RequestDrivenWebService) MarshalBinary() ([]byte, error)
- func (s *RequestDrivenWebService) Port() (port uint16, ok bool)
- func (s *RequestDrivenWebService) Publish() []Topic
- func (r RequestDrivenWebService) Validate() error
- type RequestDrivenWebServiceConfig
- type RequestDrivenWebServiceHttpConfig
- type RequestDrivenWebServiceNetworkConfig
- type RequestDrivenWebServicePlacement
- type RequestDrivenWebServiceProps
- type RoutingRuleConfigOrBool
- type RoutingRuleConfiguration
- type SQSQueue
- type SQSQueueOrBool
- type ScheduledJob
- func (j ScheduledJob) ApplyEnv(envName string) (WorkloadManifest, error)
- func (j *ScheduledJob) BuildArgs(wsRoot string) *DockerBuildArgs
- func (j *ScheduledJob) BuildRequired() (bool, error)
- func (j *ScheduledJob) EnvFile() string
- func (j *ScheduledJob) MarshalBinary() ([]byte, error)
- func (j *ScheduledJob) Publish() []Topic
- func (s ScheduledJob) Validate() error
- type ScheduledJobConfig
- type ScheduledJobProps
- type Secret
- type SidecarConfig
- type SidecarMountPoint
- type Source
- type Storage
- type SubscribeConfig
- type TaskConfig
- type Topic
- type TopicSubscription
- type Volume
- type WorkerService
- func (s WorkerService) ApplyEnv(envName string) (WorkloadManifest, error)
- func (s *WorkerService) BuildArgs(wsRoot string) *DockerBuildArgs
- func (s *WorkerService) BuildRequired() (bool, error)
- func (s *WorkerService) EnvFile() string
- func (s *WorkerService) MarshalBinary() ([]byte, error)
- func (s *WorkerService) Publish() []Topic
- func (s *WorkerService) Subscriptions() []TopicSubscription
- func (w WorkerService) Validate() error
- type WorkerServiceConfig
- type WorkerServiceProps
- type Workload
- type WorkloadManifest
- type WorkloadProps
Constants ¶
const ( DefaultHealthCheckPath = "/" DefaultHealthCheckGracePeriod = 60 )
Default values for HTTPHealthCheck for a load balanced web service.
const ( GithubProviderName = "GitHub" GithubV1ProviderName = "GitHubV1" CodeCommitProviderName = "CodeCommit" BitbucketProviderName = "Bitbucket" )
const ( // LoadBalancedWebServiceType is a web service with a load balancer and Fargate as compute. LoadBalancedWebServiceType = "Load Balanced Web Service" // RequestDrivenWebServiceType is a Request-Driven Web Service managed by AppRunner RequestDrivenWebServiceType = "Request-Driven Web Service" // BackendServiceType is a service that cannot be accessed from the internet but can be reached from other services. BackendServiceType = "Backend Service" // WorkerServiceType is a worker service that manages the consumption of messages. WorkerServiceType = "Worker Service" )
const ( OSLinux = dockerengine.OSLinux OSWindows = dockerengine.OSWindows OSWindowsServer2019Core = "windows_server_2019_core" OSWindowsServer2019Full = "windows_server_2019_full" ArchAMD64 = dockerengine.ArchAMD64 ArchX86 = dockerengine.ArchX86 ArchARM = dockerengine.ArchARM ArchARM64 = dockerengine.ArchARM64 // Minimum CPU and mem values required for Windows-based tasks. MinWindowsTaskCPU = 1024 MinWindowsTaskMemory = 2048 )
Platform related settings.
const (
GRPCProtocol = "gRPC" // GRPCProtocol is the HTTP protocol version for gRPC.
)
const (
// ScheduledJobType is a recurring ECS Fargate task which runs on a schedule.
ScheduledJobType = "Scheduled Job"
)
const (
TCP = "TCP"
)
Variables ¶
var ( PublicSubnetPlacement = Placement("public") PrivateSubnetPlacement = Placement("private") )
AWS VPC subnet placement options.
var (
ErrAppRunnerInvalidPlatformWindows = errors.New("Windows is not supported for App Runner services")
)
Error definitions.
var PipelineProviders = []string{ GithubProviderName, CodeCommitProviderName, BitbucketProviderName, }
PipelineProviders is the list of all available source integrations.
Functions ¶
func DockerfileBuildRequired ¶ added in v1.15.0
DockerfileBuildRequired returns if the workload container image should be built from local Dockerfile.
func IsTypeAService ¶ added in v1.7.0
IsTypeAService returns if manifest type is service.
func JobTypes ¶ added in v0.4.0
func JobTypes() []string
JobTypes returns the list of supported job manifest types.
func ParsePortMapping ¶ added in v1.14.0
ParsePortMapping parses port-protocol string into individual port and protocol strings. Valid examples: 2000/udp, or 2000.
func RedirectPlatform ¶ added in v1.12.0
RedirectPlatform returns a platform that's supported for the given manifest type.
func ServiceTypes ¶
func ServiceTypes() []string
ServiceTypes returns the list of supported service manifest types.
func WorkloadTypes ¶ added in v0.5.0
func WorkloadTypes() []string
WorkloadTypes returns the list of all manifest types.
Types ¶
type AdvancedCount ¶ added in v1.6.0
type AdvancedCount struct { Spot *int `yaml:"spot"` // mutually exclusive with other fields Range Range `yaml:"range"` CPU *Percentage `yaml:"cpu_percentage"` Memory *Percentage `yaml:"memory_percentage"` Requests *int `yaml:"requests"` ResponseTime *time.Duration `yaml:"response_time"` QueueScaling QueueScaling `yaml:"queue_delay"` // contains filtered or unexported fields }
AdvancedCount represents the configurable options for Auto Scaling as well as Capacity configuration (spot).
func (*AdvancedCount) IgnoreRange ¶ added in v1.6.0
func (a *AdvancedCount) IgnoreRange() bool
IgnoreRange returns whether desiredCount is specified on spot capacity
func (*AdvancedCount) IsEmpty ¶ added in v1.6.0
func (a *AdvancedCount) IsEmpty() bool
IsEmpty returns whether AdvancedCount is empty.
func (AdvancedCount) Validate ¶ added in v1.11.0
func (a AdvancedCount) Validate() error
Validate returns nil if AdvancedCount is configured correctly.
type Alias ¶ added in v1.10.0
type Alias stringSliceOrString
Alias is a custom type which supports unmarshaling "http.alias" yaml which can either be of type string or type slice of string.
func (*Alias) ToStringSlice ¶ added in v1.10.0
ToStringSlice converts an Alias to a slice of string using shell-style rules.
func (*Alias) UnmarshalYAML ¶ added in v1.10.0
UnmarshalYAML overrides the default YAML unmarshaling logic for the Alias struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
type AppRunnerInstanceConfig ¶ added in v1.7.0
type AppRunnerInstanceConfig struct { CPU *int `yaml:"cpu"` Memory *int `yaml:"memory"` Platform PlatformArgsOrString `yaml:"platform,omitempty"` }
AppRunnerInstanceConfig contains the instance configuration properties for an App Runner service.
func (AppRunnerInstanceConfig) Validate ¶ added in v1.12.0
func (r AppRunnerInstanceConfig) Validate() error
Validate returns nil if AppRunnerInstanceConfig is configured correctly.
type AuthorizationConfig ¶ added in v1.2.0
type AuthorizationConfig struct { IAM *bool `yaml:"iam"` // Default true AccessPointID *string `yaml:"access_point_id"` // Default "" }
AuthorizationConfig holds options relating to access points and IAM authorization.
func (*AuthorizationConfig) IsEmpty ¶ added in v1.11.0
func (a *AuthorizationConfig) IsEmpty() bool
IsEmpty returns empty if the struct has all zero members.
func (AuthorizationConfig) Validate ¶ added in v1.11.0
func (a AuthorizationConfig) Validate() error
Validate returns nil if AuthorizationConfig is configured correctly.
type BackendService ¶
type BackendService struct { Workload `yaml:",inline"` BackendServiceConfig `yaml:",inline"` // Use *BackendServiceConfig because of https://github.com/imdario/mergo/issues/146 Environments map[string]*BackendServiceConfig `yaml:",flow"` // contains filtered or unexported fields }
BackendService holds the configuration to create a backend service manifest.
func NewBackendService ¶
func NewBackendService(props BackendServiceProps) *BackendService
NewBackendService applies the props to a default backend service configuration with minimal task sizes, single replica, no healthcheck, and then returns it.
func (BackendService) ApplyEnv ¶
func (s BackendService) ApplyEnv(envName string) (WorkloadManifest, error)
ApplyEnv returns the service manifest with environment overrides. If the environment passed in does not have any overrides then it returns itself.
func (*BackendService) BuildArgs ¶ added in v0.3.0
func (s *BackendService) BuildArgs(wsRoot string) *DockerBuildArgs
BuildArgs returns a docker.BuildArguments object for the service given a workspace root directory.
func (*BackendService) BuildRequired ¶ added in v0.5.0
func (s *BackendService) BuildRequired() (bool, error)
BuildRequired returns if the service requires building from the local Dockerfile.
func (*BackendService) EnvFile ¶ added in v1.14.0
func (s *BackendService) EnvFile() string
EnvFile returns the location of the env file against the ws root directory.
func (*BackendService) MarshalBinary ¶
func (s *BackendService) MarshalBinary() ([]byte, error)
MarshalBinary serializes the manifest object into a binary YAML document. Implements the encoding.BinaryMarshaler interface.
func (*BackendService) Port ¶ added in v1.10.0
func (s *BackendService) Port() (port uint16, ok bool)
Port returns the exposed the exposed port in the manifest. If the backend service is not meant to be reachable, then ok is set to false.
func (*BackendService) Publish ¶ added in v1.10.0
func (s *BackendService) Publish() []Topic
Publish returns the list of topics where notifications can be published.
func (BackendService) Validate ¶ added in v1.11.0
func (b BackendService) Validate() error
Validate returns nil if BackendService is configured correctly.
type BackendServiceConfig ¶
type BackendServiceConfig struct { ImageConfig ImageWithHealthcheckAndOptionalPort `yaml:"image,flow"` ImageOverride `yaml:",inline"` TaskConfig `yaml:",inline"` Logging Logging `yaml:"logging,flow"` Sidecars map[string]*SidecarConfig `yaml:"sidecars"` // NOTE: keep the pointers because `mergo` doesn't automatically deep merge map's value unless it's a pointer type. Network NetworkConfig `yaml:"network"` PublishConfig PublishConfig `yaml:"publish"` TaskDefOverrides []OverrideRule `yaml:"taskdef_overrides"` }
BackendServiceConfig holds the configuration that can be overridden per environments.
func (BackendServiceConfig) Validate ¶ added in v1.12.0
func (b BackendServiceConfig) Validate() error
Validate returns nil if BackendServiceConfig is configured correctly.
type BackendServiceProps ¶
type BackendServiceProps struct { WorkloadProps Port uint16 HealthCheck ContainerHealthCheck // Optional healthcheck configuration. Platform PlatformArgsOrString // Optional platform configuration. }
BackendServiceProps represents the configuration needed to create a backend service.
type BitbucketProperties ¶ added in v1.3.0
type BitbucketProperties struct { RepositoryURL string `structs:"repository" yaml:"repository"` Branch string `structs:"branch" yaml:"branch"` }
BitbucketProperties contains information for configuring a Bitbucket source provider.
type Build ¶ added in v1.6.0
type Build struct {
Image string `yaml:"image"`
}
Build defines the build project to build and test image.
type BuildArgsOrString ¶ added in v0.3.0
type BuildArgsOrString struct { BuildString *string BuildArgs DockerBuildArgs }
BuildArgsOrString is a custom type which supports unmarshaling yaml which can either be of type string or type DockerBuildArgs.
func (*BuildArgsOrString) UnmarshalYAML ¶ added in v0.3.0
func (b *BuildArgsOrString) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the BuildArgsOrString struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
func (BuildArgsOrString) Validate ¶ added in v1.11.0
func (b BuildArgsOrString) Validate() error
Validate returns nil if BuildArgsOrString is configured correctly.
type CodeCommitProperties ¶ added in v1.1.0
type CodeCommitProperties struct { RepositoryURL string `structs:"repository" yaml:"repository"` Branch string `structs:"branch" yaml:"branch"` }
CodeCommitProperties contains information for configuring a CodeCommit source provider.
type CommandOverride ¶ added in v1.3.0
type CommandOverride stringSliceOrString
CommandOverride is a custom type which supports unmarshalling "command" yaml which can either be of type string or type slice of string.
func (*CommandOverride) ToStringSlice ¶ added in v1.4.0
func (c *CommandOverride) ToStringSlice() ([]string, error)
ToStringSlice converts an CommandOverride to a slice of string using shell-style rules.
func (*CommandOverride) UnmarshalYAML ¶ added in v1.3.0
func (c *CommandOverride) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the CommandOverride struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
func (CommandOverride) Validate ¶ added in v1.11.0
func (CommandOverride) Validate() error
Validate returns nil if CommandOverride is configured correctly.
type ContainerHealthCheck ¶
type ContainerHealthCheck struct { Command []string `yaml:"command"` Interval *time.Duration `yaml:"interval"` Retries *int `yaml:"retries"` Timeout *time.Duration `yaml:"timeout"` StartPeriod *time.Duration `yaml:"start_period"` }
ContainerHealthCheck holds the configuration to determine if the service container is healthy. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html
func NewDefaultContainerHealthCheck ¶ added in v1.11.0
func NewDefaultContainerHealthCheck() *ContainerHealthCheck
NewDefaultContainerHealthCheck returns container health check configuration that's identical to a load balanced web service's defaults.
func (*ContainerHealthCheck) ApplyIfNotSet ¶ added in v1.11.0
func (hc *ContainerHealthCheck) ApplyIfNotSet(other *ContainerHealthCheck)
ApplyIfNotSet changes the healthcheck's fields only if they were not set and the other healthcheck has them set.
func (ContainerHealthCheck) IsEmpty ¶ added in v1.11.0
func (hc ContainerHealthCheck) IsEmpty() bool
IsEmpty checks if the health check is empty.
func (ContainerHealthCheck) Validate ¶ added in v1.11.0
func (ContainerHealthCheck) Validate() error
Validate returns nil if ContainerHealthCheck is configured correctly.
type Count ¶ added in v0.4.0
type Count struct { Value *int // 0 is a valid value, so we want the default value to be nil. AdvancedCount AdvancedCount // Mutually exclusive with Value. }
Count is a custom type which supports unmarshaling yaml which can either be of type int or type AdvantedCount.
func (*Count) Desired ¶ added in v1.6.0
Desired returns the desiredCount to be set on the CFN template
func (*Count) UnmarshalYAML ¶ added in v0.4.0
UnmarshalYAML overrides the default YAML unmarshaling logic for the Count struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
type DeadLetterQueue ¶ added in v1.9.0
type DeadLetterQueue struct {
Tries *uint16 `yaml:"tries"`
}
DeadLetterQueue represents the configurable options for setting up a Dead-Letter Queue.
func (*DeadLetterQueue) IsEmpty ¶ added in v1.11.0
func (q *DeadLetterQueue) IsEmpty() bool
IsEmpty returns empty if the struct has all zero members.
func (DeadLetterQueue) Validate ¶ added in v1.11.0
func (d DeadLetterQueue) Validate() error
Validate returns nil if DeadLetterQueue is configured correctly.
type DockerBuildArgs ¶ added in v0.3.0
type DockerBuildArgs struct { Context *string `yaml:"context,omitempty"` Dockerfile *string `yaml:"dockerfile,omitempty"` Args map[string]string `yaml:"args,omitempty"` Target *string `yaml:"target,omitempty"` CacheFrom []string `yaml:"cache_from,omitempty"` }
DockerBuildArgs represents the options specifiable under the "build" field of Docker Compose services. For more information, see: https://docs.docker.com/compose/compose-file/#build
func (DockerBuildArgs) Validate ¶ added in v1.11.0
func (DockerBuildArgs) Validate() error
Validate returns nil if DockerBuildArgs is configured correctly.
type EFSConfigOrBool ¶ added in v1.6.0
type EFSConfigOrBool struct { Advanced EFSVolumeConfiguration Enabled *bool }
EFSConfigOrBool contains custom unmarshaling logic for the `efs` field in the manifest.
func (*EFSConfigOrBool) Disabled ¶ added in v1.6.0
func (e *EFSConfigOrBool) Disabled() bool
Disabled returns true if Enabled is explicitly set to false. This function is useful for checking that the EFS config has been intentionally turned off and whether we should ignore any values of the struct which have been populated erroneously.
func (*EFSConfigOrBool) IsEmpty ¶ added in v1.11.0
func (e *EFSConfigOrBool) IsEmpty() bool
IsEmpty returns empty if the struct has all zero members.
func (*EFSConfigOrBool) UnmarshalYAML ¶ added in v1.6.0
func (e *EFSConfigOrBool) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML implements the yaml(v3) interface. It allows EFS to be specified as a string or a struct alternately.
func (*EFSConfigOrBool) UseManagedFS ¶ added in v1.6.0
func (e *EFSConfigOrBool) UseManagedFS() bool
UseManagedFS returns true if the user has specified EFS as a bool, or has only specified UID and GID.
func (EFSConfigOrBool) Validate ¶ added in v1.11.0
func (e EFSConfigOrBool) Validate() error
Validate returns nil if EFSConfigOrBool is configured correctly.
type EFSVolumeConfiguration ¶ added in v1.2.0
type EFSVolumeConfiguration struct { FileSystemID *string `yaml:"id"` // Required. Can be specified as "copilot" or "managed" magic keys. RootDirectory *string `yaml:"root_dir"` // Default "/". For BYO EFS. AuthConfig AuthorizationConfig `yaml:"auth"` // Auth config for BYO EFS. UID *uint32 `yaml:"uid"` // UID for managed EFS. GID *uint32 `yaml:"gid"` // GID for managed EFS. }
EFSVolumeConfiguration holds options which tell ECS how to reach out to the EFS filesystem.
func (*EFSVolumeConfiguration) EmptyBYOConfig ¶ added in v1.6.0
func (e *EFSVolumeConfiguration) EmptyBYOConfig() bool
EmptyBYOConfig returns true if the `id`, `root_directory`, and `auth` fields are all empty. This would mean that no custom EFS information has been specified.
func (*EFSVolumeConfiguration) EmptyUIDConfig ¶ added in v1.6.0
func (e *EFSVolumeConfiguration) EmptyUIDConfig() bool
EmptyUIDConfig returns true if the `uid` and `gid` fields are empty. These fields are mutually exclusive with BYO EFS. If they are nonempty, then we should use managed EFS instead.
func (*EFSVolumeConfiguration) IsEmpty ¶ added in v1.6.0
func (e *EFSVolumeConfiguration) IsEmpty() bool
IsEmpty returns empty if the struct has all zero members.
func (EFSVolumeConfiguration) Validate ¶ added in v1.11.0
func (e EFSVolumeConfiguration) Validate() error
Validate returns nil if EFSVolumeConfiguration is configured correctly.
type EntryPointOverride ¶ added in v1.3.0
type EntryPointOverride stringSliceOrString
EntryPointOverride is a custom type which supports unmarshalling "entrypoint" yaml which can either be of type string or type slice of string.
func (*EntryPointOverride) ToStringSlice ¶ added in v1.4.0
func (e *EntryPointOverride) ToStringSlice() ([]string, error)
ToStringSlice converts an EntryPointOverride to a slice of string using shell-style rules.
func (*EntryPointOverride) UnmarshalYAML ¶ added in v1.3.0
func (e *EntryPointOverride) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshalling logic for the EntryPointOverride struct, allowing it to perform more complex unmarshalling behavior. This method implements the yaml.Unmarshaler (v3) interface.
func (EntryPointOverride) Validate ¶ added in v1.11.0
func (EntryPointOverride) Validate() error
Validate returns nil if EntryPointOverride is configured correctly.
type ErrInvalidPipelineManifestVersion ¶
type ErrInvalidPipelineManifestVersion struct {
// contains filtered or unexported fields
}
ErrInvalidPipelineManifestVersion occurs when the pipeline.yml file contains invalid schema version during unmarshalling.
func (*ErrInvalidPipelineManifestVersion) Error ¶
func (e *ErrInvalidPipelineManifestVersion) Error() string
func (*ErrInvalidPipelineManifestVersion) Is ¶
func (e *ErrInvalidPipelineManifestVersion) Is(target error) bool
Is compares the 2 errors. Only returns true if the errors are of the same type and contain the same information.
type ErrInvalidWorkloadType ¶ added in v0.4.0
type ErrInvalidWorkloadType struct {
Type string
}
ErrInvalidWorkloadType occurs when a user requested a manifest template type that doesn't exist.
func (*ErrInvalidWorkloadType) Error ¶ added in v0.4.0
func (e *ErrInvalidWorkloadType) Error() string
type ErrUnknownProvider ¶
type ErrUnknownProvider struct {
// contains filtered or unexported fields
}
ErrUnknownProvider occurs CreateProvider() is called with configurations that do not map to any supported provider.
func (*ErrUnknownProvider) Error ¶
func (e *ErrUnknownProvider) Error() string
func (*ErrUnknownProvider) Is ¶
func (e *ErrUnknownProvider) Is(target error) bool
Is compares the 2 errors. Returns true if the errors are of the same type
type ExecuteCommand ¶ added in v1.4.0
type ExecuteCommand struct { Enable *bool Config ExecuteCommandConfig }
ExecuteCommand is a custom type which supports unmarshaling yaml which can either be of type bool or type ExecuteCommandConfig.
func (*ExecuteCommand) UnmarshalYAML ¶ added in v1.4.0
func (e *ExecuteCommand) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the ExecuteCommand struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
func (ExecuteCommand) Validate ¶ added in v1.11.0
func (e ExecuteCommand) Validate() error
Validate returns nil if ExecuteCommand is configured correctly.
type ExecuteCommandConfig ¶ added in v1.4.0
type ExecuteCommandConfig struct {
Enable *bool `yaml:"enable"`
}
ExecuteCommandConfig represents the configuration for ECS Execute Command.
func (ExecuteCommandConfig) IsEmpty ¶ added in v1.4.0
func (e ExecuteCommandConfig) IsEmpty() bool
IsEmpty returns whether ExecuteCommandConfig is empty.
func (ExecuteCommandConfig) Validate ¶ added in v1.11.0
func (ExecuteCommandConfig) Validate() error
Validate returns nil if ExecuteCommandConfig is configured correctly.
type GitHubProperties ¶
type GitHubProperties struct { RepositoryURL string `structs:"repository" yaml:"repository"` Branch string `structs:"branch" yaml:"branch"` }
GitHubProperties contains information for configuring a GitHubv2 source provider.
type GitHubV1Properties ¶ added in v1.4.0
type GitHubV1Properties struct { // use tag from https://godoc.org/github.com/fatih/structs#example-Map--Tags // to specify the name of the field in the output properties RepositoryURL string `structs:"repository" yaml:"repository"` Branch string `structs:"branch" yaml:"branch"` GithubSecretIdKeyName string `structs:"access_token_secret" yaml:"access_token_secret"` }
GitHubV1Properties contain information for configuring a Githubv1 source provider.
type HTTPHealthCheckArgs ¶ added in v0.6.0
type HTTPHealthCheckArgs struct { Path *string `yaml:"path"` SuccessCodes *string `yaml:"success_codes"` HealthyThreshold *int64 `yaml:"healthy_threshold"` UnhealthyThreshold *int64 `yaml:"unhealthy_threshold"` Timeout *time.Duration `yaml:"timeout"` Interval *time.Duration `yaml:"interval"` GracePeriod *time.Duration `yaml:"grace_period"` }
HTTPHealthCheckArgs holds the configuration to determine if the load balanced web service is healthy. These options are specifiable under the "healthcheck" field. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html.
func (HTTPHealthCheckArgs) Validate ¶ added in v1.11.0
func (h HTTPHealthCheckArgs) Validate() error
Validate returns nil if HTTPHealthCheckArgs is configured correctly.
type HealthCheckArgsOrString ¶ added in v0.6.0
type HealthCheckArgsOrString struct { HealthCheckPath *string HealthCheckArgs HTTPHealthCheckArgs }
HealthCheckArgsOrString is a custom type which supports unmarshaling yaml which can either be of type string or type HealthCheckArgs.
func (*HealthCheckArgsOrString) IsEmpty ¶ added in v1.7.0
func (hc *HealthCheckArgsOrString) IsEmpty() bool
IsEmpty returns true if there are no health check configuration set.
func (*HealthCheckArgsOrString) Path ¶ added in v1.7.0
func (hc *HealthCheckArgsOrString) Path() *string
Path returns the default health check path if provided otherwise, returns the path from the advanced configuration.
func (*HealthCheckArgsOrString) UnmarshalYAML ¶ added in v0.6.0
func (hc *HealthCheckArgsOrString) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the HealthCheckArgsOrString struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
func (HealthCheckArgsOrString) Validate ¶ added in v1.11.0
func (h HealthCheckArgsOrString) Validate() error
Validate returns nil if HealthCheckArgsOrString is configured correctly.
type IPNet ¶ added in v1.11.0
type IPNet string
IPNet represents an IP network string. For example: 10.1.0.0/16
type Image ¶ added in v0.4.0
type Image struct { Build BuildArgsOrString `yaml:"build"` // Build an image from a Dockerfile. Location *string `yaml:"location"` // Use an existing image instead. Credentials *string `yaml:"credentials"` // ARN of the secret containing the private repository credentials. DockerLabels map[string]string `yaml:"labels,flow"` // Apply Docker labels to the container at runtime. DependsOn DependsOn `yaml:"depends_on,flow"` // Add any sidecar dependencies. }
Image represents the workload's container image.
func (*Image) BuildConfig ¶ added in v0.4.0
func (i *Image) BuildConfig(rootDirectory string) *DockerBuildArgs
BuildConfig populates a docker.BuildArguments struct from the fields available in the manifest. Prefer the following hierarchy: 1. Specific dockerfile, specific context 2. Specific dockerfile, context = dockerfile dir 3. "Dockerfile" located in context dir 4. "Dockerfile" located in ws root.
func (Image) GetLocation ¶ added in v0.5.0
GetLocation returns the location of the image.
func (*Image) UnmarshalYAML ¶ added in v1.11.0
UnmarshalYAML overrides the default YAML unmarshaling logic for the Image struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
type ImageOverride ¶ added in v1.3.0
type ImageOverride struct { EntryPoint EntryPointOverride `yaml:"entrypoint"` Command CommandOverride `yaml:"command"` }
ImageOverride holds fields that override Dockerfile image defaults.
func (ImageOverride) Validate ¶ added in v1.11.0
func (i ImageOverride) Validate() error
Validate returns nil if ImageOverride is configured correctly.
type ImageWithHealthcheck ¶ added in v1.8.0
type ImageWithHealthcheck struct { Image Image `yaml:",inline"` HealthCheck ContainerHealthCheck `yaml:"healthcheck"` }
ImageWithHealthcheck represents a container image with health check.
func (ImageWithHealthcheck) Validate ¶ added in v1.11.0
func (i ImageWithHealthcheck) Validate() error
Validate returns nil if ImageWithHealthcheck is configured correctly.
type ImageWithHealthcheckAndOptionalPort ¶ added in v1.11.0
type ImageWithHealthcheckAndOptionalPort struct { ImageWithOptionalPort `yaml:",inline"` HealthCheck ContainerHealthCheck `yaml:"healthcheck"` }
ImageWithHealthcheckAndOptionalPort represents a container image with an optional exposed port and health check.
func (ImageWithHealthcheckAndOptionalPort) Validate ¶ added in v1.11.0
func (i ImageWithHealthcheckAndOptionalPort) Validate() error
Validate returns nil if ImageWithHealthcheckAndOptionalPort is configured correctly.
type ImageWithOptionalPort ¶ added in v1.11.0
ImageWithOptionalPort represents a container image with an optional exposed port.
func (ImageWithOptionalPort) Validate ¶ added in v1.11.0
func (i ImageWithOptionalPort) Validate() error
Validate returns nil if ImageWithOptionalPort is configured correctly.
type ImageWithPort ¶ added in v1.7.0
ImageWithPort represents a container image with an exposed port.
func (ImageWithPort) Validate ¶ added in v1.11.0
func (i ImageWithPort) Validate() error
Validate returns nil if ImageWithPort is configured correctly.
type ImageWithPortAndHealthcheck ¶ added in v1.8.0
type ImageWithPortAndHealthcheck struct { ImageWithPort `yaml:",inline"` HealthCheck ContainerHealthCheck `yaml:"healthcheck"` }
ImageWithPortAndHealthcheck represents a container image with an exposed port and health check.
func (ImageWithPortAndHealthcheck) Validate ¶ added in v1.11.0
func (i ImageWithPortAndHealthcheck) Validate() error
Validate returns nil if ImageWithPortAndHealthcheck is configured correctly.
type IntRangeBand ¶ added in v1.6.0
type IntRangeBand string
IntRangeBand is a number range with maximum and minimum values.
func (IntRangeBand) Parse ¶ added in v1.6.0
func (r IntRangeBand) Parse() (min int, max int, err error)
Parse parses Range string and returns the min and max values. For example: 1-100 returns 1 and 100.
func (IntRangeBand) Validate ¶ added in v1.11.0
func (r IntRangeBand) Validate() error
Validate returns nil if IntRangeBand is configured correctly.
type Interpolator ¶ added in v1.12.0
type Interpolator struct {
// contains filtered or unexported fields
}
Interpolator substitutes variables in a manifest.
func NewInterpolator ¶ added in v1.12.0
func NewInterpolator(appName, envName string) *Interpolator
NewInterpolator initiates a new Interpolator.
func (*Interpolator) Interpolate ¶ added in v1.12.0
func (i *Interpolator) Interpolate(s string) (string, error)
Interpolate substitutes environment variables in a string.
type JobFailureHandlerConfig ¶ added in v0.5.0
type JobFailureHandlerConfig struct { Timeout *string `yaml:"timeout"` Retries *int `yaml:"retries"` }
JobFailureHandlerConfig represents the error handling configuration for the job.
func (JobFailureHandlerConfig) Validate ¶ added in v1.11.0
func (JobFailureHandlerConfig) Validate() error
Validate returns nil if JobFailureHandlerConfig is configured correctly.
type JobTriggerConfig ¶ added in v0.5.0
type JobTriggerConfig struct {
Schedule *string `yaml:"schedule"`
}
JobTriggerConfig represents the configuration for the event that triggers the job.
func (JobTriggerConfig) Validate ¶ added in v1.11.0
func (c JobTriggerConfig) Validate() error
Validate returns nil if JobTriggerConfig is configured correctly.
type LoadBalancedWebService ¶
type LoadBalancedWebService struct { Workload `yaml:",inline"` LoadBalancedWebServiceConfig `yaml:",inline"` // Use *LoadBalancedWebServiceConfig because of https://github.com/imdario/mergo/issues/146 Environments map[string]*LoadBalancedWebServiceConfig `yaml:",flow"` // Fields to override per environment. // contains filtered or unexported fields }
LoadBalancedWebService holds the configuration to build a container image with an exposed port that receives requests through a load balancer with AWS Fargate as the compute engine.
func NewLoadBalancedWebService ¶
func NewLoadBalancedWebService(props *LoadBalancedWebServiceProps) *LoadBalancedWebService
NewLoadBalancedWebService creates a new public load balanced web service, receives all the requests from the load balancer, has a single task with minimal CPU and memory thresholds, and sets the default health check path to "/".
func (LoadBalancedWebService) ApplyEnv ¶
func (s LoadBalancedWebService) ApplyEnv(envName string) (WorkloadManifest, error)
ApplyEnv returns the service manifest with environment overrides. If the environment passed in does not have any overrides then it returns itself.
func (*LoadBalancedWebService) BuildArgs ¶ added in v0.3.0
func (s *LoadBalancedWebService) BuildArgs(wsRoot string) *DockerBuildArgs
BuildArgs returns a docker.BuildArguments object given a ws root directory.
func (*LoadBalancedWebService) BuildRequired ¶ added in v0.5.0
func (s *LoadBalancedWebService) BuildRequired() (bool, error)
BuildRequired returns if the service requires building from the local Dockerfile.
func (*LoadBalancedWebService) EnvFile ¶ added in v1.14.0
func (s *LoadBalancedWebService) EnvFile() string
EnvFile returns the location of the env file against the ws root directory.
func (*LoadBalancedWebService) HasAliases ¶ added in v1.14.0
func (s *LoadBalancedWebService) HasAliases() bool
HasAliases returns true if the Load-Balanced Web Service uses aliases, either for ALB or NLB.
func (*LoadBalancedWebService) MarshalBinary ¶
func (s *LoadBalancedWebService) MarshalBinary() ([]byte, error)
MarshalBinary serializes the manifest object into a binary YAML document. Implements the encoding.BinaryMarshaler interface.
func (*LoadBalancedWebService) Port ¶ added in v1.10.0
func (s *LoadBalancedWebService) Port() (port uint16, ok bool)
Port returns the exposed port in the manifest. A LoadBalancedWebService always has a port exposed therefore the boolean is always true.
func (*LoadBalancedWebService) Publish ¶ added in v1.10.0
func (s *LoadBalancedWebService) Publish() []Topic
Publish returns the list of topics where notifications can be published.
func (LoadBalancedWebService) Validate ¶ added in v1.11.0
func (l LoadBalancedWebService) Validate() error
Validate returns nil if LoadBalancedWebService is configured correctly.
type LoadBalancedWebServiceConfig ¶
type LoadBalancedWebServiceConfig struct { ImageConfig ImageWithPortAndHealthcheck `yaml:"image,flow"` ImageOverride `yaml:",inline"` RoutingRule RoutingRuleConfigOrBool `yaml:"http,flow"` TaskConfig `yaml:",inline"` Logging `yaml:"logging,flow"` Sidecars map[string]*SidecarConfig `yaml:"sidecars"` // NOTE: keep the pointers because `mergo` doesn't automatically deep merge map's value unless it's a pointer type. Network NetworkConfig `yaml:"network"` PublishConfig PublishConfig `yaml:"publish"` TaskDefOverrides []OverrideRule `yaml:"taskdef_overrides"` NLBConfig NetworkLoadBalancerConfiguration `yaml:"nlb"` }
LoadBalancedWebServiceConfig holds the configuration for a load balanced web service.
func (LoadBalancedWebServiceConfig) Validate ¶ added in v1.12.0
func (l LoadBalancedWebServiceConfig) Validate() error
Validate returns nil if LoadBalancedWebServiceConfig is configured correctly.
type LoadBalancedWebServiceProps ¶
type LoadBalancedWebServiceProps struct { *WorkloadProps Path string Port uint16 HTTPVersion string // Optional http protocol version such as gRPC, HTTP2. HealthCheck ContainerHealthCheck // Optional healthcheck configuration. Platform PlatformArgsOrString // Optional platform configuration. }
LoadBalancedWebServiceProps contains properties for creating a new load balanced fargate service manifest.
type Logging ¶ added in v0.4.0
type Logging struct { Retention *int `yaml:"retention"` Image *string `yaml:"image"` Destination map[string]string `yaml:"destination,flow"` EnableMetadata *bool `yaml:"enableMetadata"` SecretOptions map[string]Secret `yaml:"secretOptions"` ConfigFile *string `yaml:"configFilePath"` Variables map[string]string `yaml:"variables"` Secrets map[string]Secret `yaml:"secrets"` }
Logging holds configuration for Firelens to route your logs.
func (*Logging) GetEnableMetadata ¶ added in v1.2.0
GetEnableMetadata returns the configuration values and sane default for the EnableMEtadata field
func (*Logging) IsEmpty ¶ added in v1.11.0
IsEmpty returns empty if the struct has all zero members.
type MountPointOpts ¶ added in v1.2.0
type MountPointOpts struct { ContainerPath *string `yaml:"path"` ReadOnly *bool `yaml:"read_only"` }
MountPointOpts is shared between Volumes for the main container and MountPoints for sidecars.
func (MountPointOpts) Validate ¶ added in v1.11.0
func (m MountPointOpts) Validate() error
Validate returns nil if MountPointOpts is configured correctly.
type NLBHealthCheckArgs ¶ added in v1.14.0
type NLBHealthCheckArgs struct { Port *int `yaml:"port"` HealthyThreshold *int64 `yaml:"healthy_threshold"` UnhealthyThreshold *int64 `yaml:"unhealthy_threshold"` Timeout *time.Duration `yaml:"timeout"` Interval *time.Duration `yaml:"interval"` }
NLBHealthCheckArgs holds the configuration to determine if the network load balanced web service is healthy. These options are specifiable under the "healthcheck" field. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html.
func (NLBHealthCheckArgs) Validate ¶ added in v1.14.0
func (h NLBHealthCheckArgs) Validate() error
Validate returns nil if NLBHealthCheckArgs is configured correctly.
type NetworkConfig ¶ added in v1.3.0
type NetworkConfig struct {
VPC vpcConfig `yaml:"vpc"`
}
NetworkConfig represents options for network connection to AWS resources within a VPC.
func (*NetworkConfig) IsEmpty ¶ added in v1.11.0
func (c *NetworkConfig) IsEmpty() bool
IsEmpty returns empty if the struct has all zero members.
func (*NetworkConfig) UnmarshalYAML ¶ added in v1.3.0
func (c *NetworkConfig) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML ensures that a NetworkConfig always defaults to public subnets. If the user specified a placement that's not valid then throw an error.
func (NetworkConfig) Validate ¶ added in v1.11.0
func (n NetworkConfig) Validate() error
Validate returns nil if NetworkConfig is configured correctly.
type NetworkLoadBalancerConfiguration ¶ added in v1.13.0
type NetworkLoadBalancerConfiguration struct { Port *string `yaml:"port"` HealthCheck NLBHealthCheckArgs `yaml:"healthcheck"` TargetContainer *string `yaml:"target_container"` TargetPort *int `yaml:"target_port"` SSLPolicy *string `yaml:"ssl_policy"` Stickiness *bool `yaml:"stickiness"` Aliases Alias `yaml:"alias"` }
NetworkLoadBalancerConfiguration holds options for a network load balancer
func (*NetworkLoadBalancerConfiguration) IsEmpty ¶ added in v1.13.0
func (c *NetworkLoadBalancerConfiguration) IsEmpty() bool
func (NetworkLoadBalancerConfiguration) Validate ¶ added in v1.13.0
func (c NetworkLoadBalancerConfiguration) Validate() error
Validate returns nil if NetworkLoadBalancerConfiguration is configured correctly.
type OverrideRule ¶ added in v1.10.0
type OverrideRule struct { Path string `yaml:"path"` Value yaml.Node `yaml:"value"` }
OverrideRule holds the manifest overriding rule for CloudFormation template.
func (OverrideRule) Validate ¶ added in v1.11.0
func (r OverrideRule) Validate() error
Validate returns nil if OverrideRule is configured correctly.
type Percentage ¶ added in v1.11.0
type Percentage int
Percentage represents a valid percentage integer ranging from 0 to 100.
func (Percentage) Validate ¶ added in v1.11.0
func (p Percentage) Validate() error
Validate returns nil if Percentage is configured correctly.
type PipelineManifest ¶
type PipelineManifest struct { // Name of the pipeline Name string `yaml:"name"` Version PipelineSchemaMajorVersion `yaml:"version"` Source *Source `yaml:"source"` Build *Build `yaml:"build"` Stages []PipelineStage `yaml:"stages"` // contains filtered or unexported fields }
PipelineManifest contains information that defines the relationship and deployment ordering of your environments.
func NewPipelineManifest ¶ added in v0.4.0
func NewPipelineManifest(pipelineName string, provider Provider, stages []PipelineStage) (*PipelineManifest, error)
NewPipelineManifest returns a pipeline manifest object.
func UnmarshalPipeline ¶
func UnmarshalPipeline(in []byte) (*PipelineManifest, error)
UnmarshalPipeline deserializes the YAML input stream into a pipeline manifest object. It returns an error if any issue occurs during deserialization or the YAML input contains invalid fields.
func (*PipelineManifest) MarshalBinary ¶
func (m *PipelineManifest) MarshalBinary() ([]byte, error)
MarshalBinary serializes the pipeline manifest object into byte array that represents the pipeline.yml document.
func (PipelineManifest) Validate ¶ added in v1.15.0
func (p PipelineManifest) Validate() error
Validate returns nil if the pipeline manifest is configured correctly.
type PipelineSchemaMajorVersion ¶
type PipelineSchemaMajorVersion int
PipelineSchemaMajorVersion is the major version number of the pipeline manifest schema
const ( // Ver1 is the current schema major version of the pipeline.yml file. Ver1 PipelineSchemaMajorVersion = iota + 1 )
type PipelineStage ¶
type PipelineStage struct { Name string `yaml:"name"` RequiresApproval bool `yaml:"requires_approval,omitempty"` TestCommands []string `yaml:"test_commands,omitempty"` }
PipelineStage represents a stage in the pipeline manifest
type Placement ¶ added in v1.11.0
type Placement string
Placement represents where to place tasks (public or private subnets).
type PlatformArgs ¶ added in v1.10.0
type PlatformArgs struct { OSFamily *string `yaml:"osfamily,omitempty"` Arch *string `yaml:"architecture,omitempty"` }
PlatformArgs represents the specifics of a target OS.
func (*PlatformArgs) String ¶ added in v1.12.0
func (p *PlatformArgs) String() string
String implements the fmt.Stringer interface.
func (PlatformArgs) Validate ¶ added in v1.11.0
func (p PlatformArgs) Validate() error
Validate returns nil if PlatformArgs is configured correctly.
type PlatformArgsOrString ¶ added in v1.10.0
type PlatformArgsOrString struct { *PlatformString PlatformArgs PlatformArgs }
PlatformArgsOrString is a custom type which supports unmarshaling yaml which can either be of type string or type PlatformArgs.
func (*PlatformArgsOrString) Arch ¶ added in v1.12.0
func (p *PlatformArgsOrString) Arch() string
Arch returns the architecture of PlatformArgsOrString.
func (*PlatformArgsOrString) IsEmpty ¶ added in v1.12.0
func (p *PlatformArgsOrString) IsEmpty() bool
IsEmpty returns if the platform field is empty.
func (*PlatformArgsOrString) OS ¶ added in v1.12.0
func (p *PlatformArgsOrString) OS() string
OS returns the operating system family.
func (*PlatformArgsOrString) UnmarshalYAML ¶ added in v1.10.0
func (p *PlatformArgsOrString) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the PlatformArgsOrString struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
func (PlatformArgsOrString) Validate ¶ added in v1.11.0
func (p PlatformArgsOrString) Validate() error
Validate returns nil if PlatformArgsOrString is configured correctly.
type PlatformString ¶ added in v1.11.0
type PlatformString string
PlatformString represents the string format of Platform.
func (PlatformString) Validate ¶ added in v1.11.0
func (p PlatformString) Validate() error
Validate returns nil if PlatformString is configured correctly.
type Provider ¶
Provider defines a source of the artifacts that will be built and deployed via a pipeline
func NewProvider ¶
NewProvider creates a source provider based on the type of the provided provider-specific configurations
type PublishConfig ¶ added in v1.8.3
type PublishConfig struct {
Topics []Topic `yaml:"topics"`
}
PublishConfig represents the configurable options for setting up publishers.
func (PublishConfig) Validate ¶ added in v1.11.0
func (p PublishConfig) Validate() error
Validate returns nil if PublishConfig is configured correctly.
type QueueScaling ¶ added in v1.11.0
type QueueScaling struct { AcceptableLatency *time.Duration `yaml:"acceptable_latency"` AvgProcessingTime *time.Duration `yaml:"msg_processing_time"` }
QueueScaling represents the configuration to scale a service based on a SQS queue.
func (*QueueScaling) AcceptableBacklogPerTask ¶ added in v1.11.0
func (qs *QueueScaling) AcceptableBacklogPerTask() (int, error)
AcceptableBacklogPerTask returns the total number of messages that each task can accumulate in the queue while maintaining the AcceptableLatency given the AvgProcessingTime.
func (*QueueScaling) IsEmpty ¶ added in v1.11.0
func (qs *QueueScaling) IsEmpty() bool
IsEmpty returns true if the QueueScaling is set.
func (QueueScaling) Validate ¶ added in v1.11.0
func (qs QueueScaling) Validate() error
Validate returns nil if QueueScaling is configured correctly.
type Range ¶ added in v0.4.0
type Range struct { Value *IntRangeBand // Mutually exclusive with RangeConfig RangeConfig RangeConfig }
Range contains either a Range or a range configuration for Autoscaling ranges.
func (*Range) UnmarshalYAML ¶ added in v1.6.0
UnmarshalYAML overrides the default YAML unmarshaling logic for the RangeOpts struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
type RangeConfig ¶ added in v1.6.0
type RangeConfig struct { Min *int `yaml:"min"` Max *int `yaml:"max"` SpotFrom *int `yaml:"spot_from"` }
RangeConfig containers a Min/Max and an optional SpotFrom field which specifies the number of services you want to start placing on spot. For example, if your range is 1-10 and `spot_from` is 5, up to 4 services will be placed on dedicated Fargate capacity, and then after that, any scaling event will place additioanl services on spot capacity.
func (*RangeConfig) IsEmpty ¶ added in v1.6.0
func (r *RangeConfig) IsEmpty() bool
IsEmpty returns whether RangeConfig is empty.
func (RangeConfig) Validate ¶ added in v1.11.0
func (r RangeConfig) Validate() error
Validate returns nil if RangeConfig is configured correctly.
type RequestDrivenWebService ¶ added in v1.7.0
type RequestDrivenWebService struct { Workload `yaml:",inline"` RequestDrivenWebServiceConfig `yaml:",inline"` Environments map[string]*RequestDrivenWebServiceConfig `yaml:",flow"` // Fields to override per environment. // contains filtered or unexported fields }
RequestDrivenWebService holds the configuration to create a Request-Driven Web Service.
func NewRequestDrivenWebService ¶ added in v1.7.0
func NewRequestDrivenWebService(props *RequestDrivenWebServiceProps) *RequestDrivenWebService
NewRequestDrivenWebService creates a new Request-Driven Web Service manifest with default values.
func (RequestDrivenWebService) ApplyEnv ¶ added in v1.7.0
func (s RequestDrivenWebService) ApplyEnv(envName string) (WorkloadManifest, error)
ApplyEnv returns the service manifest with environment overrides. If the environment passed in does not have any overrides then it returns itself.
func (*RequestDrivenWebService) BuildArgs ¶ added in v1.7.0
func (s *RequestDrivenWebService) BuildArgs(wsRoot string) *DockerBuildArgs
BuildArgs returns a docker.BuildArguments object given a ws root directory.
func (*RequestDrivenWebService) BuildRequired ¶ added in v1.7.0
func (s *RequestDrivenWebService) BuildRequired() (bool, error)
BuildRequired returns if the service requires building from the local Dockerfile.
func (*RequestDrivenWebService) ContainerPlatform ¶ added in v1.12.0
func (s *RequestDrivenWebService) ContainerPlatform() string
ContainerPlatform returns the platform for the service.
func (*RequestDrivenWebService) MarshalBinary ¶ added in v1.7.0
func (s *RequestDrivenWebService) MarshalBinary() ([]byte, error)
MarshalBinary serializes the manifest object into a binary YAML document. Implements the encoding.BinaryMarshaler interface.
func (*RequestDrivenWebService) Port ¶ added in v1.10.0
func (s *RequestDrivenWebService) Port() (port uint16, ok bool)
Port returns the exposed the exposed port in the manifest. A RequestDrivenWebService always has a port exposed therefore the boolean is always true.
func (*RequestDrivenWebService) Publish ¶ added in v1.10.0
func (s *RequestDrivenWebService) Publish() []Topic
Publish returns the list of topics where notifications can be published.
func (RequestDrivenWebService) Validate ¶ added in v1.11.0
func (r RequestDrivenWebService) Validate() error
Validate returns nil if RequestDrivenWebService is configured correctly.
type RequestDrivenWebServiceConfig ¶ added in v1.7.0
type RequestDrivenWebServiceConfig struct { RequestDrivenWebServiceHttpConfig `yaml:"http,flow"` InstanceConfig AppRunnerInstanceConfig `yaml:",inline"` ImageConfig ImageWithPort `yaml:"image"` Variables map[string]string `yaml:"variables"` StartCommand *string `yaml:"command"` Tags map[string]string `yaml:"tags"` PublishConfig PublishConfig `yaml:"publish"` Network RequestDrivenWebServiceNetworkConfig `yaml:"network"` }
RequestDrivenWebServiceConfig holds the configuration that can be overridden per environments.
func (RequestDrivenWebServiceConfig) Validate ¶ added in v1.12.0
func (r RequestDrivenWebServiceConfig) Validate() error
Validate returns nil if RequestDrivenWebServiceConfig is configured correctly.
type RequestDrivenWebServiceHttpConfig ¶ added in v1.7.0
type RequestDrivenWebServiceHttpConfig struct { HealthCheckConfiguration HealthCheckArgsOrString `yaml:"healthcheck"` Alias *string `yaml:"alias"` }
RequestDrivenWebServiceHttpConfig represents options for configuring http.
func (RequestDrivenWebServiceHttpConfig) Validate ¶ added in v1.11.0
func (r RequestDrivenWebServiceHttpConfig) Validate() error
Validate returns nil if RequestDrivenWebServiceHttpConfig is configured correctly.
type RequestDrivenWebServiceNetworkConfig ¶ added in v1.13.0
type RequestDrivenWebServiceNetworkConfig struct {
VPC rdwsVpcConfig `yaml:"vpc"`
}
RequestDrivenWebServiceNetworkConfig represents options for network connection to AWS resources for a Request-Driven Web Service.
func (*RequestDrivenWebServiceNetworkConfig) IsEmpty ¶ added in v1.13.0
func (c *RequestDrivenWebServiceNetworkConfig) IsEmpty() bool
IsEmpty returns empty if the struct has all zero members.
func (RequestDrivenWebServiceNetworkConfig) Validate ¶ added in v1.13.0
func (n RequestDrivenWebServiceNetworkConfig) Validate() error
Validate returns nil if RequestDrivenWebServiceNetworkConfig is configured correctly.
type RequestDrivenWebServicePlacement ¶ added in v1.13.0
type RequestDrivenWebServicePlacement Placement
RequestDrivenWebServicePlacement represents where to place tasks for a Request-Driven Web Service.
func (RequestDrivenWebServicePlacement) Validate ¶ added in v1.13.0
func (p RequestDrivenWebServicePlacement) Validate() error
Validate returns nil if RequestDrivenWebServicePlacement is configured correctly.
type RequestDrivenWebServiceProps ¶ added in v1.7.0
type RequestDrivenWebServiceProps struct { *WorkloadProps Port uint16 Platform PlatformArgsOrString }
RequestDrivenWebServiceProps contains properties for creating a new request-driven web service manifest.
type RoutingRuleConfigOrBool ¶ added in v1.14.0
type RoutingRuleConfigOrBool struct { RoutingRuleConfiguration Enabled *bool }
RoutingRuleConfigOrBool holds advanced configuration for routing rule or a boolean switch.
func (*RoutingRuleConfigOrBool) Disabled ¶ added in v1.14.0
func (r *RoutingRuleConfigOrBool) Disabled() bool
Disabled returns true if the routing rule configuration is explicitly disabled.
func (*RoutingRuleConfigOrBool) UnmarshalYAML ¶ added in v1.14.0
func (r *RoutingRuleConfigOrBool) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML implements the yaml(v3) interface. It allows https routing rule to be specified as a bool or a struct alternately.
func (RoutingRuleConfigOrBool) Validate ¶ added in v1.14.0
func (r RoutingRuleConfigOrBool) Validate() error
Validate returns nil if RoutingRuleConfigOrBool is configured correctly.
type RoutingRuleConfiguration ¶ added in v1.14.0
type RoutingRuleConfiguration struct { Path *string `yaml:"path"` ProtocolVersion *string `yaml:"version"` HealthCheck HealthCheckArgsOrString `yaml:"healthcheck"` Stickiness *bool `yaml:"stickiness"` Alias Alias `yaml:"alias"` DeregistrationDelay *time.Duration `yaml:"deregistration_delay"` // TargetContainer is the container load balancer routes traffic to. TargetContainer *string `yaml:"target_container"` TargetContainerCamelCase *string `yaml:"targetContainer"` // "targetContainerCamelCase" for backwards compatibility AllowedSourceIps []IPNet `yaml:"allowed_source_ips"` }
RoutingRuleConfiguration holds the path to route requests to the service.
func (RoutingRuleConfiguration) Validate ¶ added in v1.14.0
func (r RoutingRuleConfiguration) Validate() error
Validate returns nil if RoutingRuleConfiguration is configured correctly.
type SQSQueue ¶ added in v1.9.0
type SQSQueue struct { Retention *time.Duration `yaml:"retention"` Delay *time.Duration `yaml:"delay"` Timeout *time.Duration `yaml:"timeout"` DeadLetter DeadLetterQueue `yaml:"dead_letter"` }
SQSQueue represents the configurable options for setting up a SQS Queue.
type SQSQueueOrBool ¶ added in v1.11.0
SQSQueueOrBool contains custom unmarshaling logic for the `queue` field in the manifest.
func (*SQSQueueOrBool) IsEmpty ¶ added in v1.11.0
func (q *SQSQueueOrBool) IsEmpty() bool
IsEmpty returns empty if the struct has all zero members.
func (*SQSQueueOrBool) UnmarshalYAML ¶ added in v1.11.0
func (q *SQSQueueOrBool) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML implements the yaml(v3) interface. It allows SQSQueue to be specified as a string or a struct alternately.
func (SQSQueueOrBool) Validate ¶ added in v1.11.0
func (q SQSQueueOrBool) Validate() error
Validate returns nil if SQSQueue is configured correctly.
type ScheduledJob ¶ added in v0.4.0
type ScheduledJob struct { Workload `yaml:",inline"` ScheduledJobConfig `yaml:",inline"` Environments map[string]*ScheduledJobConfig `yaml:",flow"` // contains filtered or unexported fields }
ScheduledJob holds the configuration to build a container image that is run periodically in a given environment with timeout and retry logic.
func NewScheduledJob ¶ added in v0.4.0
func NewScheduledJob(props *ScheduledJobProps) *ScheduledJob
NewScheduledJob creates a new scheduled job object.
func (ScheduledJob) ApplyEnv ¶ added in v0.5.0
func (j ScheduledJob) ApplyEnv(envName string) (WorkloadManifest, error)
ApplyEnv returns the manifest with environment overrides.
func (*ScheduledJob) BuildArgs ¶ added in v0.5.0
func (j *ScheduledJob) BuildArgs(wsRoot string) *DockerBuildArgs
BuildArgs returns a docker.BuildArguments object for the job given a workspace root.
func (*ScheduledJob) BuildRequired ¶ added in v0.5.0
func (j *ScheduledJob) BuildRequired() (bool, error)
BuildRequired returns if the service requires building from the local Dockerfile.
func (*ScheduledJob) EnvFile ¶ added in v1.14.0
func (j *ScheduledJob) EnvFile() string
EnvFile returns the location of the env file against the ws root directory.
func (*ScheduledJob) MarshalBinary ¶ added in v0.4.0
func (j *ScheduledJob) MarshalBinary() ([]byte, error)
MarshalBinary serializes the manifest object into a binary YAML document. Implements the encoding.BinaryMarshaler interface.
func (*ScheduledJob) Publish ¶ added in v1.10.0
func (j *ScheduledJob) Publish() []Topic
Publish returns the list of topics where notifications can be published.
func (ScheduledJob) Validate ¶ added in v1.11.0
func (s ScheduledJob) Validate() error
Validate returns nil if ScheduledJob is configured correctly.
type ScheduledJobConfig ¶ added in v0.4.0
type ScheduledJobConfig struct { ImageConfig ImageWithHealthcheck `yaml:"image,flow"` ImageOverride `yaml:",inline"` TaskConfig `yaml:",inline"` Logging Logging `yaml:"logging,flow"` Sidecars map[string]*SidecarConfig `yaml:"sidecars"` // NOTE: keep the pointers because `mergo` doesn't automatically deep merge map's value unless it's a pointer type. On JobTriggerConfig `yaml:"on,flow"` JobFailureHandlerConfig `yaml:",inline"` Network NetworkConfig `yaml:"network"` PublishConfig PublishConfig `yaml:"publish"` TaskDefOverrides []OverrideRule `yaml:"taskdef_overrides"` }
ScheduledJobConfig holds the configuration for a scheduled job
func (ScheduledJobConfig) Validate ¶ added in v1.12.0
func (s ScheduledJobConfig) Validate() error
Validate returns nil if ScheduledJobConfig is configured correctly.
type ScheduledJobProps ¶ added in v0.4.0
type ScheduledJobProps struct { *WorkloadProps Schedule string Timeout string HealthCheck ContainerHealthCheck // Optional healthcheck configuration. Platform PlatformArgsOrString // Optional platform configuration. Retries int }
ScheduledJobProps contains properties for creating a new scheduled job manifest.
type Secret ¶ added in v1.15.0
type Secret struct {
// contains filtered or unexported fields
}
Secret represents an identifier for sensitive data stored in either SSM or SecretsManager.
func (*Secret) IsSecretsManagerName ¶ added in v1.15.0
IsSecretsManagerName returns true if the secret refers to the name of a secret stored in SecretsManager.
func (*Secret) UnmarshalYAML ¶ added in v1.15.0
UnmarshalYAML implements the yaml.Unmarshaler (v3) interface to override the default YAML unmarshaling logic.
type SidecarConfig ¶
type SidecarConfig struct { Port *string `yaml:"port"` Image *string `yaml:"image"` Essential *bool `yaml:"essential"` CredsParam *string `yaml:"credentialsParameter"` Variables map[string]string `yaml:"variables"` Secrets map[string]Secret `yaml:"secrets"` MountPoints []SidecarMountPoint `yaml:"mount_points"` DockerLabels map[string]string `yaml:"labels"` DependsOn DependsOn `yaml:"depends_on"` HealthCheck ContainerHealthCheck `yaml:"healthcheck"` ImageOverride `yaml:",inline"` }
SidecarConfig represents the configurable options for setting up a sidecar container.
func (SidecarConfig) Validate ¶ added in v1.11.0
func (s SidecarConfig) Validate() error
Validate returns nil if SidecarConfig is configured correctly.
type SidecarMountPoint ¶ added in v1.2.0
type SidecarMountPoint struct { SourceVolume *string `yaml:"source_volume"` MountPointOpts `yaml:",inline"` }
SidecarMountPoint is used to let sidecars mount volumes defined in `storage`
func (SidecarMountPoint) Validate ¶ added in v1.11.0
func (s SidecarMountPoint) Validate() error
Validate returns nil if SidecarMountPoint is configured correctly.
type Source ¶
type Source struct { ProviderName string `yaml:"provider"` Properties map[string]interface{} `yaml:"properties"` }
Source defines the source of the artifacts to be built and deployed.
func (Source) IsCodeStarConnection ¶ added in v1.5.0
IsCodeStarConnection indicates to the manifest if this source requires a CSC connection.
type Storage ¶ added in v1.2.0
type Storage struct { Ephemeral *int `yaml:"ephemeral"` Volumes map[string]*Volume `yaml:"volumes"` // NOTE: keep the pointers because `mergo` doesn't automatically deep merge map's value unless it's a pointer type. }
Storage represents the options for external and native storage.
type SubscribeConfig ¶ added in v1.9.0
type SubscribeConfig struct { Topics []TopicSubscription `yaml:"topics"` Queue SQSQueue `yaml:"queue"` }
SubscribeConfig represents the configurable options for setting up subscriptions.
func (*SubscribeConfig) IsEmpty ¶ added in v1.11.0
func (s *SubscribeConfig) IsEmpty() bool
IsEmpty returns empty if the struct has all zero members.
func (SubscribeConfig) Validate ¶ added in v1.11.0
func (s SubscribeConfig) Validate() error
Validate returns nil if SubscribeConfig is configured correctly.
type TaskConfig ¶
type TaskConfig struct { CPU *int `yaml:"cpu"` Memory *int `yaml:"memory"` Platform PlatformArgsOrString `yaml:"platform,omitempty"` Count Count `yaml:"count"` ExecuteCommand ExecuteCommand `yaml:"exec"` Variables map[string]string `yaml:"variables"` EnvFile *string `yaml:"env_file"` Secrets map[string]Secret `yaml:"secrets"` Storage Storage `yaml:"storage"` }
TaskConfig represents the resource boundaries and environment variables for the containers in the task.
func (*TaskConfig) ContainerPlatform ¶ added in v1.12.0
func (t *TaskConfig) ContainerPlatform() string
ContainerPlatform returns the platform for the service.
func (TaskConfig) IsARM ¶ added in v1.13.0
func (t TaskConfig) IsARM() bool
IsARM returns whether or not the service is building with an ARM Arch.
func (TaskConfig) IsWindows ¶ added in v1.12.0
func (t TaskConfig) IsWindows() bool
IsWindows returns whether or not the service is building with a Windows OS.
func (TaskConfig) Validate ¶ added in v1.11.0
func (t TaskConfig) Validate() error
Validate returns nil if TaskConfig is configured correctly.
type Topic ¶ added in v1.8.3
type Topic struct {
Name *string `yaml:"name"`
}
Topic represents the configurable options for setting up a SNS Topic.
type TopicSubscription ¶ added in v1.9.0
type TopicSubscription struct { Name *string `yaml:"name"` Service *string `yaml:"service"` Queue SQSQueueOrBool `yaml:"queue"` }
TopicSubscription represents the configurable options for setting up a SNS Topic Subscription.
func (TopicSubscription) Validate ¶ added in v1.11.0
func (t TopicSubscription) Validate() error
Validate returns nil if TopicSubscription is configured correctly.
type Volume ¶ added in v1.2.0
type Volume struct { EFS EFSConfigOrBool `yaml:"efs"` MountPointOpts `yaml:",inline"` }
Volume is an abstraction which merges the MountPoint and Volumes concepts from the ECS Task Definition
func (*Volume) EmptyVolume ¶ added in v1.6.0
EmptyVolume returns true if the EFS configuration is nil or explicitly/implicitly disabled.
type WorkerService ¶ added in v1.9.0
type WorkerService struct { Workload `yaml:",inline"` WorkerServiceConfig `yaml:",inline"` // Use *WorkerServiceConfig because of https://github.com/imdario/mergo/issues/146 Environments map[string]*WorkerServiceConfig `yaml:",flow"` // contains filtered or unexported fields }
WorkerService holds the configuration to create a worker service.
func NewWorkerService ¶ added in v1.9.0
func NewWorkerService(props WorkerServiceProps) *WorkerService
NewWorkerService applies the props to a default Worker service configuration with minimal cpu/memory thresholds, single replica, no healthcheck, and then returns it.
func (WorkerService) ApplyEnv ¶ added in v1.9.0
func (s WorkerService) ApplyEnv(envName string) (WorkloadManifest, error)
ApplyEnv returns the service manifest with environment overrides. If the environment passed in does not have any overrides then it returns itself.
func (*WorkerService) BuildArgs ¶ added in v1.9.0
func (s *WorkerService) BuildArgs(wsRoot string) *DockerBuildArgs
BuildArgs returns a docker.BuildArguments object for the service given a workspace root directory
func (*WorkerService) BuildRequired ¶ added in v1.9.0
func (s *WorkerService) BuildRequired() (bool, error)
BuildRequired returns if the service requires building from the local Dockerfile.
func (*WorkerService) EnvFile ¶ added in v1.14.0
func (s *WorkerService) EnvFile() string
EnvFile returns the location of the env file against the ws root directory.
func (*WorkerService) MarshalBinary ¶ added in v1.9.0
func (s *WorkerService) MarshalBinary() ([]byte, error)
MarshalBinary serializes the manifest object into a binary YAML document. Implements the encoding.BinaryMarshaler interface.
func (*WorkerService) Publish ¶ added in v1.12.0
func (s *WorkerService) Publish() []Topic
Publish returns the list of topics where notifications can be published.
func (*WorkerService) Subscriptions ¶ added in v1.10.0
func (s *WorkerService) Subscriptions() []TopicSubscription
Subscriptions returns a list of TopicSubscriotion objects which represent the SNS topics the service receives messages from.
func (WorkerService) Validate ¶ added in v1.11.0
func (w WorkerService) Validate() error
Validate returns nil if WorkerService is configured correctly.
type WorkerServiceConfig ¶ added in v1.9.0
type WorkerServiceConfig struct { ImageConfig ImageWithHealthcheck `yaml:"image,flow"` ImageOverride `yaml:",inline"` TaskConfig `yaml:",inline"` Logging Logging `yaml:"logging,flow"` Sidecars map[string]*SidecarConfig `yaml:"sidecars"` // NOTE: keep the pointers because `mergo` doesn't automatically deep merge map's value unless it's a pointer type. Subscribe SubscribeConfig `yaml:"subscribe"` PublishConfig PublishConfig `yaml:"publish"` Network NetworkConfig `yaml:"network"` TaskDefOverrides []OverrideRule `yaml:"taskdef_overrides"` }
WorkerServiceConfig holds the configuration that can be overridden per environments.
func (WorkerServiceConfig) Validate ¶ added in v1.12.0
func (w WorkerServiceConfig) Validate() error
Validate returns nil if WorkerServiceConfig is configured correctly.
type WorkerServiceProps ¶ added in v1.9.0
type WorkerServiceProps struct { WorkloadProps HealthCheck ContainerHealthCheck // Optional healthcheck configuration. Platform PlatformArgsOrString // Optional platform configuration. Topics []TopicSubscription // Optional topics for subscriptions }
WorkerServiceProps represents the configuration needed to create a worker service.
type Workload ¶ added in v0.4.0
type Workload struct { Name *string `yaml:"name"` Type *string `yaml:"type"` // must be one of the supported manifest types. }
Workload holds the basic data that every workload manifest file needs to have.
type WorkloadManifest ¶ added in v1.8.0
type WorkloadManifest interface { ApplyEnv(envName string) (WorkloadManifest, error) Validate() error }
WorkloadManifest represents a workload manifest.
func UnmarshalWorkload ¶ added in v0.4.0
func UnmarshalWorkload(in []byte) (WorkloadManifest, error)
UnmarshalWorkload deserializes the YAML input stream into a workload manifest object. If an error occurs during deserialization, then returns the error. If the workload type in the manifest is invalid, then returns an ErrInvalidManifestType.
type WorkloadProps ¶ added in v0.4.0
WorkloadProps contains properties for creating a new workload manifest.