ecs

package
v0.11.4 Latest Latest
Warning

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

Go to latest
Published: Aug 9, 2023 License: MPL-2.0 Imports: 37 Imported by: 0

README

AWS ECS

The AWS ECS plugin deploys an application image to an AWS ECS cluster. It also launches on-demand runners to do operations remotely.

Components

  1. Platform
  2. TaskLauncher
  1. Docker
  2. AWS ECR

Resources

  1. ECS Cluster
  2. IAM Execution Role
  3. IAM Task Role
  4. Internal Security Group
  5. External Security Group
  6. Log Group
  7. Service Subnets
  8. ALB subnets
  9. Target Group
  10. ALB
  11. ALB listener
  12. Route53 Record
  13. Task Definition
  14. Service

Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_waypoint_builtin_aws_ecs_plugin_proto protoreflect.FileDescriptor

Options are the SDK options to use for instantiation.

Functions

This section is empty.

Types

type ALBConfig

type ALBConfig struct {
	// Certificate ARN to attach to the load balancer
	CertificateId string `hcl:"certificate,optional"`

	// Route53 Zone to setup record in
	ZoneId string `hcl:"zone_id,optional"`

	// Fully qualified domain name of the record to create in the target zone id
	FQDN string `hcl:"domain_name,optional"`

	// When set, waypoint will configure the target group into the load balancer.
	// This allows for usage of existing ALBs.
	LoadBalancerArn string `hcl:"load_balancer_arn,optional"`

	// Indicates, when creating an ALB, that it should be internal rather than
	// internet facing.
	InternalScheme *bool `hcl:"internal,optional"`

	// Internet-facing traffic port. Defaults to 80 if CertificateId is unset, 443 if set.
	IngressPort int64 `hcl:"ingress_port,optional"`

	// Subnets to place the alb into. Defaults to the subnets in the default VPC.
	// This can be used to explicitly place the ALB on public subnets, leaving the service in private subnets.
	Subnets []string `hcl:"subnets,optional"`

	// Security Group ID of existing security group to use for ALB.
	SecurityGroupIDs []string `hcl:"security_group_ids,optional"`
}

type AppHealthCheck added in v0.11.1

type AppHealthCheck struct {
	// Protocol is the protocol for the health check to use - TCP, HTTP, HTTPS.
	Protocol string `hcl:"protocol,optional"`

	// Path is the destination of the ping path for target health checks.
	Path string `hcl:"path,optional"`

	// Timeout is the amount of time in seconds during which no target response means a failure.
	Timeout int64 `hcl:"timeout,optional"`

	// Interval is the amount of time in seconds between health checks.
	Interval int64 `hcl:"interval,optional"`

	// HealthyThresholdCount is the number of consecutive successful health checks required before considering an unhealthy target healthy.
	// The range is 2–10. The default is 5.
	HealthyThresholdCount int64 `hcl:"healthy_threshold_count,optional"`

	// UnhealthyThresholdCount is the number of consecutive failed health checks required before considering a target unhealthy.
	// The range is 2–10. The default is 2.
	UnhealthyThresholdCount int64 `hcl:"unhealthy_threshold_count,optional"`

	// GRPCCode is the gRPC codes to use when checking for a successful response from a target.
	// The default value is 12.
	GRPCCode string `hcl:"grpc_code,optional"`

	// HTTPCode is the HTTP codes to use when checking for a successful response from a target.
	// The range is 200 to 599. The default is 200-399.
	HTTPCode string `hcl:"http_code,optional"`
}

type Config

type Config struct {
	// AWS Region to deploy into
	Region string `hcl:"region"`

	// Name of the Log Group to store logs into
	LogGroup string `hcl:"log_group,optional"`

	// Name of the ECS cluster to install the service into
	Cluster string `hcl:"cluster,optional"`

	// Name of the execution task IAM Role to associate with the ECS Service
	ExecutionRoleName string `hcl:"execution_role_name,optional"`

	// IAM Policy ARNs for attaching to task role
	TaskRolePolicyArns []string `hcl:"task_role_policy_arns,optional"`

	// Name of the task IAM role to associate with the ECS service
	TaskRoleName string `hcl:"task_role_name,optional"`

	// Subnets to place the service into. Defaults to the subnets in the default VPC.
	Subnets []string `hcl:"subnets,optional"`

	// Security Group IDs of existing security groups to use for ECS.
	SecurityGroupIDs []*string `hcl:"security_group_ids,optional"`

	// How many tasks of the service to run. Default 1.
	Count int `hcl:"count,optional"`

	// How much memory to assign to the containers
	Memory int `hcl:"memory"`

	// The soft limit (in MiB) of memory to reserve for the container
	MemoryReservation int `hcl:"memory_reservation,optional"`

	// How much CPU to assign to the containers
	CPU int `hcl:"cpu,optional"`

	Architecture string `hcl:"architecture,optional"`

	// The environment variables to pass to the main container
	Environment map[string]string `hcl:"static_environment,optional"`

	// The secrets to pass to the main container
	Secrets map[string]string `hcl:"secrets,optional"`

	// Assign each task a public IP. Default true.
	// Note: If private subnets have been specified for ECS tasks, and
	// no NAT gateway is configured, ECS will be unable to pull your image
	// from ECR and your services will be unable to start.
	// NOTE(izaak): If this is not set, we can probably set it to true if
	// the ecs subnet's route table has a nat gw default route, and true if they don't.
	AssignPublicIp *bool `hcl:"assign_public_ip,optional"`

	// Port that your service is running on within the actual container.
	// Defaults to port 3000.
	ServicePort int64 `hcl:"service_port,optional"`

	// Indicate that service should be deployed on an EC2 cluster.
	EC2Cluster bool `hcl:"ec2_cluster,optional"`

	// If set to true, do not create a load balancer assigned to the service
	DisableALB bool `hcl:"disable_alb,optional"`

	// Configuration options for how the ALB will be configured.
	ALB *ALBConfig `hcl:"alb,block"`

	// Configuration options for additional containers
	ContainersConfig []*ContainerConfig `hcl:"sidecar,block"`

	Logging *Logging `hcl:"logging,block"`

	// Health check configurations for the target group
	HealthCheck *AppHealthCheck `hcl:"health_check,block"`

	// The protocol to use for routing traffic to the targets
	Protocol string `hcl:"target_group_protocol,optional"`

	// The version of the protocol to use for routing traffic to the targets
	ProtocolVersion string `hcl:"target_group_protocol_version,optional"`
}

type ContainerConfig added in v0.1.3

type ContainerConfig struct {
	// The name of a container
	Name string `hcl:"name"`

	// The image used to start a container
	Image string `hcl:"image"`

	// The amount (in MiB) of memory to present to the container
	Memory int `hcl:"memory,optional"`

	// The soft limit (in MiB) of memory to reserve for the container
	MemoryReservation int `hcl:"memory_reservation,optional"`

	// The port number on the container
	ContainerPort int `hcl:"container_port,optional"`

	// The port number on the container instance to reserve for your container
	HostPort int `hcl:"host_port,optional"`

	// The protocol used for the port mapping
	Protocol string `hcl:"protocol,optional"`

	// The container health check command
	HealthCheck *HealthCheckConfig `hcl:"health_check,block"`

	// The environment variables to pass to a container
	Environment map[string]string `hcl:"static_environment,optional"`

	// The secrets to pass to a container
	Secrets map[string]string `hcl:"secrets,optional"`
}

type Deployment

type Deployment struct {
	Url             string         `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	TaskArn         string         `protobuf:"bytes,2,opt,name=task_arn,json=taskArn,proto3" json:"task_arn,omitempty"`
	ServiceArn      string         `protobuf:"bytes,3,opt,name=service_arn,json=serviceArn,proto3" json:"service_arn,omitempty"`
	TargetGroupArn  string         `protobuf:"bytes,4,opt,name=target_group_arn,json=targetGroupArn,proto3" json:"target_group_arn,omitempty"`
	LoadBalancerArn string         `protobuf:"bytes,5,opt,name=load_balancer_arn,json=loadBalancerArn,proto3" json:"load_balancer_arn,omitempty"`
	ListenerArn     string         `protobuf:"bytes,8,opt,name=listener_arn,json=listenerArn,proto3" json:"listener_arn,omitempty"`
	Cluster         string         `protobuf:"bytes,6,opt,name=cluster,proto3" json:"cluster,omitempty"`
	ResourceState   *opaqueany.Any `protobuf:"bytes,7,opt,name=resource_state,json=resourceState,proto3" json:"resource_state,omitempty"`
	// contains filtered or unexported fields
}

func (*Deployment) Descriptor deprecated

func (*Deployment) Descriptor() ([]byte, []int)

Deprecated: Use Deployment.ProtoReflect.Descriptor instead.

func (*Deployment) GetCluster

func (x *Deployment) GetCluster() string

func (*Deployment) GetListenerArn added in v0.11.0

func (x *Deployment) GetListenerArn() string

func (*Deployment) GetLoadBalancerArn

func (x *Deployment) GetLoadBalancerArn() string

func (*Deployment) GetResourceState added in v0.5.2

func (x *Deployment) GetResourceState() *opaqueany.Any

func (*Deployment) GetServiceArn

func (x *Deployment) GetServiceArn() string

func (*Deployment) GetTargetGroupArn

func (x *Deployment) GetTargetGroupArn() string

func (*Deployment) GetTaskArn

func (x *Deployment) GetTaskArn() string

func (*Deployment) GetUrl

func (x *Deployment) GetUrl() string

func (*Deployment) ProtoMessage

func (*Deployment) ProtoMessage()

func (*Deployment) ProtoReflect

func (x *Deployment) ProtoReflect() protoreflect.Message

func (*Deployment) Reset

func (x *Deployment) Reset()

func (*Deployment) String

func (x *Deployment) String() string

type DeploymentId added in v0.5.2

type DeploymentId string

DeploymentId is a unique ID to be consistently used throughout our deployment

type ExternalIngressPort added in v0.5.2

type ExternalIngressPort int64

ExternalIngressPort is the port that the ALB will listen for traffic on

type HealthCheckConfig added in v0.1.3

type HealthCheckConfig struct {
	// A string array representing the command that the container runs to determine if it is healthy
	Command []string `hcl:"command"`

	// The time period in seconds between each health check execution
	Interval int64 `hcl:"interval,optional"`

	// The time period in seconds to wait for a health check to succeed before it is considered a failure
	Timeout int64 `hcl:"timeout,optional"`

	// The number of times to retry a failed health check before the container is considered unhealthy
	Retries int64 `hcl:"retries,optional"`

	// The optional grace period within which to provide containers time to bootstrap before failed health checks count towards the maximum number of retries
	StartPeriod int64 `hcl:"start_period,optional"`
}

type Logging added in v0.2.2

type Logging struct {
	CreateGroup bool `hcl:"create_group,optional"`

	StreamPrefix string `hcl:"stream_prefix,optional"`

	DateTimeFormat string `hcl:"datetime_format,optional"`

	MultilinePattern string `hcl:"multiline_pattern,optional"`

	Mode string `hcl:"mode,optional"`

	MaxBufferSize string `hcl:"max_buffer_size,optional"`
}

type Platform

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

func (*Platform) Auth

func (p *Platform) Auth() error

func (*Platform) AuthFunc

func (p *Platform) AuthFunc() interface{}

AuthFunc implements component.Authenticator

func (*Platform) Config

func (p *Platform) Config() (interface{}, error)

Config implements Configurable

func (*Platform) ConfigSet added in v0.3.2

func (p *Platform) ConfigSet(config interface{}) error

ConfigSet is called after a configuration has been decoded we can use this to validate the config

func (*Platform) DefaultReleaserFunc

func (p *Platform) DefaultReleaserFunc() interface{}

DefaultReleaserFunc implements component.PlatformReleaser

func (*Platform) Deploy

func (p *Platform) Deploy(
	ctx context.Context,
	log hclog.Logger,
	src *component.Source,
	img *docker.Image,
	deployConfig *component.DeploymentConfig,
	ui terminal.UI,
	dcr *component.DeclaredResourcesResp,
) (*Deployment, error)

func (*Platform) DeployFunc

func (p *Platform) DeployFunc() interface{}

DeployFunc implements component.Platform

func (*Platform) Destroy

func (p *Platform) Destroy(
	ctx context.Context,
	log hclog.Logger,
	deployment *Deployment,
	ui terminal.UI,
	dcr *component.DeclaredResourcesResp,
	dtr *component.DestroyedResourcesResp,
) error

func (*Platform) DestroyFunc

func (p *Platform) DestroyFunc() interface{}

DestroyFunc implements component.Destroyer

func (*Platform) DestroyWorkspace added in v0.7.0

func (p *Platform) DestroyWorkspace(
	ctx context.Context,
	log hclog.Logger,
	deployment *Deployment,
	app *component.Source,
	ui terminal.UI,
) error

func (*Platform) DestroyWorkspaceFunc added in v0.7.0

func (p *Platform) DestroyWorkspaceFunc() interface{}

DestroyWorkspaceFunc implements component.WorkspaceDestroyer

func (*Platform) Documentation

func (p *Platform) Documentation() (*docs.Documentation, error)

func (*Platform) Status added in v0.5.2

func (p *Platform) Status(
	ctx context.Context,
	log hclog.Logger,
	deployment *Deployment,
	ui terminal.UI,
) (*sdk.StatusReport, error)

func (*Platform) StatusFunc added in v0.5.2

func (p *Platform) StatusFunc() interface{}

StatusFunc implements component.Status

func (*Platform) ValidateAuth

func (p *Platform) ValidateAuth() error

func (*Platform) ValidateAuthFunc

func (p *Platform) ValidateAuthFunc() interface{}

ValidateAuthFunc implements component.Authenticator

type Release

type Release struct {
	Url             string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	LoadBalancerArn string `protobuf:"bytes,2,opt,name=load_balancer_arn,json=loadBalancerArn,proto3" json:"load_balancer_arn,omitempty"`
	// contains filtered or unexported fields
}

func (*Release) Descriptor deprecated

func (*Release) Descriptor() ([]byte, []int)

Deprecated: Use Release.ProtoReflect.Descriptor instead.

func (*Release) GetLoadBalancerArn

func (x *Release) GetLoadBalancerArn() string

func (*Release) GetUrl

func (x *Release) GetUrl() string

func (*Release) ProtoMessage

func (*Release) ProtoMessage()

func (*Release) ProtoReflect

func (x *Release) ProtoReflect() protoreflect.Message

func (*Release) Reset

func (x *Release) Reset()

func (*Release) String

func (x *Release) String() string

func (*Release) URL

func (r *Release) URL() string

type Releaser

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

Releaser is the ReleaseManager implementation for Amazon ECS.

func (*Releaser) Config

func (r *Releaser) Config() (interface{}, error)

Config implements Configurable

func (*Releaser) Documentation

func (r *Releaser) Documentation() (*docs.Documentation, error)

func (*Releaser) Release

func (r *Releaser) Release(
	ctx context.Context,
	log hclog.Logger,
	src *component.Source,
	ui terminal.UI,
	target *Deployment,
) (*Release, error)

Release updates the load balancer for the ECS deployment

func (*Releaser) ReleaseFunc

func (r *Releaser) ReleaseFunc() interface{}

ReleaseFunc implements component.ReleaseManager

type ReleaserConfig

type ReleaserConfig struct{}

ReleaserConfig is the configuration structure for the Releaser.

type Resource added in v0.5.2

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

Resource contains the internal resource states.

func (*Resource) Descriptor deprecated added in v0.5.2

func (*Resource) Descriptor() ([]byte, []int)

Deprecated: Use Resource.ProtoReflect.Descriptor instead.

func (*Resource) ProtoMessage added in v0.5.2

func (*Resource) ProtoMessage()

func (*Resource) ProtoReflect added in v0.5.2

func (x *Resource) ProtoReflect() protoreflect.Message

func (*Resource) Reset added in v0.5.2

func (x *Resource) Reset()

func (*Resource) String added in v0.5.2

func (x *Resource) String() string

type Resource_Alb added in v0.5.2

type Resource_Alb struct {
	Name                  string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Arn                   string `protobuf:"bytes,2,opt,name=arn,proto3" json:"arn,omitempty"`
	DnsName               string `protobuf:"bytes,3,opt,name=dns_name,json=dnsName,proto3" json:"dns_name,omitempty"`
	CanonicalHostedZoneId string `` /* 128-byte string literal not displayed */
	// Indicates if an ALB was created by waypoint, and should be destroyed by waypoint
	Managed bool `protobuf:"varint,5,opt,name=managed,proto3" json:"managed,omitempty"`
	// contains filtered or unexported fields
}

func (*Resource_Alb) Descriptor deprecated added in v0.5.2

func (*Resource_Alb) Descriptor() ([]byte, []int)

Deprecated: Use Resource_Alb.ProtoReflect.Descriptor instead.

func (*Resource_Alb) GetArn added in v0.5.2

func (x *Resource_Alb) GetArn() string

func (*Resource_Alb) GetCanonicalHostedZoneId added in v0.5.2

func (x *Resource_Alb) GetCanonicalHostedZoneId() string

func (*Resource_Alb) GetDnsName added in v0.5.2

func (x *Resource_Alb) GetDnsName() string

func (*Resource_Alb) GetManaged added in v0.5.2

func (x *Resource_Alb) GetManaged() bool

func (*Resource_Alb) GetName added in v0.5.2

func (x *Resource_Alb) GetName() string

func (*Resource_Alb) ProtoMessage added in v0.5.2

func (*Resource_Alb) ProtoMessage()

func (*Resource_Alb) ProtoReflect added in v0.5.2

func (x *Resource_Alb) ProtoReflect() protoreflect.Message

func (*Resource_Alb) Reset added in v0.5.2

func (x *Resource_Alb) Reset()

func (*Resource_Alb) String added in v0.5.2

func (x *Resource_Alb) String() string

type Resource_AlbSubnets added in v0.5.2

type Resource_AlbSubnets struct {
	Subnets *Resource_Subnets `protobuf:"bytes,1,opt,name=subnets,proto3" json:"subnets,omitempty"`
	// contains filtered or unexported fields
}

Container for subnets used for the ALB and target group

func (*Resource_AlbSubnets) Descriptor deprecated added in v0.5.2

func (*Resource_AlbSubnets) Descriptor() ([]byte, []int)

Deprecated: Use Resource_AlbSubnets.ProtoReflect.Descriptor instead.

func (*Resource_AlbSubnets) GetSubnets added in v0.5.2

func (x *Resource_AlbSubnets) GetSubnets() *Resource_Subnets

func (*Resource_AlbSubnets) ProtoMessage added in v0.5.2

func (*Resource_AlbSubnets) ProtoMessage()

func (*Resource_AlbSubnets) ProtoReflect added in v0.5.2

func (x *Resource_AlbSubnets) ProtoReflect() protoreflect.Message

func (*Resource_AlbSubnets) Reset added in v0.5.2

func (x *Resource_AlbSubnets) Reset()

func (*Resource_AlbSubnets) String added in v0.5.2

func (x *Resource_AlbSubnets) String() string

type Resource_Alb_Listener added in v0.5.2

type Resource_Alb_Listener struct {
	Arn         string                `protobuf:"bytes,1,opt,name=arn,proto3" json:"arn,omitempty"`
	TargetGroup *Resource_TargetGroup `protobuf:"bytes,2,opt,name=target_group,json=targetGroup,proto3" json:"target_group,omitempty"`
	// Indicates if an ALB was created by waypoint, and should be destroyed by waypoint
	Managed bool `protobuf:"varint,3,opt,name=managed,proto3" json:"managed,omitempty"`
	// contains filtered or unexported fields
}

func (*Resource_Alb_Listener) Descriptor deprecated added in v0.5.2

func (*Resource_Alb_Listener) Descriptor() ([]byte, []int)

Deprecated: Use Resource_Alb_Listener.ProtoReflect.Descriptor instead.

func (*Resource_Alb_Listener) GetArn added in v0.5.2

func (x *Resource_Alb_Listener) GetArn() string

func (*Resource_Alb_Listener) GetManaged added in v0.5.2

func (x *Resource_Alb_Listener) GetManaged() bool

func (*Resource_Alb_Listener) GetTargetGroup added in v0.5.2

func (x *Resource_Alb_Listener) GetTargetGroup() *Resource_TargetGroup

func (*Resource_Alb_Listener) ProtoMessage added in v0.5.2

func (*Resource_Alb_Listener) ProtoMessage()

func (*Resource_Alb_Listener) ProtoReflect added in v0.5.2

func (x *Resource_Alb_Listener) ProtoReflect() protoreflect.Message

func (*Resource_Alb_Listener) Reset added in v0.5.2

func (x *Resource_Alb_Listener) Reset()

func (*Resource_Alb_Listener) String added in v0.5.2

func (x *Resource_Alb_Listener) String() string

type Resource_Cluster added in v0.5.2

type Resource_Cluster struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Arn  string `protobuf:"bytes,2,opt,name=arn,proto3" json:"arn,omitempty"`
	// contains filtered or unexported fields
}

func (*Resource_Cluster) Descriptor deprecated added in v0.5.2

func (*Resource_Cluster) Descriptor() ([]byte, []int)

Deprecated: Use Resource_Cluster.ProtoReflect.Descriptor instead.

func (*Resource_Cluster) GetArn added in v0.5.2

func (x *Resource_Cluster) GetArn() string

func (*Resource_Cluster) GetName added in v0.5.2

func (x *Resource_Cluster) GetName() string

func (*Resource_Cluster) ProtoMessage added in v0.5.2

func (*Resource_Cluster) ProtoMessage()

func (*Resource_Cluster) ProtoReflect added in v0.5.2

func (x *Resource_Cluster) ProtoReflect() protoreflect.Message

func (*Resource_Cluster) Reset added in v0.5.2

func (x *Resource_Cluster) Reset()

func (*Resource_Cluster) String added in v0.5.2

func (x *Resource_Cluster) String() string

type Resource_ExecutionRole added in v0.5.2

type Resource_ExecutionRole struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Arn  string `protobuf:"bytes,2,opt,name=arn,proto3" json:"arn,omitempty"`
	// Indicates if an execution role was created by waypoint, and should be destroyed by waypoint
	Managed bool `protobuf:"varint,3,opt,name=managed,proto3" json:"managed,omitempty"`
	// contains filtered or unexported fields
}

func (*Resource_ExecutionRole) Descriptor deprecated added in v0.5.2

func (*Resource_ExecutionRole) Descriptor() ([]byte, []int)

Deprecated: Use Resource_ExecutionRole.ProtoReflect.Descriptor instead.

func (*Resource_ExecutionRole) GetArn added in v0.5.2

func (x *Resource_ExecutionRole) GetArn() string

func (*Resource_ExecutionRole) GetManaged added in v0.5.2

func (x *Resource_ExecutionRole) GetManaged() bool

func (*Resource_ExecutionRole) GetName added in v0.5.2

func (x *Resource_ExecutionRole) GetName() string

func (*Resource_ExecutionRole) ProtoMessage added in v0.5.2

func (*Resource_ExecutionRole) ProtoMessage()

func (*Resource_ExecutionRole) ProtoReflect added in v0.5.2

func (x *Resource_ExecutionRole) ProtoReflect() protoreflect.Message

func (*Resource_ExecutionRole) Reset added in v0.5.2

func (x *Resource_ExecutionRole) Reset()

func (*Resource_ExecutionRole) String added in v0.5.2

func (x *Resource_ExecutionRole) String() string

type Resource_ExternalSecurityGroups added in v0.5.2

type Resource_ExternalSecurityGroups struct {
	SecurityGroups []*Resource_SecurityGroup `protobuf:"bytes,1,rep,name=security_groups,json=securityGroups,proto3" json:"security_groups,omitempty"`
	// contains filtered or unexported fields
}

To be attached to the ALB

func (*Resource_ExternalSecurityGroups) Descriptor deprecated added in v0.5.2

func (*Resource_ExternalSecurityGroups) Descriptor() ([]byte, []int)

Deprecated: Use Resource_ExternalSecurityGroups.ProtoReflect.Descriptor instead.

func (*Resource_ExternalSecurityGroups) GetSecurityGroups added in v0.5.2

func (x *Resource_ExternalSecurityGroups) GetSecurityGroups() []*Resource_SecurityGroup

func (*Resource_ExternalSecurityGroups) ProtoMessage added in v0.5.2

func (*Resource_ExternalSecurityGroups) ProtoMessage()

func (*Resource_ExternalSecurityGroups) ProtoReflect added in v0.5.2

func (*Resource_ExternalSecurityGroups) Reset added in v0.5.2

func (*Resource_ExternalSecurityGroups) String added in v0.5.2

type Resource_InternalSecurityGroups added in v0.5.2

type Resource_InternalSecurityGroups struct {
	SecurityGroups []*Resource_SecurityGroup `protobuf:"bytes,1,rep,name=security_groups,json=securityGroups,proto3" json:"security_groups,omitempty"`
	// contains filtered or unexported fields
}

To be attached directly to the ECS tasks

func (*Resource_InternalSecurityGroups) Descriptor deprecated added in v0.5.2

func (*Resource_InternalSecurityGroups) Descriptor() ([]byte, []int)

Deprecated: Use Resource_InternalSecurityGroups.ProtoReflect.Descriptor instead.

func (*Resource_InternalSecurityGroups) GetSecurityGroups added in v0.5.2

func (x *Resource_InternalSecurityGroups) GetSecurityGroups() []*Resource_SecurityGroup

func (*Resource_InternalSecurityGroups) ProtoMessage added in v0.5.2

func (*Resource_InternalSecurityGroups) ProtoMessage()

func (*Resource_InternalSecurityGroups) ProtoReflect added in v0.5.2

func (*Resource_InternalSecurityGroups) Reset added in v0.5.2

func (*Resource_InternalSecurityGroups) String added in v0.5.2

type Resource_LogGroup added in v0.5.2

type Resource_LogGroup struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Arn  string `protobuf:"bytes,2,opt,name=arn,proto3" json:"arn,omitempty"`
	// contains filtered or unexported fields
}

func (*Resource_LogGroup) Descriptor deprecated added in v0.5.2

func (*Resource_LogGroup) Descriptor() ([]byte, []int)

Deprecated: Use Resource_LogGroup.ProtoReflect.Descriptor instead.

func (*Resource_LogGroup) GetArn added in v0.5.2

func (x *Resource_LogGroup) GetArn() string

func (*Resource_LogGroup) GetName added in v0.5.2

func (x *Resource_LogGroup) GetName() string

func (*Resource_LogGroup) ProtoMessage added in v0.5.2

func (*Resource_LogGroup) ProtoMessage()

func (*Resource_LogGroup) ProtoReflect added in v0.5.2

func (x *Resource_LogGroup) ProtoReflect() protoreflect.Message

func (*Resource_LogGroup) Reset added in v0.5.2

func (x *Resource_LogGroup) Reset()

func (*Resource_LogGroup) String added in v0.5.2

func (x *Resource_LogGroup) String() string

type Resource_Route53Record added in v0.5.2

type Resource_Route53Record struct {
	Name   string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	ZoneId string `protobuf:"bytes,2,opt,name=zone_id,json=zoneId,proto3" json:"zone_id,omitempty"`
	// contains filtered or unexported fields
}

func (*Resource_Route53Record) Descriptor deprecated added in v0.5.2

func (*Resource_Route53Record) Descriptor() ([]byte, []int)

Deprecated: Use Resource_Route53Record.ProtoReflect.Descriptor instead.

func (*Resource_Route53Record) GetName added in v0.5.2

func (x *Resource_Route53Record) GetName() string

func (*Resource_Route53Record) GetZoneId added in v0.5.2

func (x *Resource_Route53Record) GetZoneId() string

func (*Resource_Route53Record) ProtoMessage added in v0.5.2

func (*Resource_Route53Record) ProtoMessage()

func (*Resource_Route53Record) ProtoReflect added in v0.5.2

func (x *Resource_Route53Record) ProtoReflect() protoreflect.Message

func (*Resource_Route53Record) Reset added in v0.5.2

func (x *Resource_Route53Record) Reset()

func (*Resource_Route53Record) String added in v0.5.2

func (x *Resource_Route53Record) String() string

type Resource_SecurityGroup added in v0.5.2

type Resource_SecurityGroup struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Id   string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
	// Indicates if a security group was created by waypoint, and should be destroyed by waypoint
	Managed bool `protobuf:"varint,3,opt,name=managed,proto3" json:"managed,omitempty"`
	// contains filtered or unexported fields
}

func (*Resource_SecurityGroup) Descriptor deprecated added in v0.5.2

func (*Resource_SecurityGroup) Descriptor() ([]byte, []int)

Deprecated: Use Resource_SecurityGroup.ProtoReflect.Descriptor instead.

func (*Resource_SecurityGroup) GetId added in v0.5.2

func (x *Resource_SecurityGroup) GetId() string

func (*Resource_SecurityGroup) GetManaged added in v0.5.2

func (x *Resource_SecurityGroup) GetManaged() bool

func (*Resource_SecurityGroup) GetName added in v0.5.2

func (x *Resource_SecurityGroup) GetName() string

func (*Resource_SecurityGroup) ProtoMessage added in v0.5.2

func (*Resource_SecurityGroup) ProtoMessage()

func (*Resource_SecurityGroup) ProtoReflect added in v0.5.2

func (x *Resource_SecurityGroup) ProtoReflect() protoreflect.Message

func (*Resource_SecurityGroup) Reset added in v0.5.2

func (x *Resource_SecurityGroup) Reset()

func (*Resource_SecurityGroup) String added in v0.5.2

func (x *Resource_SecurityGroup) String() string

type Resource_Service added in v0.5.2

type Resource_Service struct {
	Name    string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Arn     string `protobuf:"bytes,2,opt,name=arn,proto3" json:"arn,omitempty"`
	Cluster string `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
	// contains filtered or unexported fields
}

func (*Resource_Service) Descriptor deprecated added in v0.5.2

func (*Resource_Service) Descriptor() ([]byte, []int)

Deprecated: Use Resource_Service.ProtoReflect.Descriptor instead.

func (*Resource_Service) GetArn added in v0.5.2

func (x *Resource_Service) GetArn() string

func (*Resource_Service) GetCluster added in v0.5.2

func (x *Resource_Service) GetCluster() string

func (*Resource_Service) GetName added in v0.5.2

func (x *Resource_Service) GetName() string

func (*Resource_Service) ProtoMessage added in v0.5.2

func (*Resource_Service) ProtoMessage()

func (*Resource_Service) ProtoReflect added in v0.5.2

func (x *Resource_Service) ProtoReflect() protoreflect.Message

func (*Resource_Service) Reset added in v0.5.2

func (x *Resource_Service) Reset()

func (*Resource_Service) String added in v0.5.2

func (x *Resource_Service) String() string

type Resource_ServiceSubnets added in v0.5.2

type Resource_ServiceSubnets struct {
	Subnets *Resource_Subnets `protobuf:"bytes,1,opt,name=subnets,proto3" json:"subnets,omitempty"`
	// contains filtered or unexported fields
}

Container for subnets used for the ecs service

func (*Resource_ServiceSubnets) Descriptor deprecated added in v0.5.2

func (*Resource_ServiceSubnets) Descriptor() ([]byte, []int)

Deprecated: Use Resource_ServiceSubnets.ProtoReflect.Descriptor instead.

func (*Resource_ServiceSubnets) GetSubnets added in v0.5.2

func (x *Resource_ServiceSubnets) GetSubnets() *Resource_Subnets

func (*Resource_ServiceSubnets) ProtoMessage added in v0.5.2

func (*Resource_ServiceSubnets) ProtoMessage()

func (*Resource_ServiceSubnets) ProtoReflect added in v0.5.2

func (x *Resource_ServiceSubnets) ProtoReflect() protoreflect.Message

func (*Resource_ServiceSubnets) Reset added in v0.5.2

func (x *Resource_ServiceSubnets) Reset()

func (*Resource_ServiceSubnets) String added in v0.5.2

func (x *Resource_ServiceSubnets) String() string

type Resource_Subnets added in v0.5.2

type Resource_Subnets struct {
	Subnets []*Resource_Subnets_Subnet `protobuf:"bytes,1,rep,name=subnets,proto3" json:"subnets,omitempty"`
	// Currently, the subnet resource is responsible for discovering which VPC we're running in,
	// because we determine it by describing either the default subnets or the user-specified subnets.
	VpcId string `protobuf:"bytes,2,opt,name=vpc_id,json=vpcId,proto3" json:"vpc_id,omitempty"`
	// contains filtered or unexported fields
}

func (*Resource_Subnets) Descriptor deprecated added in v0.5.2

func (*Resource_Subnets) Descriptor() ([]byte, []int)

Deprecated: Use Resource_Subnets.ProtoReflect.Descriptor instead.

func (*Resource_Subnets) GetSubnets added in v0.5.2

func (x *Resource_Subnets) GetSubnets() []*Resource_Subnets_Subnet

func (*Resource_Subnets) GetVpcId added in v0.5.2

func (x *Resource_Subnets) GetVpcId() string

func (*Resource_Subnets) ProtoMessage added in v0.5.2

func (*Resource_Subnets) ProtoMessage()

func (*Resource_Subnets) ProtoReflect added in v0.5.2

func (x *Resource_Subnets) ProtoReflect() protoreflect.Message

func (*Resource_Subnets) Reset added in v0.5.2

func (x *Resource_Subnets) Reset()

func (*Resource_Subnets) String added in v0.5.2

func (x *Resource_Subnets) String() string

type Resource_Subnets_Subnet added in v0.5.2

type Resource_Subnets_Subnet struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*Resource_Subnets_Subnet) Descriptor deprecated added in v0.5.2

func (*Resource_Subnets_Subnet) Descriptor() ([]byte, []int)

Deprecated: Use Resource_Subnets_Subnet.ProtoReflect.Descriptor instead.

func (*Resource_Subnets_Subnet) GetId added in v0.5.2

func (x *Resource_Subnets_Subnet) GetId() string

func (*Resource_Subnets_Subnet) ProtoMessage added in v0.5.2

func (*Resource_Subnets_Subnet) ProtoMessage()

func (*Resource_Subnets_Subnet) ProtoReflect added in v0.5.2

func (x *Resource_Subnets_Subnet) ProtoReflect() protoreflect.Message

func (*Resource_Subnets_Subnet) Reset added in v0.5.2

func (x *Resource_Subnets_Subnet) Reset()

func (*Resource_Subnets_Subnet) String added in v0.5.2

func (x *Resource_Subnets_Subnet) String() string

type Resource_TargetGroup added in v0.5.2

type Resource_TargetGroup struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Arn  string `protobuf:"bytes,2,opt,name=arn,proto3" json:"arn,omitempty"`
	Port int64  `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
	// contains filtered or unexported fields
}

func (*Resource_TargetGroup) Descriptor deprecated added in v0.5.2

func (*Resource_TargetGroup) Descriptor() ([]byte, []int)

Deprecated: Use Resource_TargetGroup.ProtoReflect.Descriptor instead.

func (*Resource_TargetGroup) GetArn added in v0.5.2

func (x *Resource_TargetGroup) GetArn() string

func (*Resource_TargetGroup) GetName added in v0.5.2

func (x *Resource_TargetGroup) GetName() string

func (*Resource_TargetGroup) GetPort added in v0.5.2

func (x *Resource_TargetGroup) GetPort() int64

func (*Resource_TargetGroup) ProtoMessage added in v0.5.2

func (*Resource_TargetGroup) ProtoMessage()

func (*Resource_TargetGroup) ProtoReflect added in v0.5.2

func (x *Resource_TargetGroup) ProtoReflect() protoreflect.Message

func (*Resource_TargetGroup) Reset added in v0.5.2

func (x *Resource_TargetGroup) Reset()

func (*Resource_TargetGroup) String added in v0.5.2

func (x *Resource_TargetGroup) String() string

type Resource_TaskDefinition added in v0.5.2

type Resource_TaskDefinition struct {
	Arn     string `protobuf:"bytes,2,opt,name=arn,proto3" json:"arn,omitempty"`
	Runtime string `protobuf:"bytes,3,opt,name=runtime,proto3" json:"runtime,omitempty"`
	// contains filtered or unexported fields
}

func (*Resource_TaskDefinition) Descriptor deprecated added in v0.5.2

func (*Resource_TaskDefinition) Descriptor() ([]byte, []int)

Deprecated: Use Resource_TaskDefinition.ProtoReflect.Descriptor instead.

func (*Resource_TaskDefinition) GetArn added in v0.5.2

func (x *Resource_TaskDefinition) GetArn() string

func (*Resource_TaskDefinition) GetRuntime added in v0.5.2

func (x *Resource_TaskDefinition) GetRuntime() string

func (*Resource_TaskDefinition) ProtoMessage added in v0.5.2

func (*Resource_TaskDefinition) ProtoMessage()

func (*Resource_TaskDefinition) ProtoReflect added in v0.5.2

func (x *Resource_TaskDefinition) ProtoReflect() protoreflect.Message

func (*Resource_TaskDefinition) Reset added in v0.5.2

func (x *Resource_TaskDefinition) Reset()

func (*Resource_TaskDefinition) String added in v0.5.2

func (x *Resource_TaskDefinition) String() string

type Resource_TaskRole added in v0.5.2

type Resource_TaskRole struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Arn  string `protobuf:"bytes,2,opt,name=arn,proto3" json:"arn,omitempty"`
	// Indicates if the role was created by waypoint, and should be destroyed by waypoint
	Managed bool `protobuf:"varint,3,opt,name=managed,proto3" json:"managed,omitempty"`
	// contains filtered or unexported fields
}

func (*Resource_TaskRole) Descriptor deprecated added in v0.5.2

func (*Resource_TaskRole) Descriptor() ([]byte, []int)

Deprecated: Use Resource_TaskRole.ProtoReflect.Descriptor instead.

func (*Resource_TaskRole) GetArn added in v0.5.2

func (x *Resource_TaskRole) GetArn() string

func (*Resource_TaskRole) GetManaged added in v0.5.2

func (x *Resource_TaskRole) GetManaged() bool

func (*Resource_TaskRole) GetName added in v0.5.2

func (x *Resource_TaskRole) GetName() string

func (*Resource_TaskRole) ProtoMessage added in v0.5.2

func (*Resource_TaskRole) ProtoMessage()

func (*Resource_TaskRole) ProtoReflect added in v0.5.2

func (x *Resource_TaskRole) ProtoReflect() protoreflect.Message

func (*Resource_TaskRole) Reset added in v0.5.2

func (x *Resource_TaskRole) Reset()

func (*Resource_TaskRole) String added in v0.5.2

func (x *Resource_TaskRole) String() string

type TaskInfo added in v0.6.0

type TaskInfo struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

This represents the state of the TaskLaunch implementation.

func (*TaskInfo) Descriptor deprecated added in v0.6.0

func (*TaskInfo) Descriptor() ([]byte, []int)

Deprecated: Use TaskInfo.ProtoReflect.Descriptor instead.

func (*TaskInfo) GetId added in v0.6.0

func (x *TaskInfo) GetId() string

func (*TaskInfo) ProtoMessage added in v0.6.0

func (*TaskInfo) ProtoMessage()

func (*TaskInfo) ProtoReflect added in v0.6.0

func (x *TaskInfo) ProtoReflect() protoreflect.Message

func (*TaskInfo) Reset added in v0.6.0

func (x *TaskInfo) Reset()

func (*TaskInfo) String added in v0.6.0

func (x *TaskInfo) String() string

type TaskLauncher added in v0.6.0

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

TaskLauncher implements the TaskLauncher plugin interface to support launching on-demand tasks for the Waypoint server.

func (*TaskLauncher) Config added in v0.6.0

func (p *TaskLauncher) Config() (interface{}, error)

TaskLauncher implements Configurable

func (*TaskLauncher) Documentation added in v0.6.0

func (p *TaskLauncher) Documentation() (*docs.Documentation, error)

func (*TaskLauncher) StartTask added in v0.6.0

func (p *TaskLauncher) StartTask(
	ctx context.Context,
	log hclog.Logger,
	tli *component.TaskLaunchInfo,
) (*TaskInfo, error)

StartTask runs an ECS Task to perform the requested job.

func (*TaskLauncher) StartTaskFunc added in v0.6.0

func (p *TaskLauncher) StartTaskFunc() interface{}

StartTaskFunc implements component.TaskLauncher

func (*TaskLauncher) StopTask added in v0.6.0

func (p *TaskLauncher) StopTask(
	ctx context.Context,
	log hclog.Logger,
	ti *TaskInfo,
) error

StopTask signals to AWS ECS to stop the container created previously.

func (*TaskLauncher) StopTaskFunc added in v0.6.0

func (p *TaskLauncher) StopTaskFunc() interface{}

StopTaskFunc implements component.TaskLauncher

func (*TaskLauncher) WatchTask added in v0.9.0

func (p *TaskLauncher) WatchTask(
	ctx context.Context,
	log hclog.Logger,
	ui terminal.UI,
	ti *TaskInfo,
) (*component.TaskResult, error)

WatchTask implements TaskLauncher

func (*TaskLauncher) WatchTaskFunc added in v0.9.0

func (p *TaskLauncher) WatchTaskFunc() interface{}

WatchTaskFunc implements component.TaskLauncher

type TaskLauncherConfig added in v0.6.0

type TaskLauncherConfig struct {
	// Cluster is the ECS we're operating in
	Cluster string `hcl:"cluster,optional"`

	// Region is the AWS region we're operating in, e.g. us-west-2, us-east-1
	Region string `hcl:"region,optional"`

	// ExecutionRoleName is the name of the AWS IAM role to apply to the task's
	// Execution Role. At this time we reuse the same Role as the Server
	// Execution Role.
	ExecutionRoleName string `hcl:"execution_role_name,optional"`

	// TaskRoleName is the name of the AWS IAM role to apply to the task. This
	// role determines the privileges the ODR builder has, and must have the correct
	// policies in place to work with the provided registries.
	TaskRoleName string `hcl:"task_role_name,optional"`

	// Subnets are the list of subnets for the cluster. These will match the
	// subnets used for the Cluster
	Subnets string `hcl:"subnets"`

	// SecurityGroupId is the security group used for the Waypoint tasks.
	SecurityGroupId string `hcl:"security_group_id"`

	// LogGroup is the CloudWatch log group name to use.
	LogGroup string `hcl:"log_group,optional"`

	// ODR Resource configuration
	OdrMemory string `hcl:"odr_memory,optional"`
	OdrCPU    string `hcl:"odr_cpu,optional"`
}

TaskLauncherConfig is the configuration structure for the task plugin. At this time all these are simply copied from what the Waypoint Server installation is using, with the only exception being the TaskRoleName.

type WorkspaceDestroy added in v0.7.0

type WorkspaceDestroy bool

WorkspaceDestroy marks that we're destroying the entire workspace (not just the deployment), and we should destroy global resources too

Jump to

Keyboard shortcuts

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