Documentation ¶
Index ¶
- Constants
- func IsInvalidAttribute(e error) bool
- func NewInvalidAttribute(name string) error
- type Attributes
- type AttributesController
- type Controller
- type GroupController
- type InvalidAttribute
- type MockAttributesController
- type MockController
- type MockNameTagGenerator
- func (_m *MockNameTagGenerator) NameTG(namespace string, ingressName string, serviceName string, servicePort string, ...) string
- func (_m *MockNameTagGenerator) TagTG(serviceName string, servicePort string) map[string]string
- func (_m *MockNameTagGenerator) TagTGGroup(namespace string, ingressName string) map[string]string
- type MockTargetsController
- type NameGenerator
- type NameTagGenerator
- type TagGenerator
- type TargetGroup
- type TargetGroupGroup
- type Targets
- type TargetsController
Constants ¶
const ( DeregistrationDelayTimeoutSecondsKey = "deregistration_delay.timeout_seconds" SlowStartDurationSecondsKey = "slow_start.duration_seconds" StickinessEnabledKey = "stickiness.enabled" StickinessTypeKey = "stickiness.type" StickinessLbCookieDurationSecondsKey = "stickiness.lb_cookie.duration_seconds" DeregistrationDelayTimeoutSeconds = 300 SlowStartDurationSeconds = 0 StickinessEnabled = false StickinessType = "lb_cookie" StickinessLbCookieDurationSeconds = 86400 )
Variables ¶
This section is empty.
Functions ¶
func IsInvalidAttribute ¶
IsInvalidAttribute checks if the err is from an invalid attribute
func NewInvalidAttribute ¶
NewInvalidAttribute returns a new InvalidAttribute error
Types ¶
type Attributes ¶
type Attributes struct { // DeregistrationDelayTimeoutSeconds: deregistration_delay.timeout_seconds - The amount of time, in seconds, // for Elastic Load Balancing to wait before changing the state of a deregistering // target from draining to unused. The range is 0-3600 seconds. The default // value is 300 seconds. DeregistrationDelayTimeoutSeconds int64 // SlowStartDurationSeconds: slow_start.duration_seconds - The time period, in seconds, during which // a newly registered target receives a linearly increasing share of the // traffic to the target group. After this time period ends, the target receives // its full share of traffic. The range is 30-900 seconds (15 minutes). Slow // start mode is disabled by default. SlowStartDurationSeconds int64 // StickinessEnabled: stickiness.enabled - Indicates whether sticky sessions are enabled. // The value is true or false. The default is false. StickinessEnabled bool // StickinessType: stickiness.type - The type of sticky sessions. The possible value is // lb_cookie. StickinessType string // StickinessLbCookieDurationSeconds: stickiness.lb_cookie.duration_seconds - The time period, in seconds, // during which requests from a client should be routed to the same target. // After this time period expires, the load balancer-generated cookie is // considered stale. The range is 1 second to 1 week (604800 seconds). The // default value is 1 day (86400 seconds). StickinessLbCookieDurationSeconds int64 }
Attributes represents the desired state of attributes for a target group.
func NewAttributes ¶
func NewAttributes(attrs []*elbv2.TargetGroupAttribute) (a *Attributes, err error)
type AttributesController ¶
type AttributesController interface { // Reconcile ensures the target group attributes in AWS matches the state specified by the ingress configuration. Reconcile(ctx context.Context, tgArn string, attributes []*elbv2.TargetGroupAttribute) error }
AttributesController provides functionality to manage Attributes
func NewAttributesController ¶
func NewAttributesController(cloud aws.CloudAPI) AttributesController
NewAttributesController constructs a new attributes controller
type Controller ¶
type Controller interface { // Reconcile ensures an targetGroup exists for specified backend of ingress. Reconcile(ctx context.Context, ingress *extensions.Ingress, backend extensions.IngressBackend) (TargetGroup, error) }
Controller manages a single targetGroup for specific ingress & ingressBackend.
func NewController ¶
func NewController(cloud aws.CloudAPI, store store.Storer, nameTagGen NameTagGenerator, tagsController tags.Controller, endpointResolver backend.EndpointResolver) Controller
type GroupController ¶
type GroupController interface { // Reconcile ensures AWS an targetGroup exists for each backend in ingress. Reconcile(ctx context.Context, ingress *extensions.Ingress) (TargetGroupGroup, error) // GC will delete unused targetGroups matched by tag selector GC(ctx context.Context, tgGroup TargetGroupGroup) error // Delete will delete all targetGroups created for ingress Delete(ctx context.Context, ingressKey types.NamespacedName) error }
GroupController manages all target groups for one ingress.
func NewGroupController ¶
func NewGroupController( cloud aws.CloudAPI, store store.Storer, nameTagGen NameTagGenerator, tagsController tags.Controller, endpointResolver backend.EndpointResolver) GroupController
NewGroupController creates an GroupController
type InvalidAttribute ¶
type InvalidAttribute struct {
Name string
}
InvalidAttribute error
func (InvalidAttribute) Error ¶
func (e InvalidAttribute) Error() string
type MockAttributesController ¶
MockAttributesController is an autogenerated mock type for the AttributesController type
func (*MockAttributesController) Reconcile ¶
func (_m *MockAttributesController) Reconcile(ctx context.Context, tgArn string, attributes []*elbv2.TargetGroupAttribute) error
Reconcile provides a mock function with given fields: ctx, tgArn, attributes
type MockController ¶
MockController is an autogenerated mock type for the Controller type
func (*MockController) Reconcile ¶
func (_m *MockController) Reconcile(ctx context.Context, ingress *v1beta1.Ingress, backend v1beta1.IngressBackend) (TargetGroup, error)
Reconcile provides a mock function with given fields: ctx, ingress, backend
type MockNameTagGenerator ¶
MockNameTagGenerator is an autogenerated mock type for the NameTagGenerator type
func (*MockNameTagGenerator) NameTG ¶
func (_m *MockNameTagGenerator) NameTG(namespace string, ingressName string, serviceName string, servicePort string, targetType string, protocol string) string
NameTG provides a mock function with given fields: namespace, ingressName, serviceName, servicePort, targetType, protocol
func (*MockNameTagGenerator) TagTG ¶
func (_m *MockNameTagGenerator) TagTG(serviceName string, servicePort string) map[string]string
TagTG provides a mock function with given fields: serviceName, servicePort
func (*MockNameTagGenerator) TagTGGroup ¶
func (_m *MockNameTagGenerator) TagTGGroup(namespace string, ingressName string) map[string]string
TagTGGroup provides a mock function with given fields: namespace, ingressName
type MockTargetsController ¶
MockTargetsController is an autogenerated mock type for the TargetsController type
type NameGenerator ¶
type NameGenerator interface { // NameTG generates name for targetGroups. // Note: targetType & protocol is included here to ensure we'll create new targetGroups if one of them changed(they cannot be modified) NameTG(namespace string, ingressName string, serviceName, servicePort string, targetType string, protocol string) string }
NameGenerator provides name generation functionality for tg package.
type NameTagGenerator ¶
type NameTagGenerator interface { NameGenerator TagGenerator }
NameTagGenerator is combination of NameGenerator and TagGenerator
type TagGenerator ¶
type TagGenerator interface { // TagTGGroup generates tags for the group of targetGroups created for a single ingress. TagTGGroup(namespace string, ingressName string) map[string]string // TagTG generates tags for a targetGroup inside a TGGroup. // NOTE: The final set of tags been applied to targetGroup is union of tags generated by TagTGs & TagTG. TagTG(serviceName string, servicePort string) map[string]string }
TagGenerator provides tag generation functionality for tg package.
type TargetGroup ¶
type TargetGroup struct { Arn string TargetType string Targets []*elbv2.TargetDescription }
TargetGroup provides information about AWS targetGroup created.
type TargetGroupGroup ¶
type TargetGroupGroup struct { TGByBackend map[extensions.IngressBackend]TargetGroup // contains filtered or unexported fields }
TargetGroupGroup represents an collection of targetGroups for a single ingress in AWS
type Targets ¶
type Targets struct { // TgArn is the ARN of the target group TgArn string // Targets are the targets for the target group Targets []*elbv2.TargetDescription // TargetType is the type of targets, either ip or instance TargetType string // Ingress is the ingress for the targets Ingress *extensions.Ingress // Backend is the ingress backend for the targets Backend *extensions.IngressBackend }
Targets contains the targets for a target group.
func NewTargets ¶
func NewTargets(targetType string, ingress *extensions.Ingress, backend *extensions.IngressBackend) *Targets
NewTargets returns a new Targets pointer
type TargetsController ¶
type TargetsController interface { // Reconcile ensures the target group targets in AWS matches the targets configured in the ingress backend. Reconcile(context.Context, *Targets) error }
TargetsController provides functionality to manage targets
func NewTargetsController ¶
func NewTargetsController(cloud aws.CloudAPI, endpointResolver backend.EndpointResolver) TargetsController
NewTargetsController constructs a new target group targets controller