Documentation ¶
Overview ¶
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 AdvancedAlias
- type AdvancedCDNConfig
- type AdvancedCount
- type AdvancedScalingConfig
- type AlarmArgs
- type Alias
- type AppRunnerInstanceConfig
- type AuthorizationConfig
- type BackendService
- func (s *BackendService) BuildArgs(wsRoot string) *DockerBuildArgs
- func (s *BackendService) BuildRequired() (bool, error)
- func (s *BackendService) EnvFile() string
- func (b *BackendService) ExposedPorts() ([]ExposedPort, error)
- func (s *BackendService) MarshalBinary() ([]byte, error)
- func (s *BackendService) Port() (port uint16, ok bool)
- func (s *BackendService) Publish() []Topic
- type BackendServiceConfig
- type BackendServiceProps
- type BitbucketProperties
- type Build
- type BuildArgsOrString
- type CDNStaticConfig
- type CodeCommitProperties
- type CommandOverride
- type ContainerHealthCheck
- type Cooldown
- type Count
- type DeadLetterQueue
- type DependsOn
- type Deployment
- type DeploymentConfiguration
- type Deployments
- type DeprecatedALBSecurityGroupsConfig
- type DeprecatedIngress
- type DockerBuildArgs
- type DynamicWorkload
- type DynamicWorkloadManifest
- func (s DynamicWorkloadManifest) ApplyEnv(envName string) (DynamicWorkload, error)
- func (s *DynamicWorkloadManifest) Load(sess *session.Session) error
- func (s *DynamicWorkloadManifest) Manifest() any
- func (s *DynamicWorkloadManifest) RequiredEnvironmentFeatures() []string
- func (l *DynamicWorkloadManifest) Validate() error
- type EFSConfigOrBool
- type EFSVolumeConfiguration
- type ELBAccessLogsArgs
- type ELBAccessLogsArgsOrBool
- type EntryPointOverride
- type Environment
- type EnvironmentCDNConfig
- type EnvironmentConfig
- func (cfg *EnvironmentConfig) CDNDoesTLSTermination() bool
- func (cfg *EnvironmentConfig) CDNEnabled() bool
- func (cfg *EnvironmentConfig) ELBAccessLogs() (*ELBAccessLogsArgs, bool)
- func (cfg *EnvironmentConfig) EnvSecurityGroup() (*securityGroupConfig, bool)
- func (mft *EnvironmentConfig) GetPublicALBSourceIPs() []IPNet
- func (cfg *EnvironmentConfig) HasImportedPublicALBCerts() bool
- func (mft *EnvironmentConfig) IsPublicLBIngressRestrictedToCDN() bool
- type EnvironmentHTTPConfig
- type EnvironmentProps
- type ErrInvalidPipelineManifestVersion
- type ErrInvalidWorkloadType
- type ErrUnknownProvider
- type ExecuteCommand
- type ExecuteCommandConfig
- type ExposedPort
- type FIFOAdvanceConfig
- type FIFOAdvanceConfigOrBool
- type FIFOTopicAdvanceConfig
- type FIFOTopicAdvanceConfigOrBool
- 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) BuildArgs(wsRoot string) *DockerBuildArgs
- func (s *LoadBalancedWebService) BuildRequired() (bool, error)
- func (s *LoadBalancedWebService) EnvFile() string
- func (lbws *LoadBalancedWebService) ExposedPorts() ([]ExposedPort, error)
- func (s *LoadBalancedWebService) MarshalBinary() ([]byte, error)
- func (s *LoadBalancedWebService) Port() (port uint16, ok bool)
- func (s *LoadBalancedWebService) Publish() []Topic
- type LoadBalancedWebServiceConfig
- type LoadBalancedWebServiceProps
- type Logging
- type MountPointOpts
- type NLBHealthCheckArgs
- type NetworkConfig
- type NetworkLoadBalancerConfiguration
- type Observability
- type OverrideRule
- type Percentage
- type Pipeline
- type PipelineSchemaMajorVersion
- type PipelineStage
- type PlacementArgOrString
- type PlacementArgs
- type PlacementString
- type PlatformArgs
- type PlatformArgsOrString
- type PlatformString
- type Provider
- type PublicHTTPConfig
- type PublishConfig
- type QueueScaling
- type Range
- type RangeConfig
- type RelaxedIngress
- type RequestDrivenWebService
- 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
- type RequestDrivenWebServiceConfig
- type RequestDrivenWebServiceHttpConfig
- type RequestDrivenWebServiceNetworkConfig
- type RequestDrivenWebServiceProps
- type RestrictiveIngress
- type RoutingRuleConfigOrBool
- type RoutingRuleConfiguration
- type SQSQueue
- type SQSQueueOrBool
- type ScalingConfigOrT
- type ScheduledJob
- func (j *ScheduledJob) BuildArgs(wsRoot string) *DockerBuildArgs
- func (j *ScheduledJob) BuildRequired() (bool, error)
- func (j *ScheduledJob) EnvFile() string
- func (j *ScheduledJob) ExposedPorts() ([]ExposedPort, error)
- func (j *ScheduledJob) MarshalBinary() ([]byte, error)
- func (j *ScheduledJob) Publish() []Topic
- type ScheduledJobConfig
- type ScheduledJobProps
- type Secret
- type SecurityGroupsConfig
- type SecurityGroupsIDsOrConfig
- type ServiceConnectArgs
- type ServiceConnectBoolOrArgs
- type SidecarConfig
- type SidecarMountPoint
- type Source
- type Storage
- type StringSliceOrString
- type SubnetArgs
- type SubnetListOrArgs
- type SubscribeConfig
- type Tags
- type TaskConfig
- type Topic
- type TopicSubscription
- type Union
- func (t Union[_, _]) IsAdvanced() bool
- func (t Union[_, _]) IsBasic() bool
- func (t Union[_, _]) IsZero() bool
- func (t Union[_, _]) MarshalYAML() (interface{}, error)
- func (t *Union[Basic, Advanced]) SetAdvanced(v Advanced)
- func (t *Union[Basic, Advanced]) SetBasic(v Basic)
- func (t *Union[Basic, Advanced]) UnmarshalYAML(value *yaml.Node) error
- type VPCEndpoint
- type VPCFlowLogsArgs
- type Variable
- type Volume
- type WorkerService
- func (s *WorkerService) BuildArgs(wsRoot string) *DockerBuildArgs
- func (s *WorkerService) BuildRequired() (bool, error)
- func (s *WorkerService) EnvFile() string
- func (ws *WorkerService) ExposedPorts() ([]ExposedPort, error)
- func (s *WorkerService) MarshalBinary() ([]byte, error)
- func (s *WorkerService) Publish() []Topic
- func (s *WorkerService) Subscriptions() []TopicSubscription
- type WorkerServiceConfig
- type WorkerServiceProps
- type Workload
- 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 ( // AWS VPC subnet placement options. PublicSubnetPlacement = PlacementString("public") PrivateSubnetPlacement = PlacementString("private") )
const ( OSLinux = dockerengine.OSLinux OSWindows = dockerengine.OSWindows OSWindowsServer2019Core = "windows_server_2019_core" OSWindowsServer2019Full = "windows_server_2019_full" OSWindowsServer2022Core = "windows_server_2022_core" OSWindowsServer2022Full = "windows_server_2022_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 // deployment strategies ECSDefaultRollingUpdateStrategy = "default" ECSRecreateRollingUpdateStrategy = "recreate" )
Platform related settings.
const EnvironmentManifestType = "Environment"
EnvironmentManifestType identifies that the type of manifest is environment manifest.
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 (
// Protocols.
TCP = "TCP"
)
Variables ¶
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.
var (
TracingValidVendors = []string{awsXRAY}
)
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 AdvancedAlias ¶ added in v1.19.0
AdvancedAlias represents advanced alias configuration.
type AdvancedCDNConfig ¶ added in v1.22.0
type AdvancedCDNConfig struct { Certificate *string `yaml:"certificate,omitempty"` TerminateTLS *bool `yaml:"terminate_tls,omitempty"` Static CDNStaticConfig `yaml:"static_assets,omitempty"` }
AdvancedCDNConfig represents an advanced configuration for a Content Delivery Network.
type AdvancedCount ¶ added in v1.6.0
type AdvancedCount struct { Spot *int `yaml:"spot"` // mutually exclusive with other fields Range Range `yaml:"range"` Cooldown Cooldown `yaml:"cooldown"` CPU ScalingConfigOrT[Percentage] `yaml:"cpu_percentage"` Memory ScalingConfigOrT[Percentage] `yaml:"memory_percentage"` Requests ScalingConfigOrT[int] `yaml:"requests"` ResponseTime ScalingConfigOrT[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.
type AdvancedScalingConfig ¶ added in v1.19.0
type AdvancedScalingConfig[T ~int | time.Duration] struct { Value *T `yaml:"value"` Cooldown Cooldown `yaml:"cooldown"` }
AdvancedScalingConfig represents advanced configurable options for a scaling policy.
func (*AdvancedScalingConfig[_]) IsEmpty ¶ added in v1.19.0
func (a *AdvancedScalingConfig[_]) IsEmpty() bool
IsEmpty returns whether AdvancedScalingConfig is empty
type AlarmArgs ¶ added in v1.25.0
type AlarmArgs struct { CPUUtilization *float64 `yaml:"cpu_utilization"` MemoryUtilization *float64 `yaml:"memory_utilization"` }
AlarmArgs represents specs of CloudWatch alarms for deployment rollbacks.
type Alias ¶ added in v1.10.0
type Alias struct { AdvancedAliases []AdvancedAlias StringSliceOrString StringSliceOrString }
Alias is a custom type which supports unmarshaling "http.alias" yaml which can either be of type advancedAlias slice or type StringSliceOrString.
func (*Alias) HostedZones ¶ added in v1.21.0
HostedZones returns all the hosted zones.
func (*Alias) ToStringSlice ¶ added in v1.10.0
ToStringSlice converts an Alias to a slice of string.
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.
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.
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) 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) ExposedPorts ¶ added in v1.25.0
func (b *BackendService) ExposedPorts() ([]ExposedPort, error)
ExposedPorts returns all the ports that are container ports available to receive traffic.
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 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.
type BackendServiceConfig ¶
type BackendServiceConfig struct { ImageConfig ImageWithHealthcheckAndOptionalPort `yaml:"image,flow"` ImageOverride `yaml:",inline"` RoutingRule RoutingRuleConfiguration `yaml:"http,flow"` 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"` DeployConfig DeploymentConfiguration `yaml:"deployment"` Observability Observability `yaml:"observability"` }
BackendServiceConfig holds the configuration that can be overridden per environments.
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"` Buildspec string `yaml:"buildspec,omitempty"` AdditionalPolicy struct { Document yaml.Node `yaml:"PolicyDocument,omitempty"` } `yaml:"additional_policy,omitempty"` }
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.
type CDNStaticConfig ¶ added in v1.25.0
type CDNStaticConfig struct { Location string `yaml:"location,omitempty"` Alias string `yaml:"alias,omitempty"` Path string `yaml:"path,omitempty"` }
CDNStaticConfig represents the static config for CDN.
func (CDNStaticConfig) IsEmpty ¶ added in v1.25.0
func (cfg CDNStaticConfig) IsEmpty() bool
IsEmpty returns true if CDNStaticConfig is not configured.
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 stringSliceOrShellString
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.
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.
type Cooldown ¶ added in v1.19.0
type Cooldown struct { ScaleInCooldown *time.Duration `yaml:"in"` ScaleOutCooldown *time.Duration `yaml:"out"` }
Cooldown represents the autoscaling cooldown of resources.
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 AdvancedCount.
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.
type Deployment ¶ added in v1.18.0
type Deployment struct { StackName string `yaml:"stack_name"` TemplatePath string `yaml:"template_path"` TemplateConfig string `yaml:"template_config"` DependsOn []string `yaml:"depends_on"` }
Deployment is a cloudformation stack deployment configuration.
type DeploymentConfiguration ¶ added in v1.18.0
type DeploymentConfiguration struct { Rolling *string `yaml:"rolling"` RollbackAlarms Union[[]string, AlarmArgs] // `yaml:"rollback_alarms"` }
DeploymentConfiguration represents the deployment strategies for a service.
type Deployments ¶ added in v1.18.0
type Deployments map[string]*Deployment
Deployments represent a directed graph of cloudformation deployments.
type DeprecatedALBSecurityGroupsConfig ¶ added in v1.23.0
type DeprecatedALBSecurityGroupsConfig struct {
DeprecatedIngress DeprecatedIngress `yaml:"ingress"` // Deprecated. This field is now available inside PublicHTTPConfig.Ingress and privateHTTPConfig.Ingress field.
}
DeprecatedALBSecurityGroupsConfig represents security group configuration settings for an ALB.
func (DeprecatedALBSecurityGroupsConfig) IsEmpty ¶ added in v1.23.0
func (cfg DeprecatedALBSecurityGroupsConfig) IsEmpty() bool
IsEmpty returns true if there are no specified fields for ingress.
type DeprecatedIngress ¶ added in v1.23.0
type DeprecatedIngress struct { RestrictiveIngress RestrictiveIngress `yaml:"restrict_to"` // Deprecated. This field is no more available in any other field. VPCIngress *bool `yaml:"from_vpc"` //Deprecated. This field is now available in privateHTTPConfig.Ingress.VPCIngress }
DeprecatedIngress represents allowed ingress traffic from specified fields.
func (DeprecatedIngress) IsEmpty ¶ added in v1.23.0
func (i DeprecatedIngress) IsEmpty() bool
IsEmpty returns true if there are no specified fields for ingress.
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
type DynamicWorkload ¶ added in v1.21.0
type DynamicWorkload interface { ApplyEnv(envName string) (DynamicWorkload, error) Validate() error RequiredEnvironmentFeatures() []string Load(sess *session.Session) error Manifest() any }
DynamicWorkload represents a dynamically populated workload.
func UnmarshalWorkload ¶ added in v0.4.0
func UnmarshalWorkload(in []byte) (DynamicWorkload, 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 DynamicWorkloadManifest ¶ added in v1.21.0
type DynamicWorkloadManifest struct {
// contains filtered or unexported fields
}
DynamicWorkloadManifest represents a dynamically populated workload manifest.
func (DynamicWorkloadManifest) ApplyEnv ¶ added in v1.21.0
func (s DynamicWorkloadManifest) ApplyEnv(envName string) (DynamicWorkload, error)
ApplyEnv returns the workload manifest with environment overrides. If the environment passed in does not have any overrides then it returns itself.
func (*DynamicWorkloadManifest) Load ¶ added in v1.21.0
func (s *DynamicWorkloadManifest) Load(sess *session.Session) error
Load dynamically populates all fields in the manifest.
func (*DynamicWorkloadManifest) Manifest ¶ added in v1.21.0
func (s *DynamicWorkloadManifest) Manifest() any
Manifest returns the manifest content.
func (*DynamicWorkloadManifest) RequiredEnvironmentFeatures ¶ added in v1.21.0
func (s *DynamicWorkloadManifest) RequiredEnvironmentFeatures() []string
RequiredEnvironmentFeatures returns environment features that are required for this manifest.
func (*DynamicWorkloadManifest) Validate ¶ added in v1.21.0
func (l *DynamicWorkloadManifest) Validate() error
Validate returns nil if DynamicLoadBalancedWebService 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.
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.
type ELBAccessLogsArgs ¶ added in v1.21.0
type ELBAccessLogsArgs struct { BucketName *string `yaml:"bucket_name,omitempty"` Prefix *string `yaml:"prefix,omitempty"` }
ELBAccessLogsArgs holds the access logs configuration.
type ELBAccessLogsArgsOrBool ¶ added in v1.21.0
type ELBAccessLogsArgsOrBool struct { Enabled *bool AdvancedConfig ELBAccessLogsArgs }
ELBAccessLogsArgsOrBool is a custom type which supports unmarshaling yaml which can either be of type bool or type ELBAccessLogsArgs.
func (*ELBAccessLogsArgsOrBool) UnmarshalYAML ¶ added in v1.21.0
func (al *ELBAccessLogsArgsOrBool) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the ELBAccessLogsArgsOrBool struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
type EntryPointOverride ¶ added in v1.3.0
type EntryPointOverride stringSliceOrShellString
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 be unmarshalled into a string slice or a string. This method implements the yaml.Unmarshaler (v3) interface.
type Environment ¶ added in v1.18.0
type Environment struct { Workload `yaml:",inline"` EnvironmentConfig `yaml:",inline"` // contains filtered or unexported fields }
Environment is the manifest configuration for an environment.
func FromEnvConfig ¶ added in v1.19.0
func FromEnvConfig(cfg *config.Environment, parser template.Parser) *Environment
FromEnvConfig transforms an environment configuration into a manifest.
func NewEnvironment ¶ added in v1.20.0
func NewEnvironment(props *EnvironmentProps) *Environment
NewEnvironment creates a new environment manifest object.
func UnmarshalEnvironment ¶ added in v1.19.0
func UnmarshalEnvironment(in []byte) (*Environment, error)
UnmarshalEnvironment deserializes the YAML input stream into an environment manifest object. If an error occurs during deserialization, then returns the error.
func (*Environment) MarshalBinary ¶ added in v1.20.0
func (e *Environment) MarshalBinary() ([]byte, error)
MarshalBinary serializes the manifest object into a binary YAML document. Implements the encoding.BinaryMarshaler interface.
func (Environment) Validate ¶ added in v1.18.0
func (e Environment) Validate() error
Validate returns nil if Environment is configured correctly.
type EnvironmentCDNConfig ¶ added in v1.22.0
type EnvironmentCDNConfig struct { Enabled *bool Config AdvancedCDNConfig // mutually exclusive with Enabled }
EnvironmentCDNConfig represents configuration of a CDN.
func (*EnvironmentCDNConfig) IsEmpty ¶ added in v1.22.0
func (cfg *EnvironmentCDNConfig) IsEmpty() bool
IsEmpty returns whether environmentCDNConfig is empty.
func (*EnvironmentCDNConfig) UnmarshalYAML ¶ added in v1.22.0
func (cfg *EnvironmentCDNConfig) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the environmentCDNConfig struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
type EnvironmentConfig ¶ added in v1.18.0
type EnvironmentConfig struct { Network environmentNetworkConfig `yaml:"network,omitempty,flow"` Observability environmentObservability `yaml:"observability,omitempty,flow"` HTTPConfig EnvironmentHTTPConfig `yaml:"http,omitempty,flow"` CDNConfig EnvironmentCDNConfig `yaml:"cdn,omitempty,flow"` }
EnvironmentConfig defines the configuration settings for an environment manifest
func (*EnvironmentConfig) CDNDoesTLSTermination ¶ added in v1.22.0
func (cfg *EnvironmentConfig) CDNDoesTLSTermination() bool
CDNDoesTLSTermination returns true when the environment's CDN is configured to terminate incoming TLS connections.
func (*EnvironmentConfig) CDNEnabled ¶ added in v1.21.0
func (cfg *EnvironmentConfig) CDNEnabled() bool
CDNEnabled returns whether a CDN configuration has been enabled in the environment manifest.
func (*EnvironmentConfig) ELBAccessLogs ¶ added in v1.21.0
func (cfg *EnvironmentConfig) ELBAccessLogs() (*ELBAccessLogsArgs, bool)
ELBAccessLogs returns the access logs config if the user has set any values. If there is no access logs settings, then returns nil and false.
func (*EnvironmentConfig) EnvSecurityGroup ¶ added in v1.21.0
func (cfg *EnvironmentConfig) EnvSecurityGroup() (*securityGroupConfig, bool)
EnvSecurityGroup returns the security group config if the user has set any values. If there is no env security group settings, then returns nil and false.
func (*EnvironmentConfig) GetPublicALBSourceIPs ¶ added in v1.23.0
func (mft *EnvironmentConfig) GetPublicALBSourceIPs() []IPNet
GetPublicALBSourceIPs returns list of IPNet.
func (*EnvironmentConfig) HasImportedPublicALBCerts ¶ added in v1.22.0
func (cfg *EnvironmentConfig) HasImportedPublicALBCerts() bool
HasImportedPublicALBCerts returns true when the environment's ALB is configured with certs for the public listener.
func (*EnvironmentConfig) IsPublicLBIngressRestrictedToCDN ¶ added in v1.23.0
func (mft *EnvironmentConfig) IsPublicLBIngressRestrictedToCDN() bool
IsPublicLBIngressRestrictedToCDN returns whether an environment has its Public Load Balancer ingress restricted to a Content Delivery Network.
type EnvironmentHTTPConfig ¶ added in v1.21.0
type EnvironmentHTTPConfig struct { Public PublicHTTPConfig `yaml:"public,omitempty"` Private privateHTTPConfig `yaml:"private,omitempty"` }
EnvironmentHTTPConfig defines the configuration settings for an environment group's HTTP connections.
func (EnvironmentHTTPConfig) IsEmpty ¶ added in v1.21.0
func (cfg EnvironmentHTTPConfig) IsEmpty() bool
IsEmpty returns true if neither the public ALB nor the internal ALB is configured.
type EnvironmentProps ¶ added in v1.20.0
type EnvironmentProps struct { Name string CustomConfig *config.CustomizeEnv Telemetry *config.Telemetry }
EnvironmentProps contains properties for creating a new environment manifest.
type ErrInvalidPipelineManifestVersion ¶
type ErrInvalidPipelineManifestVersion struct {
// contains filtered or unexported fields
}
ErrInvalidPipelineManifestVersion occurs when the pipeline.yml/manifest.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.
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.
type ExposedPort ¶ added in v1.25.0
type ExposedPort struct { ContainerName string // The name of the container that exposes this port. Port uint16 // The port number. Protocol string // Either "tcp" or "udp", empty means the default value that the underlying service provides. }
ExposedPort will hold the port mapping configuration.
type FIFOAdvanceConfig ¶ added in v1.22.0
type FIFOAdvanceConfig struct { ContentBasedDeduplication *bool `yaml:"content_based_deduplication"` DeduplicationScope *string `yaml:"deduplication_scope"` FIFOThroughputLimit *string `yaml:"throughput_limit"` HighThroughputFifo *bool `yaml:"high_throughput"` }
FifoAdvanceConfig represents the advanced fifo queue config.
func (*FIFOAdvanceConfig) IsEmpty ¶ added in v1.22.0
func (f *FIFOAdvanceConfig) IsEmpty() bool
IsEmpty returns true if the FifoAdvanceConfig struct has all nil values.
type FIFOAdvanceConfigOrBool ¶ added in v1.22.0
type FIFOAdvanceConfigOrBool struct { Enable *bool Advanced FIFOAdvanceConfig }
FIFOAdvanceConfigOrBool represents the configurable options for fifo queues.
func (*FIFOAdvanceConfigOrBool) IsEmpty ¶ added in v1.22.0
func (f *FIFOAdvanceConfigOrBool) IsEmpty() bool
IsEmpty returns true if the FifoAdvanceConfigOrBool struct has all nil values.
func (*FIFOAdvanceConfigOrBool) IsEnabled ¶ added in v1.22.0
func (f *FIFOAdvanceConfigOrBool) IsEnabled() bool
IsEmpty returns true if the FifoAdvanceConfigOrBool struct has all nil values.
func (*FIFOAdvanceConfigOrBool) UnmarshalYAML ¶ added in v1.22.0
func (t *FIFOAdvanceConfigOrBool) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the FifoAdvanceConfigOrBool struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
type FIFOTopicAdvanceConfig ¶ added in v1.22.0
type FIFOTopicAdvanceConfig struct {
ContentBasedDeduplication *bool `yaml:"content_based_deduplication"`
}
FIFOTopicAdvanceConfig represents the advanced fifo topic config.
func (*FIFOTopicAdvanceConfig) IsEmpty ¶ added in v1.22.0
func (a *FIFOTopicAdvanceConfig) IsEmpty() bool
IsEmpty returns true if the FifoAdvanceConfig struct has all nil values.
type FIFOTopicAdvanceConfigOrBool ¶ added in v1.22.0
type FIFOTopicAdvanceConfigOrBool struct { Enable *bool Advanced FIFOTopicAdvanceConfig }
FIFOTopicAdvanceConfigOrBool represents the configurable options for fifo topics.
func (*FIFOTopicAdvanceConfigOrBool) IsEmpty ¶ added in v1.22.0
func (f *FIFOTopicAdvanceConfigOrBool) IsEmpty() bool
IsEmpty returns true if the FifoAdvanceConfigOrBool struct has all nil values.
func (*FIFOTopicAdvanceConfigOrBool) IsEnabled ¶ added in v1.22.0
func (f *FIFOTopicAdvanceConfigOrBool) IsEnabled() bool
IsEnabled returns true if the FIFO is enabled on the SQS queue.
func (*FIFOTopicAdvanceConfigOrBool) UnmarshalYAML ¶ added in v1.22.0
func (t *FIFOTopicAdvanceConfigOrBool) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the FIFOTopicAdvanceConfigOrBool struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
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"` Port *int `yaml:"port"` 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.
type HealthCheckArgsOrString ¶ added in v0.6.0
type HealthCheckArgsOrString struct { Union[string, HTTPHealthCheckArgs] }
HealthCheckArgsOrString is a custom type which supports unmarshaling yaml which can either be of type string or type HealthCheckArgs.
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.
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.
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.
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.
type ImageWithOptionalPort ¶ added in v1.11.0
ImageWithOptionalPort represents a container image with an optional exposed port.
type ImageWithPort ¶ added in v1.7.0
ImageWithPort represents a container image with an exposed port.
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.
type IntRangeBand ¶ added in v1.6.0
type IntRangeBand string
IntRangeBand is a number range with maximum and minimum values.
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.
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.
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) 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) ExposedPorts ¶ added in v1.25.0
func (lbws *LoadBalancedWebService) ExposedPorts() ([]ExposedPort, error)
ExposedPorts returns all the ports that are container ports available to receive traffic.
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.
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"` DeployConfig DeploymentConfiguration `yaml:"deployment"` Observability Observability `yaml:"observability"` }
LoadBalancedWebServiceConfig holds the configuration for a load balanced web service.
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]Variable `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
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.
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.
type NetworkConfig ¶ added in v1.3.0
type NetworkConfig struct { VPC vpcConfig `yaml:"vpc"` Connect ServiceConnectBoolOrArgs `yaml:"connect"` }
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.
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
type Observability ¶ added in v1.16.0
type Observability struct {
Tracing *string `yaml:"tracing"`
}
Observability holds configuration for observability to the service.
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.
type Percentage ¶ added in v1.11.0
type Percentage int
Percentage represents a valid percentage integer ranging from 0 to 100.
type Pipeline ¶ added in v1.16.0
type Pipeline 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 }
Pipeline contains information that defines the relationship and deployment ordering of your environments.
func NewPipeline ¶ added in v1.16.0
func NewPipeline(pipelineName string, provider Provider, stages []PipelineStage) (*Pipeline, error)
NewPipeline returns a pipeline manifest object.
func UnmarshalPipeline ¶
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 (*Pipeline) MarshalBinary ¶ added in v1.16.0
MarshalBinary serializes the pipeline manifest object into byte array that represents the pipeline.yml document.
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 pipelines/*/manifest.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"` Deployments Deployments `yaml:"deployments,omitempty"` }
PipelineStage represents a stage in the pipeline manifest
type PlacementArgOrString ¶ added in v1.19.0
type PlacementArgOrString struct { *PlacementString PlacementArgs }
PlacementArgOrString represents where to place tasks.
func (*PlacementArgOrString) IsEmpty ¶ added in v1.19.0
func (p *PlacementArgOrString) IsEmpty() bool
IsEmpty returns empty if the struct has all zero members.
func (*PlacementArgOrString) UnmarshalYAML ¶ added in v1.19.0
func (p *PlacementArgOrString) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the PlacementArgOrString struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
type PlacementArgs ¶ added in v1.19.0
type PlacementArgs struct {
Subnets SubnetListOrArgs `yaml:"subnets"`
}
PlacementArgs represents where to place tasks.
type PlacementString ¶ added in v1.19.0
type PlacementString string
PlacementString represents what types of subnets (public or private subnets) to place tasks.
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.
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.
type PlatformString ¶ added in v1.11.0
type PlatformString string
PlatformString represents the string format of Platform.
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 PublicHTTPConfig ¶ added in v1.21.0
type PublicHTTPConfig struct { DeprecatedSG DeprecatedALBSecurityGroupsConfig `yaml:"security_groups,omitempty"` // Deprecated. This configuration is now available inside Ingress field. Certificates []string `yaml:"certificates,omitempty"` ELBAccessLogs ELBAccessLogsArgsOrBool `yaml:"access_logs,omitempty"` Ingress RestrictiveIngress `yaml:"ingress,omitempty"` SSLPolicy *string `yaml:"ssl_policy,omitempty"` }
PublicHTTPConfig represents the configuration settings for an environment public ALB.
func (PublicHTTPConfig) IsEmpty ¶ added in v1.21.0
func (cfg PublicHTTPConfig) IsEmpty() bool
IsEmpty returns true if there is no customization to the public ALB.
type PublishConfig ¶ added in v1.8.3
type PublishConfig struct {
Topics []Topic `yaml:"topics"`
}
PublishConfig represents the configurable options for setting up publishers.
type QueueScaling ¶ added in v1.11.0
type QueueScaling struct { AcceptableLatency *time.Duration `yaml:"acceptable_latency"` AvgProcessingTime *time.Duration `yaml:"msg_processing_time"` Cooldown Cooldown `yaml:"cooldown"` }
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.
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.
type RelaxedIngress ¶ added in v1.23.0
type RelaxedIngress struct {
VPCIngress *bool `yaml:"vpc"`
}
RelaxedIngress contains ingress configuration to add to a security group.
func (RelaxedIngress) IsEmpty ¶ added in v1.23.0
func (i RelaxedIngress) IsEmpty() bool
IsEmpty returns true if there are no specified fields for relaxed ingress.
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) 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.
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]Variable `yaml:"variables"` StartCommand *string `yaml:"command"` Tags map[string]string `yaml:"tags"` PublishConfig PublishConfig `yaml:"publish"` Network RequestDrivenWebServiceNetworkConfig `yaml:"network"` Observability Observability `yaml:"observability"` Count *string `yaml:"count"` }
RequestDrivenWebServiceConfig holds the configuration that can be overridden per environments.
type RequestDrivenWebServiceHttpConfig ¶ added in v1.7.0
type RequestDrivenWebServiceHttpConfig struct { HealthCheckConfiguration HealthCheckArgsOrString `yaml:"healthcheck"` Alias *string `yaml:"alias"` Private Union[*bool, VPCEndpoint] `yaml:"private"` }
RequestDrivenWebServiceHttpConfig represents options for configuring http.
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.
type RequestDrivenWebServiceProps ¶ added in v1.7.0
type RequestDrivenWebServiceProps struct { *WorkloadProps Port uint16 Platform PlatformArgsOrString Private bool }
RequestDrivenWebServiceProps contains properties for creating a new request-driven web service manifest.
type RestrictiveIngress ¶ added in v1.21.0
type RestrictiveIngress struct { CDNIngress *bool `yaml:"cdn"` SourceIPs []IPNet `yaml:"source_ips"` }
RestrictiveIngress represents ingress fields which restrict default behavior of allowing all public ingress.
func (RestrictiveIngress) IsEmpty ¶ added in v1.21.0
func (i RestrictiveIngress) IsEmpty() bool
IsEmpty returns true if there are no specified fields for restrictive ingress.
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.
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"` TargetPort *uint16 `yaml:"target_port"` TargetContainerCamelCase *string `yaml:"targetContainer"` // "targetContainerCamelCase" for backwards compatibility AllowedSourceIps []IPNet `yaml:"allowed_source_ips"` HostedZone *string `yaml:"hosted_zone"` // RedirectToHTTPS configures a HTTP->HTTPS redirect. If nil, default to true. RedirectToHTTPS *bool `yaml:"redirect_to_https"` }
RoutingRuleConfiguration holds the path to route requests to the service.
func (*RoutingRuleConfiguration) GetTargetContainer ¶ added in v1.18.1
func (r *RoutingRuleConfiguration) GetTargetContainer() *string
GetTargetContainer returns the correct target container value, if set. Use this function instead of getting r.TargetContainer or r.TargetContainerCamelCase directly.
func (*RoutingRuleConfiguration) IsEmpty ¶ added in v1.19.0
func (r *RoutingRuleConfiguration) IsEmpty() bool
IsEmpty returns true if RoutingRuleConfiguration has empty configuration.
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"` FIFO FIFOAdvanceConfigOrBool `yaml:"fifo"` }
SQSQueue represents the configurable options for setting up a SQS Queue.
type SQSQueueOrBool ¶ added in v1.11.0
SQSQueueOrBool is a custom type which supports unmarshaling yaml which can either be of type bool or type SQSQueue.
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 SQSQueueOrBool to be specified as a string or a struct alternately.
type ScalingConfigOrT ¶ added in v1.20.0
type ScalingConfigOrT[T ~int | time.Duration] struct { Value *T ScalingConfig AdvancedScalingConfig[T] // mutually exclusive with Value }
ScalingConfigOrT represents a resource that has autoscaling configurations or a generic value.
func (*ScalingConfigOrT[_]) IsEmpty ¶ added in v1.20.0
func (r *ScalingConfigOrT[_]) IsEmpty() bool
IsEmpty returns whether ScalingConfigOrT is empty
func (*ScalingConfigOrT[_]) UnmarshalYAML ¶ added in v1.20.0
func (r *ScalingConfigOrT[_]) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the ScalingConfigOrT struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
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) 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) ExposedPorts ¶ added in v1.25.0
func (j *ScheduledJob) ExposedPorts() ([]ExposedPort, error)
ExposedPorts returns all the ports that are sidecar container ports available to receive traffic.
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.
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
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) RequiresImport ¶ added in v1.25.0
RequiresImport returns true if the SSM parameter name or secret ARN value is imported from CloudFormation stack.
func (*Secret) UnmarshalYAML ¶ added in v1.15.0
UnmarshalYAML implements the yaml.Unmarshaler (v3) interface to override the default YAML unmarshaling logic.
type SecurityGroupsConfig ¶ added in v1.20.0
type SecurityGroupsConfig struct { SecurityGroups []stringOrFromCFN `yaml:"groups"` DenyDefault *bool `yaml:"deny_default"` }
SecurityGroupsConfig represents which security groups are attached to a task and if default security group is applied.
type SecurityGroupsIDsOrConfig ¶ added in v1.20.0
type SecurityGroupsIDsOrConfig struct { IDs []stringOrFromCFN AdvancedConfig SecurityGroupsConfig }
SecurityGroupsIDsOrConfig represents security groups attached to task. It supports unmarshalling yaml which can either be of type SecurityGroupsConfig or a list of strings.
func (*SecurityGroupsIDsOrConfig) GetIDs ¶ added in v1.20.0
func (s *SecurityGroupsIDsOrConfig) GetIDs() []stringOrFromCFN
GetIDs returns security groups from SecurityGroupsIDsOrConfig that are attached to task. nil is returned if no security groups are specified.
func (*SecurityGroupsIDsOrConfig) IsDefaultSecurityGroupDenied ¶ added in v1.20.0
func (s *SecurityGroupsIDsOrConfig) IsDefaultSecurityGroupDenied() bool
IsDefaultSecurityGroupDenied returns true if DenyDefault is set to true in SecurityGroupsIDsOrConfig.AdvancedConfig. Otherwise, false is returned.
func (*SecurityGroupsIDsOrConfig) UnmarshalYAML ¶ added in v1.20.0
func (s *SecurityGroupsIDsOrConfig) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshalling logic for the SecurityGroupsIDsOrConfig struct, allowing it to be unmarshalled into a string slice or a string. This method implements the yaml.Unmarshaler (v3) interface.
type ServiceConnectArgs ¶ added in v1.23.0
type ServiceConnectArgs struct {
Alias *string
}
ServiceConnectArgs includes the advanced configuration for ECS Service Connect.
type ServiceConnectBoolOrArgs ¶ added in v1.23.0
type ServiceConnectBoolOrArgs struct { EnableServiceConnect *bool ServiceConnectArgs }
ServiceConnectBoolOrArgs represents ECS Service Connect configuration.
func (*ServiceConnectBoolOrArgs) Enabled ¶ added in v1.24.0
func (s *ServiceConnectBoolOrArgs) Enabled() bool
Enabled returns if ServiceConnect is enabled or not.
func (*ServiceConnectBoolOrArgs) UnmarshalYAML ¶ added in v1.23.0
func (s *ServiceConnectBoolOrArgs) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the ServiceConnect struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
type SidecarConfig ¶
type SidecarConfig struct { Port *string `yaml:"port"` Image *string `yaml:"image"` Essential *bool `yaml:"essential"` CredsParam *string `yaml:"credentialsParameter"` Variables map[string]Variable `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.
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`
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"` ReadonlyRootFS *bool `yaml:"readonly_fs"` 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 StringSliceOrString ¶ added in v1.21.0
StringSliceOrString is a custom type that can either be of type string or type slice of string.
func (*StringSliceOrString) UnmarshalYAML ¶ added in v1.21.0
func (s *StringSliceOrString) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the StringSliceOrString struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
type SubnetArgs ¶ added in v1.21.0
type SubnetArgs struct {
FromTags Tags `yaml:"from_tags"`
}
SubnetArgs represents what subnets to place tasks.
type SubnetListOrArgs ¶ added in v1.21.0
type SubnetListOrArgs struct { IDs []string SubnetArgs }
SubnetListOrArgs represents what subnets to place tasks. It supports unmarshalling yaml which can either be of type SubnetArgs or a list of strings.
func (*SubnetListOrArgs) UnmarshalYAML ¶ added in v1.21.0
func (s *SubnetListOrArgs) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML overrides the default YAML unmarshaling logic for the SubnetListOrArgs struct, allowing it to perform more complex unmarshaling behavior. This method implements the yaml.Unmarshaler (v3) interface.
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.
type Tags ¶ added in v1.21.0
type Tags map[string]StringSliceOrString
Tags represents the aws tags which take string as key and slice of string as values.
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]Variable `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.
type Topic ¶ added in v1.8.3
type Topic struct { Name *string `yaml:"name"` FIFO FIFOTopicAdvanceConfigOrBool `yaml:"fifo"` }
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"` FilterPolicy map[string]interface{} `yaml:"filter_policy"` Queue SQSQueueOrBool `yaml:"queue"` }
TopicSubscription represents the configurable options for setting up a SNS Topic Subscription.
type Union ¶ added in v1.23.0
type Union[Basic, Advanced any] struct { // Basic holds the value of Union if IsBasic() is true. // If IsBasic() is false, this is the zero value of type Basic. // // Basic is exported to support mergo. It should not be set // directly. Use NewUnionBasic() to create a Union with Basic set. Basic Basic // Advanced holds the value of Union if IsAdvanced() is true. // If IsAdvanced() is false, this is the zero value of type Advanced. // // Advanced is exported to support mergo. It should not be set // directly. Use NewUnionAdvanced() to create a Union with Advanced set. Advanced Advanced // contains filtered or unexported fields }
Union is a type used for yaml keys that may be of type Basic or Advanced. Union will only ever hold one of the underlying types, never both.
Union is exported to enable type embedding.
func AdvancedToUnion ¶ added in v1.23.0
AdvancedToUnion creates a new Union[Basic, Advanced] with the underlying type set to Advanced, holding val.
func BasicToUnion ¶ added in v1.23.0
BasicToUnion creates a new Union[Basic, Advanced] with the underlying type set to Basic, holding val.
func (Union[_, _]) IsAdvanced ¶ added in v1.23.0
IsAdvanced returns true if the underlying value of t is type Advanced.
func (Union[_, _]) IsBasic ¶ added in v1.23.0
IsBasic returns true if the underlying value of t is type Basic.
func (Union[_, _]) IsZero ¶ added in v1.23.0
IsZero returns true if the set value of t is determined to be zero via yaml.Zeroer or reflection. It also returns true if neither value for t is set.
func (Union[_, _]) MarshalYAML ¶ added in v1.23.0
MarshalYAML implements yaml.Marshaler.
func (*Union[Basic, Advanced]) SetAdvanced ¶ added in v1.24.0
func (t *Union[Basic, Advanced]) SetAdvanced(v Advanced)
SetAdvanced changes the value of the Union to v.
func (*Union[Basic, Advanced]) SetBasic ¶ added in v1.24.0
func (t *Union[Basic, Advanced]) SetBasic(v Basic)
SetBasic changes the value of the Union to v.
func (*Union[Basic, Advanced]) UnmarshalYAML ¶ added in v1.23.0
UnmarshalYAML decodes value into either type Basic or Advanced, and stores that value in t. Value is first decoded into type Basic, and t will hold type Basic if (1) There was no error decoding value into type Basic and (2) Basic.IsZero() returns false OR Basic is not zero via reflection.
If Basic didn't meet the above criteria, then value is decoded into type Advanced. t will hold type Advanced if Advanced meets the same conditions that were required for type Basic.
An error is returned if value fails to decode into either type or both types are zero after decoding.
type VPCEndpoint ¶ added in v1.23.0
type VPCEndpoint struct {
Endpoint *string `yaml:"endpoint"`
}
VPCEndpoint is used to configure a pre-existing VPC endpoint.
type VPCFlowLogsArgs ¶ added in v1.24.0
type VPCFlowLogsArgs struct {
Retention *int `yaml:"retention,omitempty"`
}
VPCFlowLogsArgs holds the flow logs configuration.
func (*VPCFlowLogsArgs) IsZero ¶ added in v1.24.0
func (fl *VPCFlowLogsArgs) IsZero() bool
IsZero implements yaml.IsZeroer.
type Variable ¶ added in v1.25.0
type Variable struct {
// contains filtered or unexported fields
}
Variable represents an identifier for the value of an environment variable.
func (*Variable) RequiresImport ¶ added in v1.25.0
RequiresImport returns true if the value is imported from an environment.
func (*Variable) UnmarshalYAML ¶ added in v1.25.0
UnmarshalYAML implements the yaml.Unmarshaler (v3) interface to override the default YAML unmarshalling logic.
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) 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) ExposedPorts ¶ added in v1.25.0
func (ws *WorkerService) ExposedPorts() ([]ExposedPort, error)
ExposedPorts returns all the ports that are sidecar container ports available to receive traffic.
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. This method also appends ".fifo" to the topics and returns a new set of subs.
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"` DeployConfig DeploymentConfiguration `yaml:"deployment"` Observability Observability `yaml:"observability"` }
WorkerServiceConfig holds the configuration that can be overridden per environments.
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 Queue SQSQueue // Optional queue configuration. }
WorkerServiceProps represents the configuration needed to create a worker service.