Documentation
¶
Index ¶
- func GetAWSAccountID(conf aws.Config) (string, error)
- func Run(ctx context.Context, argv []string, outStream, errStream io.Writer) error
- type AwsVpcConfiguration
- type BaseConfig
- type CapacityProviderStrategyItem
- type Config
- type ContainerOverride
- type DeadLetterConfig
- type NetworkConfiguration
- type Plugin
- type Query
- type Rule
- func (r *Rule) Apply(ctx context.Context, awsConf aws.Config, dryRun bool) error
- func (r *Rule) Delete(ctx context.Context, awsConf aws.Config, dryRun bool) error
- func (r *Rule) PutRuleInput() *cloudwatchevents.PutRuleInput
- func (r *Rule) PutTargetsInput() *cloudwatchevents.PutTargetsInput
- func (r *Rule) Run(ctx context.Context, awsConf aws.Config, noWait bool) error
- func (r *Rule) TagResourceInput() *cloudwatchevents.TagResourceInput
- type TagFilter
- type Target
- type TaskOverride
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetAWSAccountID ¶
GetAWSAccountID returns id
Types ¶
type AwsVpcConfiguration ¶ added in v0.3.0
type AwsVpcConfiguration struct {
Subnets []string `yaml:"subnets" json:"subnets"`
SecurityGroups []string `yaml:"security_groups,omitempty" json:"security_groups,omitempty"`
AssignPublicIP string `yaml:"assign_public_ip,omitempty" json:"assign_public_ip,omitempty"`
}
AwsVpcConfiguration represents AWS VPC configuration
type BaseConfig ¶
type BaseConfig struct {
Region string `yaml:"region" json:"region"`
Cluster string `yaml:"cluster" json:"cluster"`
AccountID string `yaml:"-" json:"-"`
TrackingID string `yaml:"trackingId,omitempty" json:"trackingId,omitempty"`
}
BaseConfig baseconfig
type CapacityProviderStrategyItem ¶ added in v0.12.0
type CapacityProviderStrategyItem struct {
CapacityProvider string `yaml:"capacityProvider" json:"capacityProvider"`
Base int32 `yaml:"base" json:"base"`
Weight int32 `yaml:"weight" json:"weight"`
}
CapacityProviderStrategyItem represents ECS capacity provider strategy item
type Config ¶
type Config struct {
Role string `yaml:"role,omitempty" json:"role,omitempty"`
*BaseConfig `yaml:",inline" json:",inline"`
Rules []*Rule `yaml:"rules" json:"rules"`
Plugins []*Plugin `yaml:"plugins,omitempty" json:"plugins,omitempty"`
// contains filtered or unexported fields
}
Config config
func LoadConfig ¶
func LoadConfig(ctx context.Context, r io.Reader, accountID string, confPath string) (*Config, error)
LoadConfig loads config
func (*Config) GetRuleByName ¶
GetRuleByName gets rule by name
type ContainerOverride ¶
type ContainerOverride struct {
Name string `yaml:"name" json:"name"`
Command []string `yaml:"command,flow" json:"command"` // ,flow
Environment map[string]string `yaml:"environment,omitempty" json:"environment,omitempty"`
Cpu *int32 `yaml:"cpu,omitempty" json:"cpu,omitempty"`
Memory *int32 `yaml:"memory,omitempty" json:"memory,omitempty"`
MemoryReservation *int32 `yaml:"memoryReservation,omitempty" json:"memoryReservation,omitempty"`
}
ContainerOverride overrides container
type DeadLetterConfig ¶ added in v0.4.0
type DeadLetterConfig struct {
Sqs string `yaml:"sqs" json:"sqs"`
}
A DeadLetterConfig object that contains information about a dead-letter queue configuration.
type NetworkConfiguration ¶ added in v0.3.0
type NetworkConfiguration struct {
AwsVpcConfiguration *AwsVpcConfiguration `yaml:"aws_vpc_configuration" json:"aws_vpc_configuration"`
}
NetworkConfiguration represents ECS network configuration
type Plugin ¶ added in v0.5.0
type Plugin struct {
Name string `yaml:"name"`
Config map[string]interface{} `yaml:"config"`
FuncPrefix string `yaml:"func_prefix,omitempty"`
}
Plugin the plugin
type Rule ¶
type Rule struct {
Name string `yaml:"name" json:"name"`
Description string `yaml:"description,omitempty" json:"description,omitempty"`
ScheduleExpression string `yaml:"scheduleExpression" json:"scheduleExpression"`
Disabled bool `yaml:"disabled,omitempty" json:"disabled,omitempty"` // ENABLE | DISABLE
*Target `yaml:",inline" json:",inline"`
*BaseConfig `yaml:",inline,omitempty"`
}
Rule the rule
func NewRuleFromRemote ¶ added in v0.10.0
func NewRuleFromRemote(ctx context.Context, awsConf aws.Config, bc *BaseConfig, ruleName string) (*Rule, error)
NewRuleFromRemote creates a new rule from remote (AWS EventBridge Rule)
func (*Rule) PutRuleInput ¶
func (r *Rule) PutRuleInput() *cloudwatchevents.PutRuleInput
PutRuleInput puts rule input
func (*Rule) PutTargetsInput ¶
func (r *Rule) PutTargetsInput() *cloudwatchevents.PutTargetsInput
PutTargetsInput puts targets input
func (*Rule) TagResourceInput ¶ added in v0.10.0
func (r *Rule) TagResourceInput() *cloudwatchevents.TagResourceInput
TagResourceInput tags resource input
type Target ¶
type Target struct {
TargetID string `yaml:"targetId,omitempty" json:"targetId,omitempty"`
TaskDefinition string `yaml:"taskDefinition" json:"taskDefinition"`
TaskCount int32 `yaml:"taskCount,omitempty" json:"taskCount,omitempty"`
TaskOverride *TaskOverride `yaml:"taskOverride,omitempty" json:"taskOverride,omitempty"`
ContainerOverrides []*ContainerOverride `yaml:"containerOverrides,omitempty" json:"containerOverrides,omitempty"`
Role string `yaml:"role,omitempty" json:"role,omitempty"`
Group string `yaml:"group,omitempty" json:"group,omitempty"`
CapacityProviderStrategy []*CapacityProviderStrategyItem `yaml:"capacityProviderStrategy,omitempty" json:"capacityProviderStrategy,omitempty"`
LaunchType string `yaml:"launch_type,omitempty" json:"launch_type,omitempty"`
PlatformVersion string `yaml:"platform_version,omitempty" json:"platform_version,omitempty"`
NetworkConfiguration *NetworkConfiguration `yaml:"network_configuration,omitempty" json:"network_configuration,omitempty"`
DeadLetterConfig *DeadLetterConfig `yaml:"dead_letter_config,omitempty" json:"dead_letter_config,omitempty"`
PropagateTags *string `yaml:"propagateTags,omitempty" json:"propagateTags,omitempty"`
}
Target cluster
type TaskOverride ¶ added in v0.15.0
type TaskOverride struct {
Cpu *string `yaml:"cpu,omitempty" json:"cpu,omitempty"`
Memory *string `yaml:"memory,omitempty" json:"memory,omitempty"`
}
NOTE: ContainerOverrides should conceptually be inside TaskOverride (cf. https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskOverride.html). However, for backward-compatibility, we keep ContainerOverrides and TaskOverride as separate fields and merge them into a single struct in `apply` and `run`. That's why containerOverrides field is not inside TaskOverride.