mirror of https://github.com/kubernetes/kops.git
aws: introduce maximum instance lifetime in cluster
The maximum instance lifetime is an AWS only feature and specifies the maximum amount of time (in seconds) that an instance can be in service before it is terminated and replaced. A common use case might be a requirement to replace your instances on a schedule because of internal security policies or external compliance controls.
This commit is contained in:
parent
34490d07cf
commit
73b6ed4150
|
|
@ -74,6 +74,7 @@ func (m *MockAutoscaling) CreateAutoScalingGroup(input *autoscaling.CreateAutoSc
|
|||
TargetGroupARNs: input.TargetGroupARNs,
|
||||
TerminationPolicies: input.TerminationPolicies,
|
||||
VPCZoneIdentifier: input.VPCZoneIdentifier,
|
||||
MaxInstanceLifetime: input.MaxInstanceLifetime,
|
||||
}
|
||||
|
||||
if input.LaunchTemplate != nil {
|
||||
|
|
|
|||
|
|
@ -320,3 +320,19 @@ spec:
|
|||
httpPutResponseHopLimit: 1
|
||||
httpTokens: required
|
||||
```
|
||||
|
||||
## maxInstanceLifetime (AWS Only)
|
||||
|
||||
{{ kops_feature_table(kops_added_default='1.24') }}
|
||||
|
||||
The maximum instance lifetime specifies the maximum amount of time (in go duration [format](https://pkg.go.dev/time#ParseDuration)) that an instance can be in service before it is terminated and replaced.
|
||||
A common use case might be a requirement to replace your instances on a schedule because of internal security policies or external compliance controls.
|
||||
In other words, this feature helps you to put a bit of ephemerality in your cluster.
|
||||
You must specify a value of at least 24h (86,400 seconds). To clear a previously set value, specify a new value of 0.
|
||||
|
||||
The following configuration enables a maximum instance lifetime to two days.
|
||||
|
||||
```yaml
|
||||
spec:
|
||||
maxInstanceLifetime: "48h"
|
||||
```
|
||||
|
|
|
|||
|
|
@ -754,6 +754,11 @@ spec:
|
|||
manager:
|
||||
description: Manager determines what is managing the node lifecycle
|
||||
type: string
|
||||
maxInstanceLifetime:
|
||||
description: MaxInstanceLifetime to the maximum amount of time, in
|
||||
seconds, that an instance can be in service. Value expected must
|
||||
be in form of duration ("ms", "s", "m", "h")
|
||||
type: string
|
||||
maxPrice:
|
||||
description: MaxPrice indicates this is a spot-pricing group, with
|
||||
the specified value as our max-price bid
|
||||
|
|
|
|||
|
|
@ -196,6 +196,9 @@ type InstanceGroupSpec struct {
|
|||
Packages []string `json:"packages,omitempty"`
|
||||
// GuestAccelerators configures additional accelerators
|
||||
GuestAccelerators []AcceleratorConfig `json:"guestAccelerators,omitempty"`
|
||||
// MaxInstanceLifetime to the maximum amount of time, in seconds, that an instance can be in service.
|
||||
// Value expected must be in form of duration ("ms", "s", "m", "h")
|
||||
MaxInstanceLifetime *metav1.Duration `json:"maxInstanceLifetime,omitempty"`
|
||||
}
|
||||
|
||||
const (
|
||||
|
|
|
|||
|
|
@ -162,6 +162,9 @@ type InstanceGroupSpec struct {
|
|||
Packages []string `json:"packages,omitempty"`
|
||||
// GuestAccelerators configures additional accelerators
|
||||
GuestAccelerators []AcceleratorConfig `json:"guestAccelerators,omitempty"`
|
||||
// MaxInstanceLifetime to the maximum amount of time, in seconds, that an instance can be in service.
|
||||
// Value expected must be in form of duration ("ms", "s", "m", "h")
|
||||
MaxInstanceLifetime *metav1.Duration `json:"maxInstanceLifetime,omitempty"`
|
||||
}
|
||||
|
||||
// InstanceMetadataOptions defines the EC2 instance metadata service options (AWS Only)
|
||||
|
|
|
|||
|
|
@ -4471,6 +4471,7 @@ func autoConvert_v1alpha2_InstanceGroupSpec_To_kops_InstanceGroupSpec(in *Instan
|
|||
} else {
|
||||
out.GuestAccelerators = nil
|
||||
}
|
||||
out.MaxInstanceLifetime = in.MaxInstanceLifetime
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -4654,6 +4655,7 @@ func autoConvert_kops_InstanceGroupSpec_To_v1alpha2_InstanceGroupSpec(in *kops.I
|
|||
} else {
|
||||
out.GuestAccelerators = nil
|
||||
}
|
||||
out.MaxInstanceLifetime = in.MaxInstanceLifetime
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2534,6 +2534,11 @@ func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec) {
|
|||
*out = make([]AcceleratorConfig, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.MaxInstanceLifetime != nil {
|
||||
in, out := &in.MaxInstanceLifetime, &out.MaxInstanceLifetime
|
||||
*out = new(v1.Duration)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -159,6 +159,9 @@ type InstanceGroupSpec struct {
|
|||
Packages []string `json:"packages,omitempty"`
|
||||
// GuestAccelerators configures additional accelerators
|
||||
GuestAccelerators []AcceleratorConfig `json:"guestAccelerators,omitempty"`
|
||||
// MaxInstanceLifetime to the maximum amount of time, in seconds, that an instance can be in service.
|
||||
// Value expected must be in form of duration ("ms", "s", "m", "h")
|
||||
MaxInstanceLifetime *metav1.Duration `json:"maxInstanceLifetime,omitempty"`
|
||||
}
|
||||
|
||||
// InstanceMetadataOptions defines the EC2 instance metadata service options (AWS Only)
|
||||
|
|
|
|||
|
|
@ -4610,6 +4610,7 @@ func autoConvert_v1alpha3_InstanceGroupSpec_To_kops_InstanceGroupSpec(in *Instan
|
|||
} else {
|
||||
out.GuestAccelerators = nil
|
||||
}
|
||||
out.MaxInstanceLifetime = in.MaxInstanceLifetime
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -4793,6 +4794,7 @@ func autoConvert_kops_InstanceGroupSpec_To_v1alpha3_InstanceGroupSpec(in *kops.I
|
|||
} else {
|
||||
out.GuestAccelerators = nil
|
||||
}
|
||||
out.MaxInstanceLifetime = in.MaxInstanceLifetime
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2540,6 +2540,11 @@ func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec) {
|
|||
*out = make([]AcceleratorConfig, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.MaxInstanceLifetime != nil {
|
||||
in, out := &in.MaxInstanceLifetime, &out.MaxInstanceLifetime
|
||||
*out = new(v1.Duration)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import (
|
|||
|
||||
"github.com/aws/aws-sdk-go/aws/arn"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
|
|
@ -100,6 +101,21 @@ func awsValidateInstanceGroup(ig *kops.InstanceGroup, cloud awsup.AWSCloud) fiel
|
|||
allErrs = append(allErrs, awsValidateCPUCredits(field.NewPath("spec"), &ig.Spec, cloud)...)
|
||||
}
|
||||
|
||||
if ig.Spec.MaxInstanceLifetime != nil {
|
||||
allErrs = append(allErrs, awsValidateMaximumInstanceLifetime(field.NewPath(ig.GetName(), "spec"), ig.Spec.MaxInstanceLifetime)...)
|
||||
}
|
||||
|
||||
return allErrs
|
||||
}
|
||||
|
||||
func awsValidateMaximumInstanceLifetime(fieldPath *field.Path, maxInstanceLifetime *metav1.Duration) field.ErrorList {
|
||||
allErrs := field.ErrorList{}
|
||||
const minMaxInstanceLifetime = 86400
|
||||
lifetimeSec := int64(maxInstanceLifetime.Seconds())
|
||||
if lifetimeSec != 0 && lifetimeSec < minMaxInstanceLifetime {
|
||||
allErrs = append(allErrs, field.Invalid(fieldPath.Child("maxInstanceLifetime"), maxInstanceLifetime, fmt.Sprintf("max instance lifetime must be greater than %d or equal to 0", int64(minMaxInstanceLifetime))))
|
||||
}
|
||||
|
||||
return allErrs
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ package validation
|
|||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
|
|
@ -26,6 +27,7 @@ import (
|
|||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup/awsup"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kops/pkg/apis/kops"
|
||||
)
|
||||
|
|
@ -204,6 +206,26 @@ func TestValidateInstanceGroupSpec(t *testing.T) {
|
|||
},
|
||||
ExpectedErrors: []string{},
|
||||
},
|
||||
{
|
||||
Input: kops.InstanceGroupSpec{
|
||||
MaxInstanceLifetime: &metav1.Duration{Duration: time.Duration(100 * float64(time.Second))},
|
||||
},
|
||||
ExpectedErrors: []string{
|
||||
"Invalid value::test-nodes.spec.maxInstanceLifetime",
|
||||
},
|
||||
},
|
||||
{
|
||||
Input: kops.InstanceGroupSpec{
|
||||
MaxInstanceLifetime: &metav1.Duration{Duration: time.Duration(86400 * float64(time.Second))},
|
||||
},
|
||||
ExpectedErrors: []string{},
|
||||
},
|
||||
{
|
||||
Input: kops.InstanceGroupSpec{
|
||||
MaxInstanceLifetime: &metav1.Duration{Duration: time.Duration(0 * float64(time.Second))},
|
||||
},
|
||||
ExpectedErrors: []string{},
|
||||
},
|
||||
}
|
||||
cloud := awsup.BuildMockAWSCloud("us-east-1", "abc")
|
||||
mockEC2 := &mockec2.MockEC2{}
|
||||
|
|
|
|||
|
|
@ -2703,6 +2703,11 @@ func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec) {
|
|||
*out = make([]AcceleratorConfig, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.MaxInstanceLifetime != nil {
|
||||
in, out := &in.MaxInstanceLifetime, &out.MaxInstanceLifetime
|
||||
*out = new(v1.Duration)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -547,5 +547,11 @@ func (b *AutoscalingGroupModelBuilder) buildAutoScalingGroupTask(c *fi.ModelBuil
|
|||
}
|
||||
}
|
||||
|
||||
if ig.Spec.MaxInstanceLifetime != nil {
|
||||
lifetimeSec := int64(ig.Spec.MaxInstanceLifetime.Seconds())
|
||||
t.MaxInstanceLifetime = fi.Int64(lifetimeSec)
|
||||
} else {
|
||||
t.MaxInstanceLifetime = fi.Int64(0)
|
||||
}
|
||||
return t, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -111,6 +111,7 @@ resource "aws_autoscaling_group" "apiserver-apiservers-minimal-example-com" {
|
|||
id = aws_launch_template.apiserver-apiservers-minimal-example-com.id
|
||||
version = aws_launch_template.apiserver-apiservers-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
@ -160,6 +161,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -229,6 +231,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -121,6 +121,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -185,6 +186,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ resource "aws_autoscaling_group" "bastion-bastionuserdata-example-com" {
|
|||
version = aws_launch_template.bastion-bastionuserdata-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-bastionuserdata-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -172,6 +173,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-bastionuserdata-exam
|
|||
version = aws_launch_template.master-us-test-1a-masters-bastionuserdata-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-bastionuserdata-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -236,6 +238,7 @@ resource "aws_autoscaling_group" "nodes-bastionuserdata-example-com" {
|
|||
id = aws_launch_template.nodes-bastionuserdata-example-com.id
|
||||
version = aws_launch_template.nodes-bastionuserdata-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -109,6 +109,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-complex-example-com"
|
|||
version = aws_launch_template.master-us-test-1a-masters-complex-example-com.latest_version
|
||||
}
|
||||
load_balancers = ["my-external-lb-1"]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -185,6 +186,7 @@ resource "aws_autoscaling_group" "nodes-complex-example-com" {
|
|||
version = aws_launch_template.nodes-complex-example-com.latest_version
|
||||
}
|
||||
load_balancers = ["my-external-lb-1"]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-compress-example-com
|
|||
id = aws_launch_template.master-us-test-1a-masters-compress-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-compress-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -155,6 +156,7 @@ resource "aws_autoscaling_group" "nodes-compress-example-com" {
|
|||
id = aws_launch_template.nodes-compress-example-com.id
|
||||
version = aws_launch_template.nodes-compress-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -121,6 +121,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-123-example-com" {
|
|||
id = aws_launch_template.master-us-test-1a-masters-123-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-123-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -185,6 +186,7 @@ resource "aws_autoscaling_group" "nodes-123-example-com" {
|
|||
id = aws_launch_template.nodes-123-example-com.id
|
||||
version = aws_launch_template.nodes-123-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-existing-iam-example
|
|||
id = aws_launch_template.master-us-test-1a-masters-existing-iam-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-existing-iam-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -145,6 +146,7 @@ resource "aws_autoscaling_group" "master-us-test-1b-masters-existing-iam-example
|
|||
id = aws_launch_template.master-us-test-1b-masters-existing-iam-example-com.id
|
||||
version = aws_launch_template.master-us-test-1b-masters-existing-iam-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -209,6 +211,7 @@ resource "aws_autoscaling_group" "master-us-test-1c-masters-existing-iam-example
|
|||
id = aws_launch_template.master-us-test-1c-masters-existing-iam-example-com.id
|
||||
version = aws_launch_template.master-us-test-1c-masters-existing-iam-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -273,6 +276,7 @@ resource "aws_autoscaling_group" "nodes-existing-iam-example-com" {
|
|||
id = aws_launch_template.nodes-existing-iam-example-com.id
|
||||
version = aws_launch_template.nodes-existing-iam-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -102,6 +102,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-existingsg-example-c
|
|||
version = aws_launch_template.master-us-test-1a-masters-existingsg-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-existingsg-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -167,6 +168,7 @@ resource "aws_autoscaling_group" "master-us-test-1b-masters-existingsg-example-c
|
|||
version = aws_launch_template.master-us-test-1b-masters-existingsg-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-existingsg-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -232,6 +234,7 @@ resource "aws_autoscaling_group" "master-us-test-1c-masters-existingsg-example-c
|
|||
version = aws_launch_template.master-us-test-1c-masters-existingsg-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-existingsg-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -296,6 +299,7 @@ resource "aws_autoscaling_group" "nodes-existingsg-example-com" {
|
|||
id = aws_launch_template.nodes-existingsg-example-com.id
|
||||
version = aws_launch_template.nodes-existingsg-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -155,6 +156,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -111,6 +111,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -175,6 +176,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-externallb-example-c
|
|||
version = aws_launch_template.master-us-test-1a-masters-externallb-example-com.latest_version
|
||||
}
|
||||
load_balancers = ["my-external-elb-1", "my-external-elb-2", "my-external-elb-3"]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -158,6 +159,7 @@ resource "aws_autoscaling_group" "nodes-externallb-example-com" {
|
|||
version = aws_launch_template.nodes-externallb-example-com.latest_version
|
||||
}
|
||||
load_balancers = ["my-external-elb-1"]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-externalpolicies-exa
|
|||
version = aws_launch_template.master-us-test-1a-masters-externalpolicies-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-externalpolicies-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -166,6 +167,7 @@ resource "aws_autoscaling_group" "nodes-externalpolicies-example-com" {
|
|||
id = aws_launch_template.nodes-externalpolicies-example-com.id
|
||||
version = aws_launch_template.nodes-externalpolicies-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-ha-example-com" {
|
|||
id = aws_launch_template.master-us-test-1a-masters-ha-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-ha-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -165,6 +166,7 @@ resource "aws_autoscaling_group" "master-us-test-1b-masters-ha-example-com" {
|
|||
id = aws_launch_template.master-us-test-1b-masters-ha-example-com.id
|
||||
version = aws_launch_template.master-us-test-1b-masters-ha-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -229,6 +231,7 @@ resource "aws_autoscaling_group" "master-us-test-1c-masters-ha-example-com" {
|
|||
id = aws_launch_template.master-us-test-1c-masters-ha-example-com.id
|
||||
version = aws_launch_template.master-us-test-1c-masters-ha-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -293,6 +296,7 @@ resource "aws_autoscaling_group" "nodes-ha-example-com" {
|
|||
id = aws_launch_template.nodes-ha-example-com.id
|
||||
version = aws_launch_template.nodes-ha-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -195,6 +196,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -121,6 +121,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -185,6 +186,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -161,6 +161,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -225,6 +226,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -161,6 +161,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -225,6 +226,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -161,6 +161,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -215,6 +216,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -155,6 +156,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -155,6 +156,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -160,6 +161,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -150,6 +151,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -155,6 +156,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-ipv6-example
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-ipv6-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-ipv6-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -156,6 +157,7 @@ resource "aws_autoscaling_group" "nodes-minimal-ipv6-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-ipv6-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-ipv6-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-ipv6-example
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-ipv6-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-ipv6-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -161,6 +162,7 @@ resource "aws_autoscaling_group" "nodes-minimal-ipv6-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-ipv6-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-ipv6-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-ipv6-example
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-ipv6-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-ipv6-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -191,6 +192,7 @@ resource "aws_autoscaling_group" "nodes-minimal-ipv6-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-ipv6-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-ipv6-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-ipv6-example
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-ipv6-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-ipv6-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -161,6 +162,7 @@ resource "aws_autoscaling_group" "nodes-minimal-ipv6-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-ipv6-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-ipv6-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-this-is-truly-a-real
|
|||
id = aws_launch_template.master-us-test-1a-masters-this-is-truly-a-really-really-long-cluster-name-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-this-is-truly-a-really-really-long-cluster-name-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -155,6 +156,7 @@ resource "aws_autoscaling_group" "nodes-this-is-truly-a-really-really-long-clust
|
|||
id = aws_launch_template.nodes-this-is-truly-a-really-really-long-cluster-name-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-this-is-truly-a-really-really-long-cluster-name-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-warmpool-exa
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-warmpool-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-warmpool-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -155,6 +156,7 @@ resource "aws_autoscaling_group" "nodes-minimal-warmpool-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-warmpool-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-warmpool-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ spec:
|
|||
machineType: t2.medium
|
||||
maxSize: 2
|
||||
minSize: 2
|
||||
maxInstanceLifetime: 48h20m
|
||||
role: Node
|
||||
subnets:
|
||||
- us-test-1a
|
||||
|
|
@ -70,6 +71,7 @@ spec:
|
|||
machineType: m3.medium
|
||||
maxSize: 1
|
||||
minSize: 1
|
||||
maxInstanceLifetime: "0"
|
||||
role: Master
|
||||
subnets:
|
||||
- us-test-1a
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -155,6 +156,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 174000
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-k8s-local" {
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-k8s-local.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-k8s-local.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -155,6 +156,7 @@ resource "aws_autoscaling_group" "nodes-minimal-k8s-local" {
|
|||
id = aws_launch_template.nodes-minimal-k8s-local.id
|
||||
version = aws_launch_template.nodes-minimal-k8s-local.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-k8s-local" {
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-k8s-local.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-k8s-local.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -165,6 +166,7 @@ resource "aws_autoscaling_group" "nodes-minimal-k8s-local" {
|
|||
id = aws_launch_template.nodes-minimal-k8s-local.id
|
||||
version = aws_launch_template.nodes-minimal-k8s-local.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-mixedinstances-examp
|
|||
id = aws_launch_template.master-us-test-1a-masters-mixedinstances-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-mixedinstances-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -165,6 +166,7 @@ resource "aws_autoscaling_group" "master-us-test-1b-masters-mixedinstances-examp
|
|||
id = aws_launch_template.master-us-test-1b-masters-mixedinstances-example-com.id
|
||||
version = aws_launch_template.master-us-test-1b-masters-mixedinstances-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -229,6 +231,7 @@ resource "aws_autoscaling_group" "master-us-test-1c-masters-mixedinstances-examp
|
|||
id = aws_launch_template.master-us-test-1c-masters-mixedinstances-example-com.id
|
||||
version = aws_launch_template.master-us-test-1c-masters-mixedinstances-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -288,10 +291,11 @@ resource "aws_autoscaling_group" "master-us-test-1c-masters-mixedinstances-examp
|
|||
}
|
||||
|
||||
resource "aws_autoscaling_group" "nodes-mixedinstances-example-com" {
|
||||
enabled_metrics = ["GroupDesiredCapacity", "GroupInServiceInstances", "GroupMaxSize", "GroupMinSize", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
enabled_metrics = ["GroupDesiredCapacity", "GroupInServiceInstances", "GroupMaxSize", "GroupMinSize", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
mixed_instances_policy {
|
||||
instances_distribution {
|
||||
on_demand_percentage_above_base_capacity = 5
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-mixedinstances-examp
|
|||
id = aws_launch_template.master-us-test-1a-masters-mixedinstances-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-mixedinstances-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -165,6 +166,7 @@ resource "aws_autoscaling_group" "master-us-test-1b-masters-mixedinstances-examp
|
|||
id = aws_launch_template.master-us-test-1b-masters-mixedinstances-example-com.id
|
||||
version = aws_launch_template.master-us-test-1b-masters-mixedinstances-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -229,6 +231,7 @@ resource "aws_autoscaling_group" "master-us-test-1c-masters-mixedinstances-examp
|
|||
id = aws_launch_template.master-us-test-1c-masters-mixedinstances-example-com.id
|
||||
version = aws_launch_template.master-us-test-1c-masters-mixedinstances-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -288,10 +291,11 @@ resource "aws_autoscaling_group" "master-us-test-1c-masters-mixedinstances-examp
|
|||
}
|
||||
|
||||
resource "aws_autoscaling_group" "nodes-mixedinstances-example-com" {
|
||||
enabled_metrics = ["GroupDesiredCapacity", "GroupInServiceInstances", "GroupMaxSize", "GroupMinSize", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
enabled_metrics = ["GroupDesiredCapacity", "GroupInServiceInstances", "GroupMaxSize", "GroupMinSize", "GroupPendingInstances", "GroupStandbyInstances", "GroupTerminatingInstances", "GroupTotalInstances"]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
mixed_instances_policy {
|
||||
instances_distribution {
|
||||
on_demand_percentage_above_base_capacity = 5
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-nthsqsresources-long
|
|||
id = aws_launch_template.master-us-test-1a-masters-nthsqsresources-longclustername-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-nthsqsresources-longclustername-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -160,6 +161,7 @@ resource "aws_autoscaling_group" "nodes-nthsqsresources-longclustername-example-
|
|||
id = aws_launch_template.nodes-nthsqsresources-longclustername-example-com.id
|
||||
version = aws_launch_template.nodes-nthsqsresources-longclustername-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -155,6 +156,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ resource "aws_autoscaling_group" "bastion-private-shared-ip-example-com" {
|
|||
version = aws_launch_template.bastion-private-shared-ip-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-private-shared-ip-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -167,6 +168,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-private-shared-ip-ex
|
|||
version = aws_launch_template.master-us-test-1a-masters-private-shared-ip-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-private-shared-ip-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -231,6 +233,7 @@ resource "aws_autoscaling_group" "nodes-private-shared-ip-example-com" {
|
|||
id = aws_launch_template.nodes-private-shared-ip-example-com.id
|
||||
version = aws_launch_template.nodes-private-shared-ip-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -112,6 +112,7 @@ resource "aws_autoscaling_group" "bastion-private-shared-subnet-example-com" {
|
|||
version = aws_launch_template.bastion-private-shared-subnet-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-private-shared-subnet-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -162,6 +163,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-private-shared-subne
|
|||
version = aws_launch_template.master-us-test-1a-masters-private-shared-subnet-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-private-shared-subnet-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -226,6 +228,7 @@ resource "aws_autoscaling_group" "nodes-private-shared-subnet-example-com" {
|
|||
id = aws_launch_template.nodes-private-shared-subnet-example-com.id
|
||||
version = aws_launch_template.nodes-private-shared-subnet-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ resource "aws_autoscaling_group" "bastion-privatecalico-example-com" {
|
|||
version = aws_launch_template.bastion-privatecalico-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-privatecalico-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -167,6 +168,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privatecalico-exampl
|
|||
version = aws_launch_template.master-us-test-1a-masters-privatecalico-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-privatecalico-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -221,6 +223,7 @@ resource "aws_autoscaling_group" "nodes-privatecalico-example-com" {
|
|||
id = aws_launch_template.nodes-privatecalico-example-com.id
|
||||
version = aws_launch_template.nodes-privatecalico-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ resource "aws_autoscaling_group" "bastion-privatecanal-example-com" {
|
|||
version = aws_launch_template.bastion-privatecanal-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-privatecanal-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -172,6 +173,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privatecanal-example
|
|||
version = aws_launch_template.master-us-test-1a-masters-privatecanal-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-privatecanal-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -236,6 +238,7 @@ resource "aws_autoscaling_group" "nodes-privatecanal-example-com" {
|
|||
id = aws_launch_template.nodes-privatecanal-example-com.id
|
||||
version = aws_launch_template.nodes-privatecanal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ resource "aws_autoscaling_group" "bastion-privatecilium-example-com" {
|
|||
version = aws_launch_template.bastion-privatecilium-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-privatecilium-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -172,6 +173,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privatecilium-exampl
|
|||
version = aws_launch_template.master-us-test-1a-masters-privatecilium-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-privatecilium-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -236,6 +238,7 @@ resource "aws_autoscaling_group" "nodes-privatecilium-example-com" {
|
|||
id = aws_launch_template.nodes-privatecilium-example-com.id
|
||||
version = aws_launch_template.nodes-privatecilium-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ resource "aws_autoscaling_group" "bastion-privatecilium-example-com" {
|
|||
version = aws_launch_template.bastion-privatecilium-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-privatecilium-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -167,6 +168,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privatecilium-exampl
|
|||
version = aws_launch_template.master-us-test-1a-masters-privatecilium-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-privatecilium-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -221,6 +223,7 @@ resource "aws_autoscaling_group" "nodes-privatecilium-example-com" {
|
|||
id = aws_launch_template.nodes-privatecilium-example-com.id
|
||||
version = aws_launch_template.nodes-privatecilium-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ resource "aws_autoscaling_group" "bastion-privateciliumadvanced-example-com" {
|
|||
version = aws_launch_template.bastion-privateciliumadvanced-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-privateciliumadvanced-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -172,6 +173,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privateciliumadvance
|
|||
version = aws_launch_template.master-us-test-1a-masters-privateciliumadvanced-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-privateciliumadvanced-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -236,6 +238,7 @@ resource "aws_autoscaling_group" "nodes-privateciliumadvanced-example-com" {
|
|||
id = aws_launch_template.nodes-privateciliumadvanced-example-com.id
|
||||
version = aws_launch_template.nodes-privateciliumadvanced-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ resource "aws_autoscaling_group" "bastion-privatedns1-example-com" {
|
|||
version = aws_launch_template.bastion-privatedns1-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-privatedns1-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -182,6 +183,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privatedns1-example-
|
|||
version = aws_launch_template.master-us-test-1a-masters-privatedns1-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-privatedns1-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -256,6 +258,7 @@ resource "aws_autoscaling_group" "nodes-privatedns1-example-com" {
|
|||
id = aws_launch_template.nodes-privatedns1-example-com.id
|
||||
version = aws_launch_template.nodes-privatedns1-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ resource "aws_autoscaling_group" "bastion-privatedns2-example-com" {
|
|||
version = aws_launch_template.bastion-privatedns2-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-privatedns2-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -167,6 +168,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privatedns2-example-
|
|||
version = aws_launch_template.master-us-test-1a-masters-privatedns2-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-privatedns2-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -231,6 +233,7 @@ resource "aws_autoscaling_group" "nodes-privatedns2-example-com" {
|
|||
id = aws_launch_template.nodes-privatedns2-example-com.id
|
||||
version = aws_launch_template.nodes-privatedns2-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ resource "aws_autoscaling_group" "bastion-privateflannel-example-com" {
|
|||
version = aws_launch_template.bastion-privateflannel-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-privateflannel-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -172,6 +173,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privateflannel-examp
|
|||
version = aws_launch_template.master-us-test-1a-masters-privateflannel-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-privateflannel-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -236,6 +238,7 @@ resource "aws_autoscaling_group" "nodes-privateflannel-example-com" {
|
|||
id = aws_launch_template.nodes-privateflannel-example-com.id
|
||||
version = aws_launch_template.nodes-privateflannel-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -137,6 +137,7 @@ resource "aws_autoscaling_group" "bastion-privatekopeio-example-com" {
|
|||
version = aws_launch_template.bastion-privatekopeio-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-privatekopeio-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -187,6 +188,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privatekopeio-exampl
|
|||
version = aws_launch_template.master-us-test-1a-masters-privatekopeio-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-privatekopeio-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -251,6 +253,7 @@ resource "aws_autoscaling_group" "nodes-privatekopeio-example-com" {
|
|||
id = aws_launch_template.nodes-privatekopeio-example-com.id
|
||||
version = aws_launch_template.nodes-privatekopeio-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ resource "aws_autoscaling_group" "bastion-privateweave-example-com" {
|
|||
version = aws_launch_template.bastion-privateweave-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-privateweave-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -172,6 +173,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-privateweave-example
|
|||
version = aws_launch_template.master-us-test-1a-masters-privateweave-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-privateweave-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -236,6 +238,7 @@ resource "aws_autoscaling_group" "nodes-privateweave-example-com" {
|
|||
id = aws_launch_template.nodes-privateweave-example-com.id
|
||||
version = aws_launch_template.nodes-privateweave-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -185,6 +186,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-sharedsubnet-example
|
|||
id = aws_launch_template.master-us-test-1a-masters-sharedsubnet-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-sharedsubnet-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -150,6 +151,7 @@ resource "aws_autoscaling_group" "nodes-sharedsubnet-example-com" {
|
|||
id = aws_launch_template.nodes-sharedsubnet-example-com.id
|
||||
version = aws_launch_template.nodes-sharedsubnet-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-sharedvpc-example-co
|
|||
id = aws_launch_template.master-us-test-1a-masters-sharedvpc-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-sharedvpc-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -150,6 +151,7 @@ resource "aws_autoscaling_group" "nodes-sharedvpc-example-com" {
|
|||
id = aws_launch_template.nodes-sharedvpc-example-com.id
|
||||
version = aws_launch_template.nodes-sharedvpc-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ resource "aws_autoscaling_group" "bastion-unmanaged-example-com" {
|
|||
version = aws_launch_template.bastion-unmanaged-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.bastion-unmanaged-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -167,6 +168,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-unmanaged-example-co
|
|||
version = aws_launch_template.master-us-test-1a-masters-unmanaged-example-com.latest_version
|
||||
}
|
||||
load_balancers = [aws_elb.api-unmanaged-example-com.id]
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -231,6 +233,7 @@ resource "aws_autoscaling_group" "nodes-unmanaged-example-com" {
|
|||
id = aws_launch_template.nodes-unmanaged-example-com.id
|
||||
version = aws_launch_template.nodes-unmanaged-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-minimal-example-com"
|
|||
id = aws_launch_template.master-us-test-1a-masters-minimal-example-com.id
|
||||
version = aws_launch_template.master-us-test-1a-masters-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 1
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 1
|
||||
|
|
@ -165,6 +166,7 @@ resource "aws_autoscaling_group" "nodes-minimal-example-com" {
|
|||
id = aws_launch_template.nodes-minimal-example-com.id
|
||||
version = aws_launch_template.nodes-minimal-example-com.latest_version
|
||||
}
|
||||
max_instance_lifetime = 0
|
||||
max_size = 2
|
||||
metrics_granularity = "1Minute"
|
||||
min_size = 2
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ import (
|
|||
// CloudTagInstanceGroupRolePrefix is a cloud tag that defines the instance role
|
||||
const CloudTagInstanceGroupRolePrefix = "k8s.io/role/"
|
||||
|
||||
// AutoscalingGroup provdes the definition for a autoscaling group in aws
|
||||
// AutoscalingGroup provides the definition for a autoscaling group in aws
|
||||
// +kops:fitask
|
||||
type AutoscalingGroup struct {
|
||||
// Name is the name of the ASG
|
||||
|
|
@ -53,6 +53,8 @@ type AutoscalingGroup struct {
|
|||
LaunchTemplate *LaunchTemplate
|
||||
// LoadBalancers is a list of elastic load balancer names to add to the autoscaling group
|
||||
LoadBalancers []*ClassicLoadBalancer
|
||||
// MaxInstanceLifetime is the maximum amount of time, in seconds, that an instance can be in service.
|
||||
MaxInstanceLifetime *int64
|
||||
// MaxSize is the max number of nodes in asg
|
||||
MaxSize *int64
|
||||
// Metrics is a collection of metrics to monitor
|
||||
|
|
@ -110,9 +112,17 @@ func (e *AutoscalingGroup) Find(c *fi.Context) (*AutoscalingGroup, error) {
|
|||
}
|
||||
|
||||
actual := &AutoscalingGroup{
|
||||
Name: g.AutoScalingGroupName,
|
||||
MaxSize: g.MaxSize,
|
||||
MinSize: g.MinSize,
|
||||
Name: g.AutoScalingGroupName,
|
||||
MaxSize: g.MaxSize,
|
||||
MinSize: g.MinSize,
|
||||
MaxInstanceLifetime: g.MaxInstanceLifetime,
|
||||
}
|
||||
|
||||
// Use 0 as default value when api returns nil (same as model)
|
||||
if g.MaxInstanceLifetime == nil {
|
||||
actual.MaxInstanceLifetime = fi.Int64(0)
|
||||
} else {
|
||||
actual.MaxInstanceLifetime = g.MaxInstanceLifetime
|
||||
}
|
||||
|
||||
actual.LoadBalancers = []*ClassicLoadBalancer{}
|
||||
|
|
@ -344,6 +354,13 @@ func (v *AutoscalingGroup) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *Autos
|
|||
VPCZoneIdentifier: fi.String(strings.Join(e.AutoscalingGroupSubnets(), ",")),
|
||||
}
|
||||
|
||||
//On ASG creation 0 value is forbidden
|
||||
if fi.Int64Value(e.MaxInstanceLifetime) == 0 {
|
||||
request.MaxInstanceLifetime = nil
|
||||
} else {
|
||||
request.MaxInstanceLifetime = e.MaxInstanceLifetime
|
||||
}
|
||||
|
||||
for _, k := range e.LoadBalancers {
|
||||
if k.LoadBalancerName == nil {
|
||||
lbDesc, err := t.Cloud.FindELBByNameTag(fi.StringValue(k.GetName()))
|
||||
|
|
@ -523,6 +540,13 @@ func (v *AutoscalingGroup) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *Autos
|
|||
changes.Subnets = nil
|
||||
}
|
||||
|
||||
if changes.MaxInstanceLifetime != nil {
|
||||
request.MaxInstanceLifetime = e.MaxInstanceLifetime
|
||||
changes.MaxInstanceLifetime = nil
|
||||
} else {
|
||||
request.MaxInstanceLifetime = fi.Int64(0)
|
||||
}
|
||||
|
||||
var updateTagsRequest *autoscaling.CreateOrUpdateTagsInput
|
||||
var deleteTagsRequest *autoscaling.DeleteTagsInput
|
||||
if changes.Tags != nil {
|
||||
|
|
@ -891,17 +915,19 @@ type terraformAutoscalingGroup struct {
|
|||
InstanceProtection *bool `cty:"protect_from_scale_in"`
|
||||
LoadBalancers []*terraformWriter.Literal `cty:"load_balancers"`
|
||||
TargetGroupARNs []*terraformWriter.Literal `cty:"target_group_arns"`
|
||||
MaxInstanceLifetime *int64 `cty:"max_instance_lifetime"`
|
||||
}
|
||||
|
||||
// RenderTerraform is responsible for rendering the terraform codebase
|
||||
func (_ *AutoscalingGroup) RenderTerraform(t *terraform.TerraformTarget, a, e, changes *AutoscalingGroup) error {
|
||||
tf := &terraformAutoscalingGroup{
|
||||
Name: e.Name,
|
||||
MinSize: e.MinSize,
|
||||
MaxSize: e.MaxSize,
|
||||
MetricsGranularity: e.Granularity,
|
||||
EnabledMetrics: aws.StringSlice(e.Metrics),
|
||||
InstanceProtection: e.InstanceProtection,
|
||||
Name: e.Name,
|
||||
MinSize: e.MinSize,
|
||||
MaxSize: e.MaxSize,
|
||||
MetricsGranularity: e.Granularity,
|
||||
EnabledMetrics: aws.StringSlice(e.Metrics),
|
||||
InstanceProtection: e.InstanceProtection,
|
||||
MaxInstanceLifetime: e.MaxInstanceLifetime,
|
||||
}
|
||||
|
||||
for _, s := range e.Subnets {
|
||||
|
|
|
|||
Loading…
Reference in New Issue