Documentation
¶
Overview ¶
Package template renders the static files under the "/templates/" directory.
Index ¶
- Constants
- func AvailableEnvFeatures() []string
- func DashReplacedLogicalIDToOriginal(safeLogicalID string) string
- func EnvVarNameFunc(s string) string
- func EnvVarSecretFunc(s string) string
- func FmtSliceFunc(elems []string) string
- func FriendlyEnvFeatureName(feature string) string
- func IncFunc(i int) int
- func IsARNFunc(value string) bool
- func LeastVersionForFeature(feature string) string
- func QuoteSliceFunc(elems []string) []string
- func ReplaceDashesFunc(logicalID string) string
- func SecretFromSSMOrARN(value string) ssmOrSecretARN
- func SecretFromSecretsManager(value string) secretsManagerName
- func StripNonAlphaNumFunc(s string) string
- func ToSnakeCaseFunc(s string) string
- func TrimSlashPrefix(value string) string
- type AdvancedCount
- type AliasesForHostedZone
- type AutoscalingOpts
- type AutoscalingQueueDelayOpts
- type CapacityProviderStrategy
- type ContainerHealthCheck
- type Content
- type DeadLetterQueue
- type DeploymentConfigurationOpts
- type EFSPermission
- type EFSVolumeConfiguration
- type EnvOpts
- type ExecuteCommandOpts
- type HTTPHealthCheckOpts
- type ImportVPC
- type LogConfigOpts
- type ManagedVPC
- type ManagedVolumeCreationInfo
- type MountPoint
- type NLBHealthCheck
- type NetworkLoadBalancer
- type NetworkLoadBalancerListener
- type NetworkOpts
- type ObservabilityOpts
- type ParseOption
- type Parser
- type PublishOpts
- type ReadParser
- type Reader
- type RuntimePlatformOpts
- type SQSQueue
- type Secret
- type SidecarOpts
- type SidecarStorageOpts
- type StateMachineOpts
- type StorageOpts
- type SubscribeOpts
- type Telemetry
- type Template
- func (t *Template) Parse(path string, data interface{}, options ...ParseOption) (*Content, error)
- func (t *Template) ParseBackendService(data WorkloadOpts) (*Content, error)
- func (t *Template) ParseEnv(data *EnvOpts, options ...ParseOption) (*Content, error)
- func (t *Template) ParseLoadBalancedWebService(data WorkloadOpts) (*Content, error)
- func (t *Template) ParseRequestDrivenWebService(data WorkloadOpts) (*Content, error)
- func (t *Template) ParseScheduledJob(data WorkloadOpts) (*Content, error)
- func (t *Template) ParseWorkerService(data WorkloadOpts) (*Content, error)
- func (t *Template) Read(path string) (*Content, error)
- func (t *Template) UploadEnvironmentCustomResources(upload s3.CompressAndUploadFunc) (map[string]string, error)
- func (t *Template) UploadNetworkLoadBalancedWebServiceCustomResources(upload s3.CompressAndUploadFunc) (map[string]string, error)
- func (t *Template) UploadRequestDrivenWebServiceCustomResources(upload s3.CompressAndUploadFunc) (map[string]string, error)
- type Topic
- type TopicSubscription
- type Uploadable
- type VPCConfig
- type Volume
- type WorkloadNestedStackOpts
- type WorkloadOpts
Constants ¶
const ( ALBFeatureName = "ALBWorkloads" EFSFeatureName = "EFSWorkloads" NATFeatureName = "NATWorkloads" InternalALBFeatureName = "InternalALBWorkloads" )
Latest available env-controller managed feature names.
const ( DNSCertValidatorFileName = "dns-cert-validator" DNSDelegationFileName = "dns-delegation" CustomDomainFileName = "custom-domain" AppRunnerCustomDomainLambdaFileName = "custom-domain-app-runner" NLBCertValidatorLambdaFileName = "nlb-cert-validator" NLBCustomDomainLambdaFileName = "nlb-custom-domain" )
File names under "templates/".
const ( // AWS VPC networking configuration. EnablePublicIP = "ENABLED" DisablePublicIP = "DISABLED" PublicSubnetsPlacement = "PublicSubnets" PrivateSubnetsPlacement = "PrivateSubnets" // RuntimePlatform configuration. OSLinux = "LINUX" OSWindowsServerFull = "WINDOWS_SERVER_2019_FULL" OSWindowsServerCore = "WINDOWS_SERVER_2019_CORE" ArchX86 = "X86_64" ArchARM64 = "ARM64" )
Constants for workload options.
Variables ¶
This section is empty.
Functions ¶
func AvailableEnvFeatures ¶ added in v1.19.0
func AvailableEnvFeatures() []string
AvailableEnvFeatures returns a list of the latest available feature, named after their corresponding parameter names.
func DashReplacedLogicalIDToOriginal ¶
DashReplacedLogicalIDToOriginal takes a "sanitized" logical ID and converts it back to its original form, with dashes.
func EnvVarNameFunc ¶
EnvVarNameFunc converts an input resource name to LogicalIDSafe, then appends "Name" to the end.
func EnvVarSecretFunc ¶ added in v1.5.0
EnvVarSecretFunc converts an input resource name to LogicalIDSafe, then appends "Secret" to the end.
func FmtSliceFunc ¶
FmtSliceFunc renders a string representation of a go string slice, surrounded by brackets and joined by commas.
func FriendlyEnvFeatureName ¶ added in v1.19.0
FriendlyEnvFeatureName returns a user-friendly feature name given a env-controller managed parameter name. If there isn't one, it returns the parameter name that it is given.
func IsARNFunc ¶ added in v1.16.0
IsArnFunc takes a string value and determines if it's an ARN or not.
func LeastVersionForFeature ¶ added in v1.19.0
LeastVersionForFeature maps each feature to the least environment template version it requires.
func QuoteSliceFunc ¶
QuoteSliceFunc places quotation marks around all elements of a go string slice.
func ReplaceDashesFunc ¶
ReplaceDashesFunc takes a CloudFormation logical ID, and sanitizes it by removing "-" characters (not allowed) and replacing them with "DASH" (allowed by CloudFormation but not permitted in ecs-cli generated resource names).
func SecretFromSSMOrARN ¶ added in v1.15.0
func SecretFromSSMOrARN(value string) ssmOrSecretARN
SecretFromSSMOrARN returns a Secret that refers to an SSM parameter or a secret ARN.
func SecretFromSecretsManager ¶ added in v1.15.0
func SecretFromSecretsManager(value string) secretsManagerName
SecretFromSecretsManager returns a Secret that refers to SecretsManager secret name.
func StripNonAlphaNumFunc ¶
StripNonAlphaNumFunc strips non-alphanumeric characters from an input string.
func ToSnakeCaseFunc ¶
ToSnakeCaseFunc transforms a CamelCase input string s into an upper SNAKE_CASE string and returns it. For example, "usersDdbTableName" becomes "USERS_DDB_TABLE_NAME".
func TrimSlashPrefix ¶ added in v1.16.0
TrimSlashPrefix takes a string value and removes slash prefix from the string if present.
Types ¶
type AdvancedCount ¶ added in v1.6.0
type AdvancedCount struct {
Spot *int
Autoscaling *AutoscalingOpts
Cps []*CapacityProviderStrategy
}
AdvancedCount holds configuration for autoscaling and capacity provider parameters.
type AliasesForHostedZone ¶ added in v1.19.0
AliasesForHostedZone maps hosted zone IDs to aliases that belong to it.
type AutoscalingOpts ¶ added in v0.4.0
type AutoscalingOpts struct {
MinCapacity *int
MaxCapacity *int
CPU *float64
Memory *float64
Requests *float64
ResponseTime *float64
QueueDelay *AutoscalingQueueDelayOpts
}
AutoscalingOpts holds configuration that's needed for Auto Scaling.
type AutoscalingQueueDelayOpts ¶ added in v1.11.0
type AutoscalingQueueDelayOpts struct {
AcceptableBacklogPerTask int
}
AutoscalingQueueDelayOpts holds configuration to scale SQS queues.
type CapacityProviderStrategy ¶ added in v1.6.0
CapacityProviderStrategy holds the configuration needed for a CapacityProviderStrategyItem on a Service
type ContainerHealthCheck ¶ added in v1.11.0
type ContainerHealthCheck struct {
Command []string
Interval *int64
Retries *int64
StartPeriod *int64
Timeout *int64
}
ContainerHealthCheck holds configuration for container health check.
type Content ¶
Content represents the parsed template.
func (*Content) MarshalBinary ¶
MarshalBinary returns the contents as binary and implements the encoding.BinaryMarshaler interface.
type DeadLetterQueue ¶ added in v1.9.0
type DeadLetterQueue struct {
Tries *uint16
}
DeadLetterQueue holds information needed to render a dead-letter SQS Queue in a container definition.
type DeploymentConfigurationOpts ¶ added in v1.18.0
type DeploymentConfigurationOpts struct {
// The lower limit on the number of tasks that should be running during a service deployment or when a container instance is draining.
MinHealthyPercent int
// The upper limit on the number of tasks that should be running during a service deployment or when a container instance is draining.
MaxPercent int
}
DeploymentConfiguraitonOpts holds values for MinHealthyPercent and MaxPercent.
type EFSPermission ¶ added in v1.3.0
EFSPermission holds information needed to render an IAM policy statement.
type EFSVolumeConfiguration ¶ added in v1.5.0
type EFSVolumeConfiguration struct {
// EFSVolumeConfiguration
Filesystem *string
RootDirectory *string // "/" or empty are equivalent
// Authorization Config
AccessPointID *string
IAM *string // ENABLED or DISABLED
}
EFSVolumeConfiguration contains information about how to specify externally managed file systems.
type EnvOpts ¶ added in v0.3.0
type EnvOpts struct {
AppName string // The application name. Needed to create default value for svc discovery endpoint for upgraded environments.
Version string // The template version to use for the environment. If empty uses the "legacy" template.
DNSDelegationLambda string
DNSCertValidatorLambda string
EnableLongARNFormatLambda string
CustomDomainLambda string
ScriptBucketName string
ArtifactBucketARN string
ArtifactBucketKeyARN string
VPCConfig VPCConfig
PublicImportedCertARNs []string
PrivateImportedCertARNs []string
CustomInternalALBSubnets []string
AllowVPCIngress bool
Telemetry *Telemetry
LatestVersion string
Manifest string // Serialized manifest used to render the environment template.
}
EnvOpts holds data that can be provided to enable features in an environment stack template.
type ExecuteCommandOpts ¶ added in v1.4.0
type ExecuteCommandOpts struct{}
ExecuteCommandOpts holds configuration that's needed for ECS Execute Command.
type HTTPHealthCheckOpts ¶ added in v0.6.0
type HTTPHealthCheckOpts struct {
HealthCheckPath string
Port string
SuccessCodes string
HealthyThreshold *int64
UnhealthyThreshold *int64
Interval *int64
Timeout *int64
DeregistrationDelay *int64
GracePeriod *int64
}
HTTPHealthCheckOpts holds configuration that's needed for HTTP Health Check.
type LogConfigOpts ¶
type LogConfigOpts struct {
Image *string
Destination map[string]string
EnableMetadata *string
SecretOptions map[string]Secret
ConfigFile *string
Variables map[string]string
Secrets map[string]Secret
}
LogConfigOpts holds configuration that's needed if the service is configured with Firelens to route its logs.
type ManagedVPC ¶ added in v1.18.0
type ManagedVPC struct {
CIDR string
AZs []string
PublicSubnetCIDRs []string
PrivateSubnetCIDRs []string
}
ManagedVPC holds the fields to configure a managed VPC.
type ManagedVolumeCreationInfo ¶ added in v1.5.0
ManagedVolumeCreationInfo holds information about how to create Copilot-managed access points.
type MountPoint ¶ added in v1.3.0
MountPoint holds information needed to render a MountPoint in a containerdefinition.
type NLBHealthCheck ¶ added in v1.14.0
type NLBHealthCheck struct {
Port string // The port to which health check requests made from Network Load Balancer are routed to.
HealthyThreshold *int64
UnhealthyThreshold *int64
Timeout *int64
Interval *int64
}
NLBHealthCheck holds configuration for Network Load Balancer health check.
type NetworkLoadBalancer ¶ added in v1.13.0
type NetworkLoadBalancer struct {
PublicSubnetCIDRs []string
Listener NetworkLoadBalancerListener
MainContainerPort string
}
NetworkLoadBalancer holds configuration that's needed for a Network Load Balancer.
type NetworkLoadBalancerListener ¶ added in v1.13.0
type NetworkLoadBalancerListener struct {
// The port and protocol that the Network Load Balancer listens to.
Port string
Protocol string
// The target container and port to which the traffic is routed to from the Network Load Balancer.
TargetContainer string
TargetPort string
SSLPolicy *string // The SSL policy applied when using TLS protocol.
Aliases []string
Stickiness *bool
HealthCheck NLBHealthCheck
}
NetworkLoadBalancerListener holds configuration that's need for a Network Load Balancer listener.
type NetworkOpts ¶ added in v1.3.0
type NetworkOpts struct {
SecurityGroups []string
AssignPublicIP string
// SubnetsType and SubnetIDs are mutually exclusive. They won't be set together.
SubnetsType string
SubnetIDs []string
}
NetworkOpts holds AWS networking configuration for the workloads.
type ObservabilityOpts ¶ added in v1.16.0
type ObservabilityOpts struct {
Tracing string // The name of the vendor used for tracing.
}
ObservabilityOpts holds configurations for observability.
type ParseOption ¶
ParseOption represents a functional option for the Parse method.
func WithFuncs ¶
func WithFuncs(fns map[string]interface{}) ParseOption
WithFuncs returns a template that can parse additional custom functions.
type Parser ¶
type Parser interface {
Parse(path string, data interface{}, options ...ParseOption) (*Content, error)
}
Parser is the interface that wraps the Parse method.
type PublishOpts ¶ added in v1.8.3
type PublishOpts struct {
Topics []*Topic
}
PublishOpts holds configuration needed if the service has publishers.
type ReadParser ¶
ReadParser is the interface that wraps the Read and Parse methods.
type RuntimePlatformOpts ¶ added in v1.12.0
RuntimePlatformOpts holds configuration needed for Platform configuration.
func (RuntimePlatformOpts) IsDefault ¶ added in v1.12.0
func (p RuntimePlatformOpts) IsDefault() bool
IsDefault returns true if the platform matches the default docker image platform of "linux/amd64".
func (RuntimePlatformOpts) Version ¶ added in v1.12.0
func (p RuntimePlatformOpts) Version() string
Version returns the Fargate platform version based on the selected os family.
type SQSQueue ¶ added in v1.9.0
type SQSQueue struct {
Retention *int64
Delay *int64
Timeout *int64
DeadLetter *DeadLetterQueue
}
SQSQueue holds information needed to render a SQS Queue in a container definition.
type Secret ¶ added in v1.15.0
A Secret represents an SSM or SecretsManager secret that can be rendered in CloudFormation.
type SidecarOpts ¶
type SidecarOpts struct {
Name *string
Image *string
Essential *bool
Port *string
Protocol *string
CredsParam *string
Variables map[string]string
Secrets map[string]Secret
Storage SidecarStorageOpts
DockerLabels map[string]string
DependsOn map[string]string
EntryPoint []string
Command []string
HealthCheck *ContainerHealthCheck
}
SidecarOpts holds configuration that's needed if the service has sidecar containers.
type SidecarStorageOpts ¶ added in v1.12.0
type SidecarStorageOpts struct {
MountPoints []*MountPoint
}
SidecarStorageOpts holds data structures for rendering Mount Points inside of a sidecar.
type StateMachineOpts ¶ added in v0.5.0
StateMachineOpts holds configuration needed for State Machine retries and timeout.
type StorageOpts ¶ added in v1.3.0
type StorageOpts struct {
Ephemeral *int
Volumes []*Volume
MountPoints []*MountPoint
EFSPerms []*EFSPermission
ManagedVolumeInfo *ManagedVolumeCreationInfo // Used for delegating CreationInfo for Copilot-managed EFS.
}
StorageOpts holds data structures for rendering Volumes and Mount Points
type SubscribeOpts ¶ added in v1.9.0
type SubscribeOpts struct {
Topics []*TopicSubscription
Queue *SQSQueue
}
SubscribeOpts holds configuration needed if the service has subscriptions.
func (*SubscribeOpts) HasTopicQueues ¶ added in v1.10.0
func (s *SubscribeOpts) HasTopicQueues() bool
HasTopicQueues returns true if any individual subscription has a dedicated queue.
type Telemetry ¶ added in v1.18.0
type Telemetry struct {
EnableContainerInsights *bool
}
Telemetry represents optional observability and monitoring configuration.
func (*Telemetry) ContainerInsightsEnabled ¶ added in v1.18.0
ContainerInsightsEnabled returns whether the container insights should be enabled.
type Template ¶
type Template struct {
// contains filtered or unexported fields
}
Template represents the "/templates/" directory that holds static files to be embedded in the binary.
func New ¶
func New() *Template
New returns a Template object that can be used to parse files under the "/templates/" directory.
func (*Template) Parse ¶
func (t *Template) Parse(path string, data interface{}, options ...ParseOption) (*Content, error)
Parse parses the template under "/templates/{path}" with the specified data object and returns its content.
func (*Template) ParseBackendService ¶
func (t *Template) ParseBackendService(data WorkloadOpts) (*Content, error)
ParseBackendService parses a backend service's CloudFormation template with the specified data object and returns its content.
func (*Template) ParseEnv ¶ added in v0.3.0
func (t *Template) ParseEnv(data *EnvOpts, options ...ParseOption) (*Content, error)
ParseEnv parses an environment's CloudFormation template with the specified data object and returns its content.
func (*Template) ParseLoadBalancedWebService ¶
func (t *Template) ParseLoadBalancedWebService(data WorkloadOpts) (*Content, error)
ParseLoadBalancedWebService parses a load balanced web service's CloudFormation template with the specified data object and returns its content.
func (*Template) ParseRequestDrivenWebService ¶ added in v1.7.0
func (t *Template) ParseRequestDrivenWebService(data WorkloadOpts) (*Content, error)
ParseRequestDrivenWebService parses a request-driven web service's CloudFormation template with the specified data object and returns its content.
func (*Template) ParseScheduledJob ¶ added in v0.5.0
func (t *Template) ParseScheduledJob(data WorkloadOpts) (*Content, error)
ParseScheduledJob parses a scheduled job's Cloudformation Template
func (*Template) ParseWorkerService ¶ added in v1.9.0
func (t *Template) ParseWorkerService(data WorkloadOpts) (*Content, error)
ParseWorkerService parses a worker service's CloudFormation template with the specified data object and returns its content.
func (*Template) UploadEnvironmentCustomResources ¶ added in v1.4.0
func (t *Template) UploadEnvironmentCustomResources(upload s3.CompressAndUploadFunc) (map[string]string, error)
UploadEnvironmentCustomResources uploads the environment custom resource scripts.
func (*Template) UploadNetworkLoadBalancedWebServiceCustomResources ¶ added in v1.14.0
func (t *Template) UploadNetworkLoadBalancedWebServiceCustomResources(upload s3.CompressAndUploadFunc) (map[string]string, error)
UploadNetworkLoadBalancedWebServiceCustomResources uploads the network load-balanced web service custom resource scripts.
func (*Template) UploadRequestDrivenWebServiceCustomResources ¶ added in v1.9.0
func (t *Template) UploadRequestDrivenWebServiceCustomResources(upload s3.CompressAndUploadFunc) (map[string]string, error)
UploadRequestDrivenWebServiceCustomResources uploads the request driven web service custom resource scripts.
type Topic ¶ added in v1.9.0
type Topic struct {
Name *string
Region string
Partition string
AccountID string
App string
Env string
Svc string
}
Topic holds information needed to render a SNSTopic in a container definition.
type TopicSubscription ¶ added in v1.9.0
TopicSubscription holds information needed to render a SNS Topic Subscription in a container definition.
type Uploadable ¶ added in v1.4.0
type Uploadable struct {
// contains filtered or unexported fields
}
Uploadable is an uploadable file.
func (Uploadable) Content ¶ added in v1.4.0
func (e Uploadable) Content() []byte
Content returns the content of the custom resource script.
func (Uploadable) Name ¶ added in v1.4.0
func (e Uploadable) Name() string
Name returns the name of the custom resource script.
type VPCConfig ¶ added in v1.18.0
type VPCConfig struct {
Imported *ImportVPC // If not-nil, use the imported VPC resources instead of the Managed VPC.
Managed ManagedVPC
}
type Volume ¶ added in v1.3.0
type Volume struct {
Name *string
EFS *EFSVolumeConfiguration
}
Volume contains fields that render a volume, its name, and EFSVolumeConfiguration
type WorkloadNestedStackOpts ¶ added in v0.5.0
type WorkloadNestedStackOpts struct {
StackName string
VariableOutputs []string
SecretOutputs []string
PolicyOutputs []string
SecurityGroupOutputs []string
}
WorkloadNestedStackOpts holds configuration that's needed if the workload stack has a nested stack.
type WorkloadOpts ¶ added in v0.5.0
type WorkloadOpts struct {
// Additional options that are common between **all** workload templates.
Variables map[string]string
Secrets map[string]Secret
Aliases []string
HTTPSListener bool
UseImportedCerts bool
Tags map[string]string // Used by App Runner workloads to tag App Runner service resources
NestedStack *WorkloadNestedStackOpts // Outputs from nested stacks such as the addons stack.
AddonsExtraParams string // Additional user defined Parameters for the addons stack.
Sidecars []*SidecarOpts
LogConfig *LogConfigOpts
Autoscaling *AutoscalingOpts
CapacityProviders []*CapacityProviderStrategy
DesiredCountOnSpot *int
Storage *StorageOpts
Network NetworkOpts
ExecuteCommand *ExecuteCommandOpts
Platform RuntimePlatformOpts
EntryPoint []string
Command []string
DomainAlias string
DockerLabels map[string]string
DependsOn map[string]string
Publish *PublishOpts
ServiceDiscoveryEndpoint string
HTTPVersion *string
ALBEnabled bool
HostedZoneAliases AliasesForHostedZone
// Additional options for service templates.
WorkloadType string
HealthCheck *ContainerHealthCheck
HTTPHealthCheck HTTPHealthCheckOpts
DeregistrationDelay *int64
AllowedSourceIps []string
NLB *NetworkLoadBalancer
DeploymentConfiguration DeploymentConfigurationOpts
// Lambda functions.
RulePriorityLambda string
DesiredCountLambda string
EnvControllerLambda string
CredentialsParameter string
BacklogPerTaskCalculatorLambda string
NLBCertValidatorFunctionLambda string
NLBCustomDomainFunctionLambda string
// Additional options for job templates.
ScheduleExpression string
StateMachine *StateMachineOpts
// Additional options for request driven web service templates.
StartCommand *string
EnableHealthCheck bool
Observability ObservabilityOpts
// Input needed for the custom resource that adds a custom domain to the service.
Alias *string
ScriptBucketName *string
CustomDomainLambda *string
AWSSDKLayer *string
AppDNSDelegationRole *string
AppDNSName *string
// Additional options for worker service templates.
Subscribe *SubscribeOpts
}
WorkloadOpts holds optional data that can be provided to enable features in a workload stack template.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package artifactpath holds functions to generate the S3 object path for artifacts.
|
Package artifactpath holds functions to generate the S3 object path for artifacts. |
|
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
|
Package override provides functionality to replace content from vended templates.
|
Package override provides functionality to replace content from vended templates. |