Documentation
¶
Index ¶
- Constants
- type AdapterEndpoint
- type AppInput
- type AuroraDatabaseRef
- func (dbDef AuroraDatabaseRef) AuroraConnectARN() cflib.TemplateRef
- func (dbDef AuroraDatabaseRef) AuroraEndpoint() cflib.TemplateRef
- func (dbDef AuroraDatabaseRef) AuroraProxy() (*AuroraDatabaseRef, bool)
- func (dbDef AuroraDatabaseRef) DSNToProxy(host string) string
- func (dbDef AuroraDatabaseRef) IsProxy() bool
- func (dbDef AuroraDatabaseRef) Name() string
- func (dbDef AuroraDatabaseRef) SecretValueFrom() (cflib.TemplateRef, bool)
- func (dbDef AuroraDatabaseRef) ServerGroup() DatabaseServerGroup
- type BucketRef
- type BucketReference
- type BucketVariable
- type Builder
- type BuiltApplication
- type ContainerDefinition
- type DatabaseRef
- type DatabaseReference
- type DatabaseServerGroup
- type DatabaseVariable
- type ECSTaskDefinition
- func (td *ECSTaskDefinition) AddEventBridgeTargets(targets []*application_pb.Target)
- func (ts *ECSTaskDefinition) AddNamedPolicies(policyNames []string)
- func (td *ECSTaskDefinition) AddToTemplate(template *cflib.TemplateBuilder) (cflib.TemplateRef, error)
- func (td *ECSTaskDefinition) BuildRuntimeContainer(def *application_pb.Container) error
- func (td *ECSTaskDefinition) ExposeContainerPort(containerName string, port int) error
- func (td *ECSTaskDefinition) ListDatabases() []*DatabaseReference
- type EnvVar
- type Globals
- type ListenerRuleSet
- type ParameterReference
- type PolicyBuilder
- func (pb *PolicyBuilder) AddBucketReadOnly(arn cflib.TemplateRef)
- func (pb *PolicyBuilder) AddBucketReadWrite(arn cflib.TemplateRef)
- func (pb *PolicyBuilder) AddBucketReadWriteAcl(arn cflib.TemplateRef)
- func (pb *PolicyBuilder) AddBucketWriteOnly(arn cflib.TemplateRef)
- func (pb *PolicyBuilder) AddECRPull()
- func (pb *PolicyBuilder) AddEventBridgePublish(topicName string)
- func (pb *PolicyBuilder) AddManagedPolicyARN(arn string)
- func (pb *PolicyBuilder) AddRDSConnect(arn string)
- func (pb *PolicyBuilder) AddReadSecret(arn string)
- func (pb *PolicyBuilder) AddSNSPublish(arn string)
- func (pb *PolicyBuilder) AddSQSPublish(arn string)
- func (pb *PolicyBuilder) AddSQSSubscribe(arn cflib.TemplateRef)
- func (pb *PolicyBuilder) Build(familyName string) []iam.Role_Policy
- func (pb *PolicyBuilder) BuildRole(familyName string) *iam.Role
- type PolicyDocument
- type RDSAuthType
- type RDSHost
- type RDSHostLookup
- type RDSHostMap
- type RWPermission
- type RuntimeService
- func (rs *RuntimeService) AddRoutes(ingress *ListenerRuleSet) error
- func (rs *RuntimeService) AddTemplateResources(template *cflib.TemplateBuilder) error
- func (rs *RuntimeService) LazyTargetGroup(protocol application_pb.RouteProtocol, targetContainer string, port int) (*targetGroup, error)
- func (rs *RuntimeService) ListDatabaseServerGroups() []DatabaseServerGroup
- type SecretRef
- type SecretReference
- type SidecarBuilder
- func (sb *SidecarBuilder) AddAppEndpoint(container string, port int64)
- func (sb *SidecarBuilder) Build() (*ecs.TaskDefinition_ContainerDefinition, error)
- func (sb *SidecarBuilder) IsRequired() bool
- func (sb *SidecarBuilder) ProxyDB(db DatabaseRef) string
- func (sb *SidecarBuilder) PublishToEventBridge()
- func (sb *SidecarBuilder) RunOutbox(db DatabaseRef, delayble bool) error
- func (sb *SidecarBuilder) ServeAdapter()
- func (sb *SidecarBuilder) ServePublic()
- func (sb *SidecarBuilder) SetWorkerConfig(cfg *application_pb.WorkerConfig) error
- func (sb *SidecarBuilder) SubscribeSQS(urlRef cflib.TemplateRef, arnRef cflib.TemplateRef) error
- type StatementEntry
Constants ¶
View Source
const ( RDSAuthTypeIAM = iota RDSAuthTypeSecretsManager )
View Source
const ( ECSClusterParameter = "ECSCluster" ECSRepoParameter = "ECSRepo" ECSTaskExecutionRoleParameter = "ECSTaskExecutionRole" VersionTagParameter = "VersionTag" ListenerARNParameter = "ListenerARN" HostHeaderParameter = "HostHeader" EnvNameParameter = "EnvName" ClusterNameParameter = "ClusterName" VPCParameter = "VPCID" MetaDeployAssumeRoleParameter = "MetaDeployAssumeRoleArns" JWKSParameter = "JWKS" AWSRegionParameter = "AWS::Region" CORSOriginParameter = "CORSOrigin" SNSPrefixParameter = "SNSPrefix" S3BucketNamespaceParameter = "S3BucketNamespace" O5SidecarImageParameter = "O5SidecarImage" SourceTagParameter = "SourceTag" EventBusARNParameter = "EventBusARN" LoadBalancerSecurityGroup = "LoadBalancerSecurityGroup" SubnetIDsParameter = "SubnetIDs" AWSAccountIDParameter = "AWS::AccountId" O5SidecarContainerName = "o5_runtime" O5SidecarInternalPort = 8081 DeadLetterTargetName = "dead-letter" O5MonitorTargetName = "o5-monitor" )
View Source
const ( PolicyNameReadSecrets = "read-secrets" PolicyNameECRPull = "ecr-pull" PolicyNameEventbridgePublish = "eventbridge-publish" PolicyNameSNSPublish = "sns-publish" PolicyNameSQSPublish = "sqs-publish" PolicyNameSQSSubscribe = "sqs-subscribe" PolicyNameS3ReadwriteACL = "s3-readwrite-acl" PolicyNameS3ReadWrite = "s3-readwrite" PolicyNameS3ReadOnly = "s3-read-only" PolicyNameS3WriteOnly = "s3-write-only" PolicyNameRDSConnect = "rds-connect" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AdapterEndpoint ¶
type AdapterEndpoint struct {
Value *valuePromise
}
type AppInput ¶
type AppInput struct { Application *application_pb.Application RDSHosts RDSHostLookup VersionTag string }
type AuroraDatabaseRef ¶
type AuroraDatabaseRef struct {
// contains filtered or unexported fields
}
func (AuroraDatabaseRef) AuroraConnectARN ¶
func (dbDef AuroraDatabaseRef) AuroraConnectARN() cflib.TemplateRef
func (AuroraDatabaseRef) AuroraEndpoint ¶
func (dbDef AuroraDatabaseRef) AuroraEndpoint() cflib.TemplateRef
func (AuroraDatabaseRef) AuroraProxy ¶
func (dbDef AuroraDatabaseRef) AuroraProxy() (*AuroraDatabaseRef, bool)
func (AuroraDatabaseRef) DSNToProxy ¶
func (dbDef AuroraDatabaseRef) DSNToProxy(host string) string
func (AuroraDatabaseRef) IsProxy ¶
func (dbDef AuroraDatabaseRef) IsProxy() bool
func (AuroraDatabaseRef) Name ¶
func (dbDef AuroraDatabaseRef) Name() string
func (AuroraDatabaseRef) SecretValueFrom ¶
func (dbDef AuroraDatabaseRef) SecretValueFrom() (cflib.TemplateRef, bool)
func (AuroraDatabaseRef) ServerGroup ¶
func (dbDef AuroraDatabaseRef) ServerGroup() DatabaseServerGroup
type BucketRef ¶
type BucketRef interface { Name() cflib.TemplateRef S3URL(subPathPtr *string) cflib.TemplateRef GetPermissions() RWPermission ARN() cflib.TemplateRef }
type BucketReference ¶
type BucketVariable ¶
type BucketVariable struct { Value *valuePromise // contains filtered or unexported fields }
type Builder ¶
type Builder struct { Globals Template *cflib.TemplateBuilder // contains filtered or unexported fields }
func NewBuilder ¶
func (*Builder) AddPostgresResource ¶
func (bb *Builder) AddPostgresResource(pg *awsdeployer_pb.PostgresDatabaseResource)
func (*Builder) Export ¶
func (bb *Builder) Export() *BuiltApplication
type BuiltApplication ¶
type BuiltApplication struct { Template *cloudformation.Template Parameters []*awsdeployer_pb.Parameter Databases []*awsdeployer_pb.PostgresDatabaseResource Name string Version string }
func BuildApplication ¶
func BuildApplication(spec AppInput) (*BuiltApplication, error)
type ContainerDefinition ¶
type ContainerDefinition struct { Name string Databases []*DatabaseReference Buckets []*BucketReference Secrets []*SecretReference Parameters []*ParameterReference AdapterEndpoint *AdapterEndpoint // contains filtered or unexported fields }
func (*ContainerDefinition) ExposePort ¶
func (cd *ContainerDefinition) ExposePort(port int)
func (*ContainerDefinition) ToCloudformation ¶
func (cd *ContainerDefinition) ToCloudformation() (*ecs.TaskDefinition_ContainerDefinition, error)
type DatabaseRef ¶
type DatabaseRef interface { // Name as specified in the application o5 file Name() string ServerGroup() DatabaseServerGroup AuroraProxy() (*AuroraDatabaseRef, bool) SecretValueFrom() (cflib.TemplateRef, bool) }
type DatabaseReference ¶
type DatabaseReference struct { Name string Database DatabaseRef // contains filtered or unexported fields }
type DatabaseServerGroup ¶
type DatabaseServerGroup struct { GroupName string ClientSecurityGroup cflib.TemplateRef }
type DatabaseVariable ¶
type DatabaseVariable struct { Name string Value *valuePromise // contains filtered or unexported fields }
type ECSTaskDefinition ¶
type ECSTaskDefinition struct { Sidecar *SidecarBuilder // contains filtered or unexported fields }
func NewECSTaskDefinition ¶
func NewECSTaskDefinition(globals Globals, runtimeName string) *ECSTaskDefinition
func (*ECSTaskDefinition) AddEventBridgeTargets ¶
func (td *ECSTaskDefinition) AddEventBridgeTargets(targets []*application_pb.Target)
func (*ECSTaskDefinition) AddNamedPolicies ¶
func (ts *ECSTaskDefinition) AddNamedPolicies(policyNames []string)
func (*ECSTaskDefinition) AddToTemplate ¶
func (td *ECSTaskDefinition) AddToTemplate(template *cflib.TemplateBuilder) (cflib.TemplateRef, error)
func (*ECSTaskDefinition) BuildRuntimeContainer ¶
func (td *ECSTaskDefinition) BuildRuntimeContainer(def *application_pb.Container) error
func (*ECSTaskDefinition) ExposeContainerPort ¶
func (td *ECSTaskDefinition) ExposeContainerPort(containerName string, port int) error
func (*ECSTaskDefinition) ListDatabases ¶
func (td *ECSTaskDefinition) ListDatabases() []*DatabaseReference
type ListenerRuleSet ¶
type ListenerRuleSet struct {
Rules []*cflib.Resource[*elbv2.ListenerRule]
}
func NewListenerRuleSet ¶
func NewListenerRuleSet() *ListenerRuleSet
func (*ListenerRuleSet) AddRoute ¶
func (ll *ListenerRuleSet) AddRoute(targetGroup *cflib.Resource[*elbv2.TargetGroup], route *application_pb.Route) (*cflib.Resource[*elbv2.ListenerRule], error)
func (*ListenerRuleSet) AddTemplateResources ¶
func (ll *ListenerRuleSet) AddTemplateResources(template *cflib.TemplateBuilder)
type ParameterReference ¶
type ParameterReference struct { Name string Value *valuePromise // contains filtered or unexported fields }
type PolicyBuilder ¶
type PolicyBuilder struct {
// contains filtered or unexported fields
}
func NewPolicyBuilder ¶
func NewPolicyBuilder() *PolicyBuilder
func (*PolicyBuilder) AddBucketReadOnly ¶
func (pb *PolicyBuilder) AddBucketReadOnly(arn cflib.TemplateRef)
func (*PolicyBuilder) AddBucketReadWrite ¶
func (pb *PolicyBuilder) AddBucketReadWrite(arn cflib.TemplateRef)
func (*PolicyBuilder) AddBucketReadWriteAcl ¶
func (pb *PolicyBuilder) AddBucketReadWriteAcl(arn cflib.TemplateRef)
func (*PolicyBuilder) AddBucketWriteOnly ¶
func (pb *PolicyBuilder) AddBucketWriteOnly(arn cflib.TemplateRef)
func (*PolicyBuilder) AddECRPull ¶
func (pb *PolicyBuilder) AddECRPull()
func (*PolicyBuilder) AddEventBridgePublish ¶
func (pb *PolicyBuilder) AddEventBridgePublish(topicName string)
func (*PolicyBuilder) AddManagedPolicyARN ¶
func (pb *PolicyBuilder) AddManagedPolicyARN(arn string)
func (*PolicyBuilder) AddRDSConnect ¶
func (pb *PolicyBuilder) AddRDSConnect(arn string)
func (*PolicyBuilder) AddReadSecret ¶
func (pb *PolicyBuilder) AddReadSecret(arn string)
func (*PolicyBuilder) AddSNSPublish ¶
func (pb *PolicyBuilder) AddSNSPublish(arn string)
func (*PolicyBuilder) AddSQSPublish ¶
func (pb *PolicyBuilder) AddSQSPublish(arn string)
func (*PolicyBuilder) AddSQSSubscribe ¶
func (pb *PolicyBuilder) AddSQSSubscribe(arn cflib.TemplateRef)
func (*PolicyBuilder) Build ¶
func (pb *PolicyBuilder) Build(familyName string) []iam.Role_Policy
type PolicyDocument ¶
type PolicyDocument struct { // Version of the policy document Version string `json:"Version"` // Statement is the list of statements in the policy document Statement []StatementEntry `json:"Statement"` }
type RDSAuthType ¶
type RDSAuthType int
type RDSHost ¶
type RDSHost struct {
AuthType environment_pb.RDSAuthTypeKey
}
type RDSHostLookup ¶
type RDSHostMap ¶
func (RDSHostMap) FindRDSHost ¶
func (r RDSHostMap) FindRDSHost(serverGroup string) (*RDSHost, bool)
type RWPermission ¶
type RWPermission int
const ( ReadOnly RWPermission = iota WriteOnly ReadWrite )
type RuntimeService ¶
type RuntimeService struct { Prefix string Name string TargetGroups map[string]*targetGroup TaskDefinition *ECSTaskDefinition // contains filtered or unexported fields }
func NewRuntimeService ¶
func NewRuntimeService(globals Globals, spec *application_pb.Runtime) (*RuntimeService, error)
func (*RuntimeService) AddRoutes ¶
func (rs *RuntimeService) AddRoutes(ingress *ListenerRuleSet) error
func (*RuntimeService) AddTemplateResources ¶
func (rs *RuntimeService) AddTemplateResources(template *cflib.TemplateBuilder) error
func (*RuntimeService) LazyTargetGroup ¶
func (rs *RuntimeService) LazyTargetGroup(protocol application_pb.RouteProtocol, targetContainer string, port int) (*targetGroup, error)
func (*RuntimeService) ListDatabaseServerGroups ¶
func (rs *RuntimeService) ListDatabaseServerGroups() []DatabaseServerGroup
type SecretRef ¶
type SecretRef interface { ARN() cflib.TemplateRef SecretValueFrom(jsonKey string) cflib.TemplateRef }
type SecretReference ¶
type SecretReference struct { Name string // contains filtered or unexported fields }
type SidecarBuilder ¶
type SidecarBuilder struct {
// contains filtered or unexported fields
}
func NewSidecarBuilder ¶
func NewSidecarBuilder(appName string, policy *PolicyBuilder) *SidecarBuilder
func (*SidecarBuilder) AddAppEndpoint ¶
func (sb *SidecarBuilder) AddAppEndpoint(container string, port int64)
func (*SidecarBuilder) Build ¶
func (sb *SidecarBuilder) Build() (*ecs.TaskDefinition_ContainerDefinition, error)
func (*SidecarBuilder) IsRequired ¶
func (sb *SidecarBuilder) IsRequired() bool
func (*SidecarBuilder) ProxyDB ¶
func (sb *SidecarBuilder) ProxyDB(db DatabaseRef) string
func (*SidecarBuilder) PublishToEventBridge ¶
func (sb *SidecarBuilder) PublishToEventBridge()
func (*SidecarBuilder) RunOutbox ¶
func (sb *SidecarBuilder) RunOutbox(db DatabaseRef, delayble bool) error
func (*SidecarBuilder) ServeAdapter ¶
func (sb *SidecarBuilder) ServeAdapter()
func (*SidecarBuilder) ServePublic ¶
func (sb *SidecarBuilder) ServePublic()
func (*SidecarBuilder) SetWorkerConfig ¶
func (sb *SidecarBuilder) SetWorkerConfig(cfg *application_pb.WorkerConfig) error
func (*SidecarBuilder) SubscribeSQS ¶
func (sb *SidecarBuilder) SubscribeSQS(urlRef cflib.TemplateRef, arnRef cflib.TemplateRef) error
type StatementEntry ¶
type StatementEntry struct { // Effect is the effect of the statement Effect string `json:"Effect"` // Action is the list of actions allowed or denied by the statement Action []string `json:"Action"` // Resource is the list of resources the statement applies to Resource []string `json:"Resource,omitempty"` Principal map[string]string `json:"Principal,omitempty"` }
Source Files
¶
Click to show internal directories.
Click to hide internal directories.