aws

package
v0.15.14 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2024 License: MIT Imports: 36 Imported by: 2

Documentation

Overview

Package aws provides some higher level Amazon Web Services abstractions for access to common resources.

The exported Adapter can be used to orchestrate and obtain information about Elastic Compute Cloud (EC2), EC2 Metadata, Elastic Load Balancing (ELB v2, also known as Application Load Balancer - ALB), Auto Scaling (ASG) and CloudFormation.

Index

Constants

View Source
const (
	DefaultHealthCheckPath            = "/kube-system/healthz"
	DefaultHealthCheckPort            = 9999
	DefaultTargetPort                 = 9999
	DefaultHealthCheckInterval        = 10 * time.Second
	DefaultHealthCheckTimeout         = 5 * time.Second
	DefaultAlbHealthyThresholdCount   = 5
	DefaultAlbUnhealthyThresholdCount = 2
	DefaultNlbHealthyThresholdCount   = 3
	DefaultCertificateUpdateInterval  = 30 * time.Minute
	DefaultCreationTimeout            = 5 * time.Minute
	DefaultIdleConnectionTimeout      = 1 * time.Minute
	DefaultDeregistrationTimeout      = 5 * time.Minute
	DefaultControllerID               = "kube-ingress-aws-controller"
	// DefaultMaxCertsPerALB defines the maximum number of certificates per
	// ALB. AWS limit is 25 but one space is needed to work around
	// CloudFormation bug:
	// https://github.com/zalando-incubator/kube-ingress-aws-controller/pull/162
	DefaultMaxCertsPerALB = 24
	// DefaultSslPolicy defines the set of protocols and ciphers that will be
	// accepted by an SSL endpoint.
	// See; https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies
	DefaultSslPolicy = "ELBSecurityPolicy-2016-08"
	// DefaultIpAddressType sets IpAddressType to "ipv4", it is either ipv4 or dualstack
	DefaultIpAddressType = "ipv4"
	// DefaultAlbS3LogsBucket is a blank string, and must be set if enabled
	DefaultAlbS3LogsBucket = ""
	// DefaultAlbS3LogsPrefix is a blank string, and optionally set if desired
	DefaultAlbS3LogsPrefix = ""

	DefaultCustomFilter = ""
	// DefaultNLBCrossZone specifies the default configuration for cross
	// zone load balancing: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#load-balancer-attributes
	DefaultNLBCrossZone   = false
	DefaultNLBHTTPEnabled = false

	LoadBalancerTypeApplication = "application"
	LoadBalancerTypeNetwork     = "network"
	IPAddressTypeIPV4           = "ipv4"
	IPAddressTypeDualstack      = "dualstack"

	TargetAccessModeAWSCNI   = "AWSCNI"
	TargetAccessModeHostPort = "HostPort"
	TargetAccessModeLegacy   = "Legacy"
)

Variables

View Source
var (
	// ErrLoadBalancerStackNotFound is used to signal that a given load balancer CF stack was not found.
	ErrLoadBalancerStackNotFound = errors.New("load balancer stack not found")
	// ErrLoadBalancerStackNotReady is used to signal that a given load balancer CF stack is not ready to be used.
	ErrLoadBalancerStackNotReady = errors.New("existing load balancer stack not ready")
	// ErrMissingNameTag is used to signal that the Name tag on a given resource is missing.
	ErrMissingNameTag = errors.New("Name tag not found")
	// ErrMissingTag is used to signal that a tag on a given resource is missing.
	ErrMissingTag = errors.New("missing tag")
	// ErrNoSubnets is used to signal that no subnets were found in the current VPC
	ErrNoSubnets = errors.New("unable to find VPC subnets")
	// ErrMissingAutoScalingGroupTag is used to signal that the auto scaling group tag is not present in the list of tags.
	ErrMissingAutoScalingGroupTag = errors.New(`instance is missing the "` + autoScalingGroupNameTag + `" tag`)
	// ErrNoRunningInstances is used to signal that no instances were found in the running state
	ErrNoRunningInstances = errors.New("no reservations or instances in the running state")
	// SSLPolicies is a map of valid ALB SSL Policies
	// https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies
	SSLPolicies = map[string]bool{
		"ELBSecurityPolicy-2016-08":                true,
		"ELBSecurityPolicy-FS-2018-06":             true,
		"ELBSecurityPolicy-TLS-1-2-2017-01":        true,
		"ELBSecurityPolicy-TLS-1-2-Ext-2018-06":    true,
		"ELBSecurityPolicy-TLS-1-1-2017-01":        true,
		"ELBSecurityPolicy-2015-05":                true,
		"ELBSecurityPolicy-TLS-1-0-2015-04":        true,
		"ELBSecurityPolicy-FS-1-1-2019-08":         true,
		"ELBSecurityPolicy-FS-1-2-2019-08":         true,
		"ELBSecurityPolicy-FS-1-2-Res-2019-08":     true,
		"ELBSecurityPolicy-FS-1-2-Res-2020-10":     true,
		"ELBSecurityPolicy-TLS13-1-2-2021-06":      true,
		"ELBSecurityPolicy-TLS13-1-2-Res-2021-06":  true,
		"ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06": true,
		"ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06": true,
		"ELBSecurityPolicy-TLS13-1-1-2021-06":      true,
		"ELBSecurityPolicy-TLS13-1-0-2021-06":      true,
		"ELBSecurityPolicy-TLS13-1-3-2021-06":      true,
	}
	SSLPoliciesList = []string{
		"ELBSecurityPolicy-2016-08",
		"ELBSecurityPolicy-FS-2018-06",
		"ELBSecurityPolicy-TLS-1-2-2017-01",
		"ELBSecurityPolicy-TLS-1-2-Ext-2018-06",
		"ELBSecurityPolicy-TLS-1-1-2017-01",
		"ELBSecurityPolicy-2015-05",
		"ELBSecurityPolicy-TLS-1-0-2015-04",
		"ELBSecurityPolicy-FS-1-1-2019-08",
		"ELBSecurityPolicy-FS-1-2-2019-08",
		"ELBSecurityPolicy-FS-1-2-Res-2019-08",
		"ELBSecurityPolicy-FS-1-2-Res-2020-10",
		"ELBSecurityPolicy-TLS13-1-2-2021-06",
		"ELBSecurityPolicy-TLS13-1-2-Res-2021-06",
		"ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06",
		"ELBSecurityPolicy-TLS13-1-2-Ext2-2021-06",
		"ELBSecurityPolicy-TLS13-1-1-2021-06",
		"ELBSecurityPolicy-TLS13-1-0-2021-06",
		"ELBSecurityPolicy-TLS13-1-3-2021-06",
	}
)
View Source
var (
	// ErrNoCertificates is used to signal that no certificates were found in the PEM data
	ErrNoCertificates = errors.New("no certificates found in PEM data")

	// ErrTooManyCertificates is used to signal that multiple certificates were found in the PEM data where we expect only one
	ErrTooManyCertificates = errors.New("too many certificates found in PEM data")
)

Functions

func ParseCertificate added in v0.8.0

func ParseCertificate(pemCertificate string) (*x509.Certificate, error)

ParseCertificate parses exactly one X509 PEM-encoded certificate from a string

func ParseCertificates added in v0.8.0

func ParseCertificates(pemCertificates string) ([]*x509.Certificate, error)

ParseCertificates parses X509 PEM-encoded certificates from a string

Types

type Adapter

type Adapter struct {
	TargetedAutoScalingGroups map[string]*autoScalingGroupDetails
	OwnedAutoScalingGroups    map[string]*autoScalingGroupDetails

	TargetCNI *TargetCNIconfig
	// contains filtered or unexported fields
}

An Adapter can be used to orchestrate and obtain information from Amazon Web Services.

func NewAdapter

func NewAdapter(clusterID, newControllerID, vpcID string, debug, disableInstrumentedHttpClient bool) (adapter *Adapter, err error)

NewAdapter returns a new Adapter that can be used to orchestrate and obtain information from Amazon Web Services. Before returning there is a discovery process for VPC and EC2 details. It tries to find the Auto Scaling Group and Security Group that should be used for newly created Load Balancers. If any of those critical steps fail an appropriate error is returned.

func (Adapter) CachedInstances added in v0.6.0

func (a Adapter) CachedInstances() int

Get number of instances in cache.

func (*Adapter) ClusterID

func (a *Adapter) ClusterID() string

ClusterID returns the ClusterID tag that all resources from the same Kubernetes cluster share. It's taken from the current ec2 instance.

func (*Adapter) CreateStack added in v0.3.0

func (a *Adapter) CreateStack(certificateARNs []string, scheme, securityGroup, owner, sslPolicy, ipAddressType, wafWebACLID string, cwAlarms CloudWatchAlarmList, loadBalancerType string, http2 bool) (string, error)

CreateStack creates a new Application Load Balancer using CloudFormation. The stack name is derived from the Cluster ID and a has of the certificate ARNs (when available). All the required resources (listeners and target group) are created in a transactional fashion. Failure to create the stack causes it to be deleted automatically.

func (*Adapter) DeleteStack added in v0.3.0

func (a *Adapter) DeleteStack(stack *Stack) error

DeleteStack deletes the CloudFormation stack with the given name

func (Adapter) FiltersString added in v0.6.0

func (a Adapter) FiltersString() string

Get EC2 filters that are used to filter instances that are loaded using DescribeInstances.

func (*Adapter) FindLBSubnets added in v0.5.0

func (a *Adapter) FindLBSubnets(scheme string) []string

FindLBSubnets finds subnets for an ALB based on the scheme.

It follows the same logic for finding subnets as the kube-controller-manager when finding subnets for ELBs used for services of type LoadBalancer. https://github.com/kubernetes/kubernetes/blob/65efeee64f772e0f38037e91a677138a335a7570/pkg/cloudprovider/providers/aws/aws.go#L2949-L3027

func (*Adapter) FindManagedStacks added in v0.3.0

func (a *Adapter) FindManagedStacks() ([]*Stack, error)

FindManagedStacks returns all CloudFormation stacks containing the controller management tags that match the current cluster and are ready to be used. The stack status is used to filter.

func (*Adapter) GetStack added in v0.3.0

func (a *Adapter) GetStack(stackID string) (*Stack, error)

GetStack returns the CloudFormation stack details with the name or ID from the argument

func (*Adapter) InstanceID

func (a *Adapter) InstanceID() string

InstanceID returns the instance ID the current node is running on.

func (*Adapter) NewACMCertificateProvider added in v0.3.0

func (a *Adapter) NewACMCertificateProvider(certFilterTag string) certs.CertificatesProvider

func (*Adapter) NewIAMCertificateProvider added in v0.3.0

func (a *Adapter) NewIAMCertificateProvider(certFilterTag string) certs.CertificatesProvider

func (Adapter) ObsoleteSingleInstances added in v0.6.0

func (a Adapter) ObsoleteSingleInstances() []string

ObsoleteSingleInstances returns list of IDs of instances that should be deregistered from all Target Groups.

func (Adapter) RunningSingleInstances added in v0.6.0

func (a Adapter) RunningSingleInstances() []string

RunningSingleInstances returns list of IDs of running instances that do not belong to any Auto Scaling Group and should be managed manually.

func (*Adapter) S3Bucket added in v0.8.1

func (a *Adapter) S3Bucket() string

S3Bucket returns the S3 Bucket to be logged to

func (*Adapter) S3Prefix added in v0.8.1

func (a *Adapter) S3Prefix() string

S3Prefix returns the S3 Prefix to be logged to

func (*Adapter) SecurityGroupID

func (a *Adapter) SecurityGroupID() string

SecurityGroupID returns the security group ID that should be used to create Load Balancers.

func (*Adapter) SetTargetsOnCNITargetGroups added in v0.12.17

func (a *Adapter) SetTargetsOnCNITargetGroups(endpoints, cniTargetGroupARNs []string) error

SetTargetsOnCNITargetGroups implements desired state for CNI target groups by polling the current list of targets thus creating a diff of what needs to be added and removed.

func (*Adapter) SingleInstances added in v0.6.0

func (a *Adapter) SingleInstances() []string

SingleInstances returns list of IDs of instances that do not belong to any Auto Scaling Group and should be managed manually.

func (*Adapter) UpdateAutoScalingGroupsAndInstances added in v0.6.0

func (a *Adapter) UpdateAutoScalingGroupsAndInstances() error

UpdateAutoScalingGroupsAndInstances updates list of known ASGs and EC2 instances.

func (*Adapter) UpdateManifest added in v0.14.15

func (a *Adapter) UpdateManifest(clusterID, vpcID string) (*Adapter, error)

UpdateManifest generates a manifest again based on cluster and VPC information. This method is useful when using custom AWS clients.

func (*Adapter) UpdateStack added in v0.3.8

func (a *Adapter) UpdateStack(stackName string, certificateARNs map[string]time.Time, scheme, securityGroup, owner, sslPolicy, ipAddressType, wafWebACLID string, cwAlarms CloudWatchAlarmList, loadBalancerType string, http2 bool) (string, error)

func (*Adapter) UpdateTargetGroupsAndAutoScalingGroups added in v0.6.0

func (a *Adapter) UpdateTargetGroupsAndAutoScalingGroups(stacks []*Stack, problems *problem.List)

UpdateTargetGroupsAndAutoScalingGroups updates Auto Scaling Groups config to have relevant Target Groups and registers/deregisters single instances (that do not belong to ASG) in relevant Target Groups.

func (*Adapter) VpcID

func (a *Adapter) VpcID() string

VpcID returns the VPC ID the current node belongs to.

func (*Adapter) WithALBHTTPTargetPort added in v0.12.2

func (a *Adapter) WithALBHTTPTargetPort(port uint) *Adapter

WithALBHTTPTargetPort configures the ALB HTTP target port

func (*Adapter) WithAlbHealthyThresholdCount added in v0.12.12

func (a *Adapter) WithAlbHealthyThresholdCount(count uint) *Adapter

WithAlbHealthyThresholdCount returns the receiver adapter after changing the healthy threshold count that will be used by the resources created by the adapter

func (*Adapter) WithAlbLogsS3Bucket added in v0.8.1

func (a *Adapter) WithAlbLogsS3Bucket(bucket string) *Adapter

WithAlbLogsS3Bucket returns the receiver adapter after changing the S3 bucket for logging

func (*Adapter) WithAlbLogsS3Prefix added in v0.8.1

func (a *Adapter) WithAlbLogsS3Prefix(prefix string) *Adapter

WithAlbLogsS3Bucket returns the receiver adapter after changing the S3 prefix within the bucket for logging

func (*Adapter) WithAlbUnhealthyThresholdCount added in v0.12.12

func (a *Adapter) WithAlbUnhealthyThresholdCount(count uint) *Adapter

WithAlbUnhealthyThresholdCount returns the receiver adapter after changing the unhealthy threshold count that will be used by the resources created by the adapter

func (*Adapter) WithControllerID added in v0.6.11

func (a *Adapter) WithControllerID(id string) *Adapter

WithControllerID returns the receiver adapter after changing the CloudFormation template that should be used to create Load Balancer stacks

func (*Adapter) WithCreationTimeout added in v0.3.0

func (a *Adapter) WithCreationTimeout(interval time.Duration) *Adapter

WithCreationTimeout returns the receiver adapter after changing the creation timeout that is used as the max wait time for the creation of all the required AWS resources for a given Ingress

func (*Adapter) WithCustomAutoScalingClient added in v0.14.15

func (a *Adapter) WithCustomAutoScalingClient(c autoscalingiface.AutoScalingAPI) *Adapter

WithCustomAutoScalingClient returns an Adapter that will use the provided Auto scaling client, instead of the Auto scaling client provided by AWS.

func (*Adapter) WithCustomCloudFormationClient added in v0.14.15

func (a *Adapter) WithCustomCloudFormationClient(c cloudformationiface.CloudFormationAPI) *Adapter

WithCustomCloudFormationClient returns an Adapter that will use the provided CloudFormation client, instead of the CloudFormation client provided by AWS.

func (*Adapter) WithCustomEc2Client added in v0.14.15

func (a *Adapter) WithCustomEc2Client(c ec2iface.EC2API) *Adapter

WithCustomEc2Client returns an Adapter that will use the provided EC2 client, instead of the EC2 client provided by AWS.

func (*Adapter) WithCustomElbv2Client added in v0.14.15

func (a *Adapter) WithCustomElbv2Client(c elbv2iface.ELBV2API) *Adapter

WithCustomElbv2Client returns an Adapter that will use the provided ELBv2 client, instead of the ELBv2 client provided by AWS.

func (*Adapter) WithCustomFilter added in v0.9.0

func (a *Adapter) WithCustomFilter(customFilter string) *Adapter

WithCustomFilter returns the receiver adapter after setting a custom filter expression

func (*Adapter) WithDenyInternalDomains added in v0.11.18

func (a *Adapter) WithDenyInternalDomains(deny bool) *Adapter

WithDenyInternalDomains returns the receiver adapter after setting the denyInternalDomains config.

func (*Adapter) WithDeregistrationDelayTimeout added in v0.11.7

func (a *Adapter) WithDeregistrationDelayTimeout(interval time.Duration) *Adapter

WithDeregistrationDelayTimeout returns the receiver adapter after changing the deregistration delay timeout for the managed target groups. https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#deregistration-delay

func (*Adapter) WithHTTPRedirectToHTTPS added in v0.9.0

func (a *Adapter) WithHTTPRedirectToHTTPS(httpRedirectToHTTPS bool) *Adapter

WithHTTPRedirectToHTTPS returns the receiver adapter after changing the flag to effect HTTP->HTTPS redirection

func (*Adapter) WithHealthCheckInterval added in v0.3.0

func (a *Adapter) WithHealthCheckInterval(interval time.Duration) *Adapter

WithHealthCheckInterval returns the receiver adapter after changing the health check interval that will be used by the resources created by the adapter

func (*Adapter) WithHealthCheckPath added in v0.3.0

func (a *Adapter) WithHealthCheckPath(path string) *Adapter

WithHealthCheckPath returns the receiver adapter after changing the health check path that will be used by the resources created by the adapter.

func (*Adapter) WithHealthCheckPort added in v0.3.0

func (a *Adapter) WithHealthCheckPort(port uint) *Adapter

WithHealthCheckPort returns the receiver adapter after changing the health check port that will be used by the resources created by the adapter

func (*Adapter) WithHealthCheckTimeout added in v0.11.15

func (a *Adapter) WithHealthCheckTimeout(timeout time.Duration) *Adapter

WithHealthCheckTimeout returns the receiver adapter after changing the health check timeout that will be used by the resources created by the adapter

func (*Adapter) WithIdleConnectionTimeout added in v0.6.9

func (a *Adapter) WithIdleConnectionTimeout(interval time.Duration) *Adapter

WithIdleConnectionTimeout returns the receiver adapter after changing the idle connection timeout that is used to change the corresponding LoadBalancerAttributes in the CloudFormation stack that creates the LoadBalancers. https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#connection-idle-timeout

func (*Adapter) WithInternalDomains added in v0.11.18

func (a *Adapter) WithInternalDomains(domains []string) *Adapter

WithInternalDomains returns the receiver adapter after changing the internal domains that will be used by the resources created by the adapter.

func (*Adapter) WithInternalDomainsDenyResponse added in v0.11.18

func (a *Adapter) WithInternalDomainsDenyResponse(body string) *Adapter

WithInternalDomainsDenyResponse returns the receiver adapter after changing the Body of the response that will be returned by the resources created by the adapter when denyInternalDomains is set to true.

func (*Adapter) WithInternalDomainsDenyResponseContenType added in v0.11.18

func (a *Adapter) WithInternalDomainsDenyResponseContenType(contentType string) *Adapter

WithInternalDomainsDenyResponseContenType returns the receiver adapter after changing the content-type of the response that will be returned by the resources created by the adapter when denyInternalDomains is set to true.

func (*Adapter) WithInternalDomainsDenyResponseStatusCode added in v0.11.18

func (a *Adapter) WithInternalDomainsDenyResponseStatusCode(code int) *Adapter

WithInternalDomainsDenyResponseStatusCode returns the receiver adapter after changing the status code of the response that will be returned by the resources created by the adapter when denyInternalDomains is set to true.

func (*Adapter) WithIpAddressType added in v0.7.4

func (a *Adapter) WithIpAddressType(ipAddressType string) *Adapter

WithIpAddressType returns the receiver with ipv4 or dualstack configuration, defaults to ipv4.

func (*Adapter) WithNLBCrossZone added in v0.9.0

func (a *Adapter) WithNLBCrossZone(nlbCrossZone bool) *Adapter

WithNLBCrossZone returns the receiver adapter after setting the nlbCrossZone config.

func (*Adapter) WithNLBHTTPEnabled added in v0.9.3

func (a *Adapter) WithNLBHTTPEnabled(nlbHTTPEnabled bool) *Adapter

WithNLBHTTPEnabled returns the receiver adapter after setting the nlbHTTPEnabled config.

func (*Adapter) WithNLBHTTPTargetPort added in v0.12.2

func (a *Adapter) WithNLBHTTPTargetPort(port uint) *Adapter

WithNLBHTTPTargetPort configures the NLB HTTP target port

func (*Adapter) WithNlbHealthyThresholdCount added in v0.12.12

func (a *Adapter) WithNlbHealthyThresholdCount(count uint) *Adapter

WithNlbHealthyThresholdCount returns the receiver adapter after changing the healthy threshold count that will be used by the resources created by the adapter

func (*Adapter) WithSslPolicy added in v0.7.4

func (a *Adapter) WithSslPolicy(policy string) *Adapter

WithSslPolicy returns the receiver adapter after changing the CloudFormation template that should be used to create Load Balancer stacks

func (*Adapter) WithStackTags added in v0.11.5

func (a *Adapter) WithStackTags(tags map[string]string) *Adapter

WithStackTags returns the receiver adapter after setting the stackTags value.

func (*Adapter) WithStackTerminationProtection added in v0.6.4

func (a *Adapter) WithStackTerminationProtection(terminationProtection bool) *Adapter

WithStackTerminationProtection returns the receiver adapter after changing the stack termination protection value.

func (*Adapter) WithTargetAccessMode added in v0.12.17

func (a *Adapter) WithTargetAccessMode(mode string) *Adapter

WithTargetAccessMode returns the receiver adapter after defining the target access mode

func (*Adapter) WithTargetHTTPS added in v0.11.23

func (a *Adapter) WithTargetHTTPS(https bool) *Adapter

WithTargetHTTPS returns the receiver adapter after specifying the target port will use HTTPS

func (*Adapter) WithTargetPort added in v0.7.1

func (a *Adapter) WithTargetPort(port uint) *Adapter

WithTargetPort returns the receiver adapter after changing the target port that will be used by the resources created by the adapter

type CloudWatchAlarmList added in v0.8.13

type CloudWatchAlarmList []cloudformation.CloudWatchAlarm

CloudWatchAlarmList represents a list of CloudWatch Alarms directly usable in Cloudformation Stacks.

func NewCloudWatchAlarmListFromYAML added in v0.8.13

func NewCloudWatchAlarmListFromYAML(b []byte) (CloudWatchAlarmList, error)

NewCloudWatchAlarmListFromYAML parses a raw slice of yaml bytes into a new CloudWatchAlarmList.

func (CloudWatchAlarmList) Hash added in v0.8.13

func (c CloudWatchAlarmList) Hash() string

Hash computes a hash of the CloudWatchAlarmList which can be used to detect changes between two versions. The hash string will be empty if c is empty or there was an error while encoding.

type Stack added in v0.3.0

type Stack struct {
	Name string

	DNSName           string
	Scheme            string
	SecurityGroup     string
	SSLPolicy         string
	IpAddressType     string
	LoadBalancerType  string
	HTTP2             bool
	OwnerIngress      string
	CWAlarmConfigHash string
	TargetGroupARNs   []string
	WAFWebACLID       string
	CertificateARNs   map[string]time.Time
	// contains filtered or unexported fields
}

Stack is a simple wrapper around a CloudFormation Stack.

func (*Stack) Err added in v0.12.35

func (s *Stack) Err() error

Err returns nil or an error describing the stack state.

func (*Stack) IsComplete added in v0.6.0

func (s *Stack) IsComplete() bool

IsComplete returns true if the stack status is a complete state.

func (*Stack) ShouldDelete added in v0.3.6

func (s *Stack) ShouldDelete() bool

ShouldDelete returns true if stack is to be deleted because there are no valid certificates attached anymore.

type TargetCNIconfig added in v0.12.17

type TargetCNIconfig struct {
	Enabled       bool
	TargetGroupCh chan []string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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