app

package
v0.0.0-...-082e34f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 23, 2024 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ECSClusterParameter           = "ECSCluster"
	ECSRepoParameter              = "ECSRepo"
	ECSTaskExecutionRoleParameter = "ECSTaskExecutionRole"
	VersionTagParameter           = "VersionTag"
	ListenerARNParameter          = "ListenerARN"
	HostHeaderParameter           = "HostHeader"
	EnvNameParameter              = "EnvName"
	VPCParameter                  = "VPCID"
	MetaDeployAssumeRoleParameter = "MetaDeployAssumeRoleArns"
	JWKSParameter                 = "JWKS"
	AWSRegionParameter            = "AWS::Region"
	CORSOriginParameter           = "CORSOrigin"
	SNSPrefixParameter            = "SNSPrefix"
	S3BucketNamespaceParameter    = "S3BucketNamespace"
	O5SidecarImageParameter       = "O5SidecarImage"
	SESConditionsParameter        = "SESConditions"
	SourceTagParameter            = "SourceTag"

	AWSAccountIDParameter = "AWS::AccountId"

	O5SidecarContainerName = "o5_runtime"
	O5SidecarInternalPort  = 8081

	DeadLetterTargetName = "dead-letter"
	O5MonitorTargetName  = "o5-monitor"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Application

type Application struct {
	*cf.TemplateBuilder
	// contains filtered or unexported fields
}

func NewApplication

func NewApplication(name, version string) *Application

func (*Application) AddSNSTopic

func (ss *Application) AddSNSTopic(name string)

func (*Application) Build

func (ss *Application) Build() *BuiltApplication

type BuiltApplication

type BuiltApplication struct {
	Template *cloudformation.Template
	*deployer_pb.BuiltApplication
}

func BuildApplication

func BuildApplication(app *application_pb.Application, versionTag string) (*BuiltApplication, error)

func (*BuiltApplication) TemplateJSON

func (ba *BuiltApplication) TemplateJSON() ([]byte, error)

type ContainerDefinition

type ContainerDefinition struct {
	Container  *ecs.TaskDefinition_ContainerDefinition
	Parameters map[string]*deployer_pb.Parameter
}

type DatabaseReference

type DatabaseReference struct {
	Definition     *application_pb.Database
	SecretResource *cf.Resource[*secretsmanager.Secret]
}

DatabaseReference is used to look up parameters ECS Task Definitions

func (DatabaseReference) SecretValueFrom

func (dbDef DatabaseReference) SecretValueFrom() string

type ListenerRuleSet

type ListenerRuleSet struct {
	Rules []*cf.Resource[*elbv2.ListenerRule]
}

func NewListenerRuleSet

func NewListenerRuleSet() *ListenerRuleSet

func (*ListenerRuleSet) AddRoute

func (ll *ListenerRuleSet) AddRoute(targetGroup *cf.Resource[*elbv2.TargetGroup], route *application_pb.Route) (*cf.Resource[*elbv2.ListenerRule], error)

type PolicyBuilder

type PolicyBuilder struct {
	// contains filtered or unexported fields
}

func NewPolicyBuilder

func NewPolicyBuilder() *PolicyBuilder

func (*PolicyBuilder) AddBucketReadOnly

func (pb *PolicyBuilder) AddBucketReadOnly(arn string)

func (*PolicyBuilder) AddBucketReadWrite

func (pb *PolicyBuilder) AddBucketReadWrite(arn string)

func (*PolicyBuilder) AddBucketReadWriteAcl

func (pb *PolicyBuilder) AddBucketReadWriteAcl(arn string)

func (*PolicyBuilder) AddBucketWriteOnly

func (pb *PolicyBuilder) AddBucketWriteOnly(arn string)

func (*PolicyBuilder) AddECRPull

func (pb *PolicyBuilder) AddECRPull()

func (*PolicyBuilder) AddMetaDeployPermissions

func (pb *PolicyBuilder) AddMetaDeployPermissions()

func (*PolicyBuilder) AddSES

func (pb *PolicyBuilder) AddSES(policy *application_pb.AWSConfig_SES)

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 string)

func (*PolicyBuilder) Build

func (pb *PolicyBuilder) Build(appName string, runtimeName 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 RuntimeService

type RuntimeService struct {
	Prefix string
	Name   string

	TaskDefinition *cf.Resource[*ecs.TaskDefinition]
	Containers     []*ContainerDefinition
	Service        *cf.Resource[*ecs.Service]

	TargetGroups map[string]*cf.Resource[*elbv2.TargetGroup]

	Policy *PolicyBuilder

	AdapterContainer *ecs.TaskDefinition_ContainerDefinition
	// contains filtered or unexported fields
}

func NewRuntimeService

func NewRuntimeService(globals globalData, runtime *application_pb.Runtime) (*RuntimeService, error)

func (*RuntimeService) AddRoutes

func (rs *RuntimeService) AddRoutes(ingress *ListenerRuleSet) error

func (*RuntimeService) Apply

func (rs *RuntimeService) Apply(template *Application) error

func (*RuntimeService) LazyTargetGroup

func (rs *RuntimeService) LazyTargetGroup(protocol application_pb.RouteProtocol, targetContainer string, port int) (*cf.Resource[*elbv2.TargetGroup], error)

type SNSTopic

type SNSTopic struct {
	Name string
}

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"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL