Skip to content

Commit ed71e0f

Browse files
authored
feat(elastigroup/aws): added max_scale_down_percentage in kubernetes_integrations (spotinst#463)
feat(elastigroup/aws): added `max_scale_down_percentage` in `kubernetes_integrations`
1 parent 8722234 commit ed71e0f

File tree

4 files changed

+16
-1
lines changed

4 files changed

+16
-1
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
## Unreleased
22

3+
## 1.136.0 (September 07, 2023)
4+
ENHANCEMENTS:
5+
* resource/spotinst_elastigroup_aws: Added `max_scale_down_percentage` field in `kubernetes_integrations` object
6+
37
## 1.135.0 (September, 06 2023)
48
BUG FIXES:
59
* resource/spotinst_ocean_aks_np: Fix for ignoring the unnecessary changes shown during terraform plan for the attributes inside `filters` object

docs/resources/elastigroup_aws.md

+2
Original file line numberDiff line numberDiff line change
@@ -891,6 +891,7 @@ integration_docker_swarm {
891891
* `num_of_units` - (Optional, Default: `0`) How many units to allocate for headroom unit.
892892
* `autoscale_down` - (Optional) Setting for scale down actions.
893893
* `evaluation_periods` - (Optional, Default: `5`) How many evaluation periods should accumulate before a scale down action takes place.
894+
* `max_scale_down_percentage` - (Optional) Represents the maximum percent to scale-down. Number between 1-100.
894895
* `autoscale_labels` - (Optional) A key/value mapping of tags to assign to the resource.
895896

896897
Usage:
@@ -918,6 +919,7 @@ Usage:
918919
919920
autoscale_down {
920921
evaluation_periods = 300
922+
max_scale_down_percentage = 50
921923
}
922924
923925
autoscale_labels {

spotinst/elastigroup_aws_integrations/fields_spotinst_elastigroup_aws_integrations_kubernetes.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@ func SetupKubernetes(fieldsMap map[commons.FieldName]*commons.GenericField) {
8989
Type: schema.TypeInt,
9090
Optional: true,
9191
},
92+
93+
string(MaxScaleDownPercentage): {
94+
Type: schema.TypeFloat,
95+
Optional: true,
96+
},
9297
},
9398
},
9499
},
@@ -205,7 +210,7 @@ func expandAWSGroupKubernetesIntegration(data interface{}) (*aws.KubernetesInteg
205210
}
206211

207212
if v, ok := m[string(AutoscaleDown)]; ok {
208-
down, err := expandAWSGroupAutoScaleDown(v, false)
213+
down, err := expandAWSGroupAutoScaleDown(v, true)
209214
if err != nil {
210215
return nil, err
211216
}

spotinst/resource_spotinst_elastigroup_aws_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -3708,6 +3708,7 @@ func TestAccSpotinstElastigroupAWS_IntegrationKubernetes(t *testing.T) {
37083708
resource.TestCheckResourceAttr(resourceName, "integration_kubernetes.0.autoscale_headroom.0.memory_per_unit", "512"),
37093709
resource.TestCheckResourceAttr(resourceName, "integration_kubernetes.0.autoscale_headroom.0.num_of_units", "2"),
37103710
resource.TestCheckResourceAttr(resourceName, "integration_kubernetes.0.autoscale_down.0.evaluation_periods", "300"),
3711+
resource.TestCheckResourceAttr(resourceName, "integration_kubernetes.0.autoscale_down.0.max_scale_down_percentage", "70"),
37113712
resource.TestCheckResourceAttr(resourceName, "integration_kubernetes.0.autoscale_labels.0.key", "test.key.k8s"),
37123713
resource.TestCheckResourceAttr(resourceName, "integration_kubernetes.0.autoscale_labels.0.value", "test.value.k8s"),
37133714
),
@@ -3733,6 +3734,7 @@ func TestAccSpotinstElastigroupAWS_IntegrationKubernetes(t *testing.T) {
37333734
resource.TestCheckResourceAttr(resourceName, "integration_kubernetes.0.autoscale_headroom.0.memory_per_unit", "1024"),
37343735
resource.TestCheckResourceAttr(resourceName, "integration_kubernetes.0.autoscale_headroom.0.num_of_units", "1"),
37353736
resource.TestCheckResourceAttr(resourceName, "integration_kubernetes.0.autoscale_down.0.evaluation_periods", "150"),
3737+
resource.TestCheckResourceAttr(resourceName, "integration_kubernetes.0.autoscale_down.0.max_scale_down_percentage", "30"),
37363738
resource.TestCheckResourceAttr(resourceName, "integration_kubernetes.0.autoscale_labels.0.key", "test.key.k8s.update"),
37373739
resource.TestCheckResourceAttr(resourceName, "integration_kubernetes.0.autoscale_labels.0.value", "test.value.k8s.update"),
37383740
),
@@ -3771,6 +3773,7 @@ const testIntegrationKubernetesGroupConfig_Create = `
37713773
37723774
autoscale_down {
37733775
evaluation_periods = 300
3776+
max_scale_down_percentage = 70
37743777
}
37753778
37763779
autoscale_labels {
@@ -3800,6 +3803,7 @@ const testIntegrationKubernetesGroupConfig_Update = `
38003803
38013804
autoscale_down {
38023805
evaluation_periods = 150
3806+
max_scale_down_percentage = 30
38033807
}
38043808
38053809
autoscale_labels {

0 commit comments

Comments
 (0)