Skip to content
This repository has been archived by the owner on Jun 29, 2022. It is now read-only.

Add CPU-SMALL and ARM-SMALL label to reserved instances #37

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

driazati
Copy link
Contributor

Once we fully deploy ARM-SMALL and CPU-SMALL, there will be nothing
using the reserved instances for the larger node types. This adds them
to the small pool so that they'll be used and not just sit there idle.

@driazati
Copy link
Contributor Author

driazati commented May 25, 2022

we can probably just keep these as-is exclusively for building docker images nvm these can still get autoscaled up if we need

@driazati driazati closed this May 25, 2022
@driazati driazati reopened this May 25, 2022
Once we fully deploy ARM-SMALL and CPU-SMALL, there will be nothing
using the reserved instances for the larger node types. This adds them
to the small pool so that they'll be used and not just sit there idle.
@github-actions
Copy link

Terraform plan in . in the tvm-ci-prod workspace
With var files: vars/tvm-ci-prod.auto.tfvars

Plan: 6 to add, 3 to change, 0 to destroy. Changes to Outputs.
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
  ~ update in-place

Terraform will perform the following actions:

  # module.Jenkins-Autoscalers["Prod-Autoscaler-Jenkins-ARM"].aws_autoscaling_group.agents will be updated in-place
  ~ resource "aws_autoscaling_group" "agents" {
        id                        = "Prod-Autoscaler-Jenkins-ARM"
      ~ max_size                  = 90 -> 2
        name                      = "Prod-Autoscaler-Jenkins-ARM"
        # (21 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # module.Jenkins-Autoscalers["Prod-Autoscaler-Jenkins-ARM-DOCKER"].aws_autoscaling_group.agents will be created
  + resource "aws_autoscaling_group" "agents" {
      + arn                       = (known after apply)
      + availability_zones        = (known after apply)
      + default_cooldown          = (known after apply)
      + desired_capacity          = (known after apply)
      + force_delete              = false
      + force_delete_warm_pool    = false
      + health_check_grace_period = 300
      + health_check_type         = (known after apply)
      + id                        = (known after apply)
      + max_size                  = 45
      + metrics_granularity       = "1Minute"
      + min_size                  = 0
      + name                      = "Prod-Autoscaler-Jenkins-ARM-DOCKER"
      + name_prefix               = (known after apply)
      + protect_from_scale_in     = false
      + service_linked_role_arn   = (known after apply)
      + vpc_zone_identifier       = [
          + "subnet-0548976da0eb119b8",
          + "subnet-0ab37ff3dbeb0e52b",
          + "subnet-0fa03daf38e6b72a8",
        ]
      + wait_for_capacity_timeout = "10m"

      + mixed_instances_policy {
          + instances_distribution {
              + on_demand_allocation_strategy            = (known after apply)
              + on_demand_base_capacity                  = 0
              + on_demand_percentage_above_base_capacity = 100
              + spot_allocation_strategy                 = "capacity-optimized"
              + spot_instance_pools                      = (known after apply)
            }

          + launch_template {
              + launch_template_specification {
                  + launch_template_id   = (known after apply)
                  + launch_template_name = (known after apply)
                  + version              = (known after apply)
                }
            }
        }
    }

  # module.Jenkins-Autoscalers["Prod-Autoscaler-Jenkins-ARM-DOCKER"].aws_launch_template.autoscaler will be created
  + resource "aws_launch_template" "autoscaler" {
      + arn                    = (known after apply)
      + default_version        = (known after apply)
      + id                     = (known after apply)
      + image_id               = "*********************"
      + instance_type          = "m6g.4xlarge"
      + key_name               = "tvm_ci_creds"
      + latest_version         = (known after apply)
      + name                   = (known after apply)
      + name_prefix            = "Prod-Autoscaler-Jenkins-ARM-DOCKER"
      + tags_all               = (known after apply)
      + user_data              = "IyEgL3Vzci9iaW4vZW52IGJhc2gKbWtkaXIgLXAgL2hvbWUvamVua2lucy8uc3NoCnRvdWNoIC9ob21lL2plbmtpbnMvLnByb2ZpbGUKZWNobyAiQ0lfTlVNX0VYRUNVVE9SUz0xIiA+PiAvaG9tZS9qZW5raW5zLy5zc2gvZW52aXJvbm1lbnQKY2htb2QgNzAwIC9ob21lL2plbmtpbnMvLnNzaC9lbnZpcm9ubWVudAplY2hvIHNzaC1lZDI1NTE5IEFBQUFDM056YUMxbFpESTFOVEU1QUFBQUlCWnZHbXlzcHo1eWFaMm4wSDJVMlhHOHhVTG0yR1lvVDhGbzNxZWJJMzR2ID4+IC9ob21lL2plbmtpbnMvLnNzaC9hdXRob3JpemVkX2tleXMKY2hvd24gLVIgamVua2luczpqZW5raW5zIC9ob21lL2plbmtpbnMKZWNobyAic3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUJBc0FhWENESkJJU09RaDh2ZHJVWHlPU29RMnBmUXVMNTc5NzRPa3VHYlcKc3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUJGWnRJU1FXMk1TS1ZqNndpYms4bkI0UkJmNFp1b2x1SnRCV21lV1BvZWUKc3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFDQVFEOGR6NTUyNm53emZWQ2lRdnFLQ3JIM28xclVxN0hEODRtbE9POS96c1h1WVk3aXdjRi94M2FlRTI0TUluNVhmUFpJeWU2aXllK2lFc04xckpRb2RhbU5DVUE0M0cwVFhTNlhqN1QzZkxBdFU5M2V5Y2VRSWV1RWpoRGZTc0ZXZUtwa1pUUkUwZGVsb0s5aW9aczVvQ0k0TnRqeG53WmRrM2dVUTBjK2YxS0FZdlg1dzl1T1FYeW5Na3VRY3NDQTY3NDBlVFZFcjhvaHA2VHRhZm5WdGhVQUsxYWN3K2xETVhOU1dDNkZwckZlalRPRnR3TCtVUVMyV2pVQXhpamgweDdmVTRWa05PcWdmVG52VTBEVDg2U1laM3RNK1FBdktRU1hQV3VLa1JnVEMzcm1qUUJsdjhFNzliVXdPMU1wNHNML1ZKais4UmNBQzhDOEYwZHVJSENOa1ljWFBCVkR6UDZGRlpYdC9TV3pDODlVMjN1dzVJMW40eDFZV1FPbDhNejIvVWFPU2NaMnZvUnZNYytiazdlTWdkc1BIS0YwYW8zdTBaUmJnRHdnK3JmMVIwOEVkMlBuWkUyQTNWTHpIMXB0U2lJbWk3NEdlbW1qT1o5bldwZVExVXJWRkhETnVSSWVZOVZVc3Z3emd4eHEvSzNtZ0lnczEybGZWeGtHc09SdmJjQUJMTFZLYWlNNHJidEhMUTlTS3F3azVPQ1NTdnIzUlVZU0dyeDVZOW5RdlYwY0IxbmY2QTdRRTZkc0Y1dmgxYUpMd0k4OUV1M0ZpL241M3VaamdqMXVGMC9WK0ZqYVE4dVk4YnhtMXNXclNGVnJKOGF1Z2lmM0tMNXZ0OW1PcHRiSkwvMEF6OUdaenZvTGYrVStiVUpVSlI3WDM1dGVDOG8wdTVJQVE9PQpzc2gtZWQyNTUxOSBBQUFBQzNOemFDMWxaREkxTlRFNUFBQUFJR2FRZUdSTlVSNFAySUVLZDF4K05pcWpmeTFPakVqZ3dUUWRYRmUwblA3Sgpzc2gtcnNhIEFBQUFCM056YUMxeWMyRUFBQUFEQVFBQkFBQUNBUUQ4ZHo1NTI2bnd6ZlZDaVF2cUtDckgzbzFyVXE3SEQ4NG1sT085L3pzWHVZWTdpd2NGL3gzYWVFMjRNSW41WGZQWkl5ZTZpeWUraUVzTjFySlFvZGFtTkNVQTQzRzBUWFM2WGo3VDNmTEF0VTkzZXljZVFJZXVFamhEZlNzRldlS3BrWlRSRTBkZWxvSzlpb1pzNW9DSTROdGp4bndaZGszZ1VRMGMrZjFLQVl2WDV3OXVPUVh5bk1rdVFjc0NBNjc0MGVUVkVyOG9ocDZUdGFmblZ0aFVBSzFhY3crbERNWE5TV0M2RnByRmVqVE9GdHdMK1VRUzJXalVBeGlqaDB4N2ZVNFZrTk9xZ2ZUbnZVMERUODZTWVozdE0rUUF2S1FTWFBXdUtrUmdUQzNybWpRQmx2OEU3OWJVd08xTXA0c0wvVkpqKzhSY0FDOEM4RjBkdUlIQ05rWWNYUEJWRHpQNkZGWlh0L1NXekM4OVUyM3V3NUkxbjR4MVlXUU9sOE16Mi9VYU9TY1oydm9Sdk1jK2JrN2VNZ2RzUEhLRjBhbzN1MFpSYmdEd2crcmYxUjA4RWQyUG5aRTJBM1ZMekgxcHRTaUltaTc0R2VtbWpPWjluV3BlUTFVclZGSEROdVJJZVk5VlVzdnd6Z3h4cS9LM21nSWdzMTJsZlZ4a0dzT1J2YmNBQkxMVkthaU00cmJ0SExROVNLcXdrNU9DU1N2cjNSVVlTR3J4NVk5blF2VjBjQjFuZjZBN1FFNmRzRjV2aDFhSkx3STg5RXUzRmkvbjUzdVpqZ2oxdUYwL1YrRmphUTh1WThieG0xc1dyU0ZWcko4YXVnaWYzS0w1dnQ5bU9wdGJKTC8wQXo5R1p6dm9MZitVK2JVSlVKUjdYMzV0ZUM4bzB1NUlBUT09CnNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRREovNXJzU0hiZXZhengzSkpuQVZRbE9aZFJnNWwxUHVSOUppRmVhMmdvNU5xTWZWNHFyUzFQbndrTlRwL1l6akxxMWRiRnc4NFFyS3JNdkFsR0RIQU9waHIyQ0ErL0ZUTXFyeGxaeU93VkVZZzJSbmEzQUJldENrVCtZdUd1ZXRQMzBVREVHaUxTWGc4djIveXZQN0tqZVE4UUpneDJSd0k0QzVaaHJ6L2JaK25UNU9rZ05PcHVCcEI3bjIwWUZwQmZqczk2cTAyL3JYZ0VJeCtVWHlpamNNVGg4Si8xNno2MHB4dkgwNUVwMEtUc1pTZTIzV0lXN0NBbDZRbkx1Q0tZV0VBZlROZWN1UEJ1UW1LRHBqWXp4SkJUalRvL2dFUjZNYlpqaE00d0h5Zml0TktWdnYzcFNHVXdvZUNIY0tmL0JmQmRGRSs4S05OSDNqMGVJZlVMCnNzaC1lZDI1NTE5IEFBQUFDM056YUMxbFpESTFOVEU1QUFBQUlEbnpyV1JVaW5RTzJWT3YwcUNKRjJRZXdBNHljVWlwV0g1M3cvdk1XTzZWIGRyaWF6YXRpCiIgPj4gL3Jvb3QvLnNzaC9hdXRob3JpemVkX2tleXMKZWNobyAiUGVybWl0VXNlckVudmlyb25tZW50IHllcyIgPj4gL2V0Yy9zc2gvc3NoZF9jb25maWcKc3lzdGVtY3RsIHJlc3RhcnQgc3NoZAo="
      + vpc_security_group_ids = [
          + "sg-03e5a485a8fd23223",
          + "sg-0a7cd8e7e7707c124",
        ]

      + block_device_mappings {
          + device_name = "/dev/sda1"

          + ebs {
              + iops        = (known after apply)
              + throughput  = (known after apply)
              + volume_size = 250
              + volume_type = (known after apply)
            }
        }

      + iam_instance_profile {
          + name = "autoscalers_instance_profile"
        }

      + metadata_options {
          + http_endpoint               = (known after apply)
          + http_protocol_ipv6          = (known after apply)
          + http_put_response_hop_limit = (known after apply)
          + http_tokens                 = (known after apply)
          + instance_metadata_tags      = (known after apply)
        }
    }

  # module.Jenkins-Autoscalers["Prod-Autoscaler-Jenkins-CPU"].aws_autoscaling_group.agents will be updated in-place
  ~ resource "aws_autoscaling_group" "agents" {
        id                        = "Prod-Autoscaler-Jenkins-CPU"
      ~ max_size                  = 90 -> 6
        name                      = "Prod-Autoscaler-Jenkins-CPU"
        # (21 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # module.Jenkins-Autoscalers["Prod-Autoscaler-Jenkins-CPU-DOCKER"].aws_autoscaling_group.agents will be created
  + resource "aws_autoscaling_group" "agents" {
      + arn                       = (known after apply)
      + availability_zones        = (known after apply)
      + default_cooldown          = (known after apply)
      + desired_capacity          = (known after apply)
      + force_delete              = false
      + force_delete_warm_pool    = false
      + health_check_grace_period = 300
      + health_check_type         = (known after apply)
      + id                        = (known after apply)
      + max_size                  = 45
      + metrics_granularity       = "1Minute"
      + min_size                  = 0
      + name                      = "Prod-Autoscaler-Jenkins-CPU-DOCKER"
      + name_prefix               = (known after apply)
      + protect_from_scale_in     = false
      + service_linked_role_arn   = (known after apply)
      + vpc_zone_identifier       = [
          + "subnet-0548976da0eb119b8",
          + "subnet-0ab37ff3dbeb0e52b",
          + "subnet-0fa03daf38e6b72a8",
        ]
      + wait_for_capacity_timeout = "10m"

      + mixed_instances_policy {
          + instances_distribution {
              + on_demand_allocation_strategy            = (known after apply)
              + on_demand_base_capacity                  = 0
              + on_demand_percentage_above_base_capacity = 100
              + spot_allocation_strategy                 = "capacity-optimized"
              + spot_instance_pools                      = (known after apply)
            }

          + launch_template {
              + launch_template_specification {
                  + launch_template_id   = (known after apply)
                  + launch_template_name = (known after apply)
                  + version              = (known after apply)
                }
            }
        }
    }

  # module.Jenkins-Autoscalers["Prod-Autoscaler-Jenkins-CPU-DOCKER"].aws_launch_template.autoscaler will be created
  + resource "aws_launch_template" "autoscaler" {
      + arn                    = (known after apply)
      + default_version        = (known after apply)
      + id                     = (known after apply)
      + image_id               = "*********************"
      + instance_type          = "c4.4xlarge"
      + key_name               = "tvm_ci_creds"
      + latest_version         = (known after apply)
      + name                   = (known after apply)
      + name_prefix            = "Prod-Autoscaler-Jenkins-CPU-DOCKER"
      + tags_all               = (known after apply)
      + user_data              = "IyEgL3Vzci9iaW4vZW52IGJhc2gKbWtkaXIgLXAgL2hvbWUvamVua2lucy8uc3NoCnRvdWNoIC9ob21lL2plbmtpbnMvLnByb2ZpbGUKZWNobyAiQ0lfTlVNX0VYRUNVVE9SUz0xIiA+PiAvaG9tZS9qZW5raW5zLy5zc2gvZW52aXJvbm1lbnQKY2htb2QgNzAwIC9ob21lL2plbmtpbnMvLnNzaC9lbnZpcm9ubWVudAplY2hvIHNzaC1lZDI1NTE5IEFBQUFDM056YUMxbFpESTFOVEU1QUFBQUlCWnZHbXlzcHo1eWFaMm4wSDJVMlhHOHhVTG0yR1lvVDhGbzNxZWJJMzR2ID4+IC9ob21lL2plbmtpbnMvLnNzaC9hdXRob3JpemVkX2tleXMKY2hvd24gLVIgamVua2luczpqZW5raW5zIC9ob21lL2plbmtpbnMKZWNobyAic3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUJBc0FhWENESkJJU09RaDh2ZHJVWHlPU29RMnBmUXVMNTc5NzRPa3VHYlcKc3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUJGWnRJU1FXMk1TS1ZqNndpYms4bkI0UkJmNFp1b2x1SnRCV21lV1BvZWUKc3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFDQVFEOGR6NTUyNm53emZWQ2lRdnFLQ3JIM28xclVxN0hEODRtbE9POS96c1h1WVk3aXdjRi94M2FlRTI0TUluNVhmUFpJeWU2aXllK2lFc04xckpRb2RhbU5DVUE0M0cwVFhTNlhqN1QzZkxBdFU5M2V5Y2VRSWV1RWpoRGZTc0ZXZUtwa1pUUkUwZGVsb0s5aW9aczVvQ0k0TnRqeG53WmRrM2dVUTBjK2YxS0FZdlg1dzl1T1FYeW5Na3VRY3NDQTY3NDBlVFZFcjhvaHA2VHRhZm5WdGhVQUsxYWN3K2xETVhOU1dDNkZwckZlalRPRnR3TCtVUVMyV2pVQXhpamgweDdmVTRWa05PcWdmVG52VTBEVDg2U1laM3RNK1FBdktRU1hQV3VLa1JnVEMzcm1qUUJsdjhFNzliVXdPMU1wNHNML1ZKais4UmNBQzhDOEYwZHVJSENOa1ljWFBCVkR6UDZGRlpYdC9TV3pDODlVMjN1dzVJMW40eDFZV1FPbDhNejIvVWFPU2NaMnZvUnZNYytiazdlTWdkc1BIS0YwYW8zdTBaUmJnRHdnK3JmMVIwOEVkMlBuWkUyQTNWTHpIMXB0U2lJbWk3NEdlbW1qT1o5bldwZVExVXJWRkhETnVSSWVZOVZVc3Z3emd4eHEvSzNtZ0lnczEybGZWeGtHc09SdmJjQUJMTFZLYWlNNHJidEhMUTlTS3F3azVPQ1NTdnIzUlVZU0dyeDVZOW5RdlYwY0IxbmY2QTdRRTZkc0Y1dmgxYUpMd0k4OUV1M0ZpL241M3VaamdqMXVGMC9WK0ZqYVE4dVk4YnhtMXNXclNGVnJKOGF1Z2lmM0tMNXZ0OW1PcHRiSkwvMEF6OUdaenZvTGYrVStiVUpVSlI3WDM1dGVDOG8wdTVJQVE9PQpzc2gtZWQyNTUxOSBBQUFBQzNOemFDMWxaREkxTlRFNUFBQUFJR2FRZUdSTlVSNFAySUVLZDF4K05pcWpmeTFPakVqZ3dUUWRYRmUwblA3Sgpzc2gtcnNhIEFBQUFCM056YUMxeWMyRUFBQUFEQVFBQkFBQUNBUUQ4ZHo1NTI2bnd6ZlZDaVF2cUtDckgzbzFyVXE3SEQ4NG1sT085L3pzWHVZWTdpd2NGL3gzYWVFMjRNSW41WGZQWkl5ZTZpeWUraUVzTjFySlFvZGFtTkNVQTQzRzBUWFM2WGo3VDNmTEF0VTkzZXljZVFJZXVFamhEZlNzRldlS3BrWlRSRTBkZWxvSzlpb1pzNW9DSTROdGp4bndaZGszZ1VRMGMrZjFLQVl2WDV3OXVPUVh5bk1rdVFjc0NBNjc0MGVUVkVyOG9ocDZUdGFmblZ0aFVBSzFhY3crbERNWE5TV0M2RnByRmVqVE9GdHdMK1VRUzJXalVBeGlqaDB4N2ZVNFZrTk9xZ2ZUbnZVMERUODZTWVozdE0rUUF2S1FTWFBXdUtrUmdUQzNybWpRQmx2OEU3OWJVd08xTXA0c0wvVkpqKzhSY0FDOEM4RjBkdUlIQ05rWWNYUEJWRHpQNkZGWlh0L1NXekM4OVUyM3V3NUkxbjR4MVlXUU9sOE16Mi9VYU9TY1oydm9Sdk1jK2JrN2VNZ2RzUEhLRjBhbzN1MFpSYmdEd2crcmYxUjA4RWQyUG5aRTJBM1ZMekgxcHRTaUltaTc0R2VtbWpPWjluV3BlUTFVclZGSEROdVJJZVk5VlVzdnd6Z3h4cS9LM21nSWdzMTJsZlZ4a0dzT1J2YmNBQkxMVkthaU00cmJ0SExROVNLcXdrNU9DU1N2cjNSVVlTR3J4NVk5blF2VjBjQjFuZjZBN1FFNmRzRjV2aDFhSkx3STg5RXUzRmkvbjUzdVpqZ2oxdUYwL1YrRmphUTh1WThieG0xc1dyU0ZWcko4YXVnaWYzS0w1dnQ5bU9wdGJKTC8wQXo5R1p6dm9MZitVK2JVSlVKUjdYMzV0ZUM4bzB1NUlBUT09CnNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRREovNXJzU0hiZXZhengzSkpuQVZRbE9aZFJnNWwxUHVSOUppRmVhMmdvNU5xTWZWNHFyUzFQbndrTlRwL1l6akxxMWRiRnc4NFFyS3JNdkFsR0RIQU9waHIyQ0ErL0ZUTXFyeGxaeU93VkVZZzJSbmEzQUJldENrVCtZdUd1ZXRQMzBVREVHaUxTWGc4djIveXZQN0tqZVE4UUpneDJSd0k0QzVaaHJ6L2JaK25UNU9rZ05PcHVCcEI3bjIwWUZwQmZqczk2cTAyL3JYZ0VJeCtVWHlpamNNVGg4Si8xNno2MHB4dkgwNUVwMEtUc1pTZTIzV0lXN0NBbDZRbkx1Q0tZV0VBZlROZWN1UEJ1UW1LRHBqWXp4SkJUalRvL2dFUjZNYlpqaE00d0h5Zml0TktWdnYzcFNHVXdvZUNIY0tmL0JmQmRGRSs4S05OSDNqMGVJZlVMCnNzaC1lZDI1NTE5IEFBQUFDM056YUMxbFpESTFOVEU1QUFBQUlEbnpyV1JVaW5RTzJWT3YwcUNKRjJRZXdBNHljVWlwV0g1M3cvdk1XTzZWIGRyaWF6YXRpCiIgPj4gL3Jvb3QvLnNzaC9hdXRob3JpemVkX2tleXMKZWNobyAiUGVybWl0VXNlckVudmlyb25tZW50IHllcyIgPj4gL2V0Yy9zc2gvc3NoZF9jb25maWcKc3lzdGVtY3RsIHJlc3RhcnQgc3NoZAo="
      + vpc_security_group_ids = [
          + "sg-03e5a485a8fd23223",
          + "sg-0a7cd8e7e7707c124",
        ]

      + block_device_mappings {
          + device_name = "/dev/sda1"

          + ebs {
              + iops        = (known after apply)
              + throughput  = (known after apply)
              + volume_size = 250
              + volume_type = (known after apply)
            }
        }

      + iam_instance_profile {
          + name = "autoscalers_instance_profile"
        }

      + metadata_options {
          + http_endpoint               = (known after apply)
          + http_protocol_ipv6          = (known after apply)
          + http_put_response_hop_limit = (known after apply)
          + http_tokens                 = (known after apply)
          + instance_metadata_tags      = (known after apply)
        }
    }

  # module.Jenkins-Autoscalers["Prod-Autoscaler-Jenkins-CPU-Small"].aws_autoscaling_group.agents will be updated in-place
  ~ resource "aws_autoscaling_group" "agents" {
        id                        = "Prod-Autoscaler-Jenkins-CPU-Small"
      ~ max_size                  = 200 -> 100
        name                      = "Prod-Autoscaler-Jenkins-CPU-Small"
        # (21 unchanged attributes hidden)

      - launch_template {
          - id      = "lt-02518d53b22a85dd8" -> null
          - name    = "Prod-Autoscaler-Jenkins-CPU-Small20220425184607394500000002" -> null
          - version = "4" -> null
        }

      + mixed_instances_policy {
          + instances_distribution {
              + on_demand_base_capacity                  = 0
              + on_demand_percentage_above_base_capacity = 100
              + spot_allocation_strategy                 = "capacity-optimized"
            }

          + launch_template {
              + launch_template_specification {
                  + launch_template_id = "********************"
                  + version            = "4"
                }
            }
        }
    }

  # module.Jenkins-Autoscalers["Prod-Autoscaler-Jenkins-GPU-DOCKER"].aws_autoscaling_group.agents will be created
  + resource "aws_autoscaling_group" "agents" {
      + arn                       = (known after apply)
      + availability_zones        = (known after apply)
      + default_cooldown          = (known after apply)
      + desired_capacity          = (known after apply)
      + force_delete              = false
      + force_delete_warm_pool    = false
      + health_check_grace_period = 300
      + health_check_type         = (known after apply)
      + id                        = (known after apply)
      + max_size                  = 45
      + metrics_granularity       = "1Minute"
      + min_size                  = 0
      + name                      = "Prod-Autoscaler-Jenkins-GPU-DOCKER"
      + name_prefix               = (known after apply)
      + protect_from_scale_in     = false
      + service_linked_role_arn   = (known after apply)
      + vpc_zone_identifier       = [
          + "subnet-0548976da0eb119b8",
          + "subnet-0ab37ff3dbeb0e52b",
          + "subnet-0fa03daf38e6b72a8",
        ]
      + wait_for_capacity_timeout = "10m"

      + mixed_instances_policy {
          + instances_distribution {
              + on_demand_allocation_strategy            = (known after apply)
              + on_demand_base_capacity                  = 0
              + on_demand_percentage_above_base_capacity = 100
              + spot_allocation_strategy                 = "capacity-optimized"
              + spot_instance_pools                      = (known after apply)
            }

          + launch_template {
              + launch_template_specification {
                  + launch_template_id   = (known after apply)
                  + launch_template_name = (known after apply)
                  + version              = (known after apply)
                }
            }
        }
    }

  # module.Jenkins-Autoscalers["Prod-Autoscaler-Jenkins-GPU-DOCKER"].aws_launch_template.autoscaler will be created
  + resource "aws_launch_template" "autoscaler" {
      + arn                    = (known after apply)
      + default_version        = (known after apply)
      + id                     = (known after apply)
      + image_id               = "*********************"
      + instance_type          = "g4dn.xlarge"
      + key_name               = "tvm_ci_creds"
      + latest_version         = (known after apply)
      + name                   = (known after apply)
      + name_prefix            = "Prod-Autoscaler-Jenkins-GPU-DOCKER"
      + tags_all               = (known after apply)
      + user_data              = "IyEgL3Vzci9iaW4vZW52IGJhc2gKbWtkaXIgLXAgL2hvbWUvamVua2lucy8uc3NoCnRvdWNoIC9ob21lL2plbmtpbnMvLnByb2ZpbGUKZWNobyAiQ0lfTlVNX0VYRUNVVE9SUz0xIiA+PiAvaG9tZS9qZW5raW5zLy5zc2gvZW52aXJvbm1lbnQKY2htb2QgNzAwIC9ob21lL2plbmtpbnMvLnNzaC9lbnZpcm9ubWVudAplY2hvIHNzaC1lZDI1NTE5IEFBQUFDM056YUMxbFpESTFOVEU1QUFBQUlCWnZHbXlzcHo1eWFaMm4wSDJVMlhHOHhVTG0yR1lvVDhGbzNxZWJJMzR2ID4+IC9ob21lL2plbmtpbnMvLnNzaC9hdXRob3JpemVkX2tleXMKY2hvd24gLVIgamVua2luczpqZW5raW5zIC9ob21lL2plbmtpbnMKZWNobyAic3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUJBc0FhWENESkJJU09RaDh2ZHJVWHlPU29RMnBmUXVMNTc5NzRPa3VHYlcKc3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUJGWnRJU1FXMk1TS1ZqNndpYms4bkI0UkJmNFp1b2x1SnRCV21lV1BvZWUKc3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFDQVFEOGR6NTUyNm53emZWQ2lRdnFLQ3JIM28xclVxN0hEODRtbE9POS96c1h1WVk3aXdjRi94M2FlRTI0TUluNVhmUFpJeWU2aXllK2lFc04xckpRb2RhbU5DVUE0M0cwVFhTNlhqN1QzZkxBdFU5M2V5Y2VRSWV1RWpoRGZTc0ZXZUtwa1pUUkUwZGVsb0s5aW9aczVvQ0k0TnRqeG53WmRrM2dVUTBjK2YxS0FZdlg1dzl1T1FYeW5Na3VRY3NDQTY3NDBlVFZFcjhvaHA2VHRhZm5WdGhVQUsxYWN3K2xETVhOU1dDNkZwckZlalRPRnR3TCtVUVMyV2pVQXhpamgweDdmVTRWa05PcWdmVG52VTBEVDg2U1laM3RNK1FBdktRU1hQV3VLa1JnVEMzcm1qUUJsdjhFNzliVXdPMU1wNHNML1ZKais4UmNBQzhDOEYwZHVJSENOa1ljWFBCVkR6UDZGRlpYdC9TV3pDODlVMjN1dzVJMW40eDFZV1FPbDhNejIvVWFPU2NaMnZvUnZNYytiazdlTWdkc1BIS0YwYW8zdTBaUmJnRHdnK3JmMVIwOEVkMlBuWkUyQTNWTHpIMXB0U2lJbWk3NEdlbW1qT1o5bldwZVExVXJWRkhETnVSSWVZOVZVc3Z3emd4eHEvSzNtZ0lnczEybGZWeGtHc09SdmJjQUJMTFZLYWlNNHJidEhMUTlTS3F3azVPQ1NTdnIzUlVZU0dyeDVZOW5RdlYwY0IxbmY2QTdRRTZkc0Y1dmgxYUpMd0k4OUV1M0ZpL241M3VaamdqMXVGMC9WK0ZqYVE4dVk4YnhtMXNXclNGVnJKOGF1Z2lmM0tMNXZ0OW1PcHRiSkwvMEF6OUdaenZvTGYrVStiVUpVSlI3WDM1dGVDOG8wdTVJQVE9PQpzc2gtZWQyNTUxOSBBQUFBQzNOemFDMWxaREkxTlRFNUFBQUFJR2FRZUdSTlVSNFAySUVLZDF4K05pcWpmeTFPakVqZ3dUUWRYRmUwblA3Sgpzc2gtcnNhIEFBQUFCM056YUMxeWMyRUFBQUFEQVFBQkFBQUNBUUQ4ZHo1NTI2bnd6ZlZDaVF2cUtDckgzbzFyVXE3SEQ4NG1sT085L3pzWHVZWTdpd2NGL3gzYWVFMjRNSW41WGZQWkl5ZTZpeWUraUVzTjFySlFvZGFtTkNVQTQzRzBUWFM2WGo3VDNmTEF0VTkzZXljZVFJZXVFamhEZlNzRldlS3BrWlRSRTBkZWxvSzlpb1pzNW9DSTROdGp4bndaZGszZ1VRMGMrZjFLQVl2WDV3OXVPUVh5bk1rdVFjc0NBNjc0MGVUVkVyOG9ocDZUdGFmblZ0aFVBSzFhY3crbERNWE5TV0M2RnByRmVqVE9GdHdMK1VRUzJXalVBeGlqaDB4N2ZVNFZrTk9xZ2ZUbnZVMERUODZTWVozdE0rUUF2S1FTWFBXdUtrUmdUQzNybWpRQmx2OEU3OWJVd08xTXA0c0wvVkpqKzhSY0FDOEM4RjBkdUlIQ05rWWNYUEJWRHpQNkZGWlh0L1NXekM4OVUyM3V3NUkxbjR4MVlXUU9sOE16Mi9VYU9TY1oydm9Sdk1jK2JrN2VNZ2RzUEhLRjBhbzN1MFpSYmdEd2crcmYxUjA4RWQyUG5aRTJBM1ZMekgxcHRTaUltaTc0R2VtbWpPWjluV3BlUTFVclZGSEROdVJJZVk5VlVzdnd6Z3h4cS9LM21nSWdzMTJsZlZ4a0dzT1J2YmNBQkxMVkthaU00cmJ0SExROVNLcXdrNU9DU1N2cjNSVVlTR3J4NVk5blF2VjBjQjFuZjZBN1FFNmRzRjV2aDFhSkx3STg5RXUzRmkvbjUzdVpqZ2oxdUYwL1YrRmphUTh1WThieG0xc1dyU0ZWcko4YXVnaWYzS0w1dnQ5bU9wdGJKTC8wQXo5R1p6dm9MZitVK2JVSlVKUjdYMzV0ZUM4bzB1NUlBUT09CnNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRREovNXJzU0hiZXZhengzSkpuQVZRbE9aZFJnNWwxUHVSOUppRmVhMmdvNU5xTWZWNHFyUzFQbndrTlRwL1l6akxxMWRiRnc4NFFyS3JNdkFsR0RIQU9waHIyQ0ErL0ZUTXFyeGxaeU93VkVZZzJSbmEzQUJldENrVCtZdUd1ZXRQMzBVREVHaUxTWGc4djIveXZQN0tqZVE4UUpneDJSd0k0QzVaaHJ6L2JaK25UNU9rZ05PcHVCcEI3bjIwWUZwQmZqczk2cTAyL3JYZ0VJeCtVWHlpamNNVGg4Si8xNno2MHB4dkgwNUVwMEtUc1pTZTIzV0lXN0NBbDZRbkx1Q0tZV0VBZlROZWN1UEJ1UW1LRHBqWXp4SkJUalRvL2dFUjZNYlpqaE00d0h5Zml0TktWdnYzcFNHVXdvZUNIY0tmL0JmQmRGRSs4S05OSDNqMGVJZlVMCnNzaC1lZDI1NTE5IEFBQUFDM056YUMxbFpESTFOVEU1QUFBQUlEbnpyV1JVaW5RTzJWT3YwcUNKRjJRZXdBNHljVWlwV0g1M3cvdk1XTzZWIGRyaWF6YXRpCiIgPj4gL3Jvb3QvLnNzaC9hdXRob3JpemVkX2tleXMKZWNobyAiUGVybWl0VXNlckVudmlyb25tZW50IHllcyIgPj4gL2V0Yy9zc2gvc3NoZF9jb25maWcKc3lzdGVtY3RsIHJlc3RhcnQgc3NoZAo="
      + vpc_security_group_ids = [
          + "sg-03e5a485a8fd23223",
          + "sg-0a7cd8e7e7707c124",
        ]

      + block_device_mappings {
          + device_name = "/dev/sda1"

          + ebs {
              + iops        = (known after apply)
              + throughput  = (known after apply)
              + volume_size = 250
              + volume_type = (known after apply)
            }
        }

      + iam_instance_profile {
          + name = "autoscalers_instance_profile"
        }

      + metadata_options {
          + http_endpoint               = (known after apply)
          + http_protocol_ipv6          = (known after apply)
          + http_put_response_hop_limit = (known after apply)
          + http_tokens                 = (known after apply)
          + instance_metadata_tags      = (known after apply)
        }
    }

Plan: 6 to add, 3 to change, 0 to destroy.

Changes to Outputs:
  ~ fleet_config = <<-EOT
        jenkins:
          clouds: 
          
          - ec2Fleet:
              addNodeOnlyIfRunning: false
              alwaysReconnect: false
              cloudStatusIntervalSec: 10
              computerConnector:
                sSHConnector:
                  credentialsId: "jenkins"
                  launchTimeoutSeconds: 60
                  maxNumRetries: 10
                  port: 22
                  retryWaitTime: 15
                  sshHostKeyVerificationStrategy: "nonVerifyingKeyVerificationStrategy"
              disableTaskResubmit: false
              fleet: Prod-Autoscaler-Jenkins-ARM
              idleMinutes: 5
              initOnlineCheckIntervalSec: 15
              initOnlineTimeoutSec: 180
      -       labelString: "ARM"
      -       maxSize: 90
      +       labelString: "ARM ARM-SMALL ARM-DOCKER"
      +       maxSize: 2
              maxTotalUses: -1
              minSize: 2
              name: "Prod-Autoscaler-Jenkins-ARM"
              noDelayProvision: true
              numExecutors: 1
              oldId: "803939ae-c6f8-4c7a-8386-0d1a9af631ad"
              privateIpUsed: true
              region: "us-west-2"
              restrictUsage: false
              scaleExecutorsByWeight: false
          
          - ec2Fleet:
              addNodeOnlyIfRunning: false
              alwaysReconnect: false
              cloudStatusIntervalSec: 10
              computerConnector:
                sSHConnector:
                  credentialsId: "jenkins"
                  launchTimeoutSeconds: 60
                  maxNumRetries: 10
                  port: 22
                  retryWaitTime: 15
                  sshHostKeyVerificationStrategy: "nonVerifyingKeyVerificationStrategy"
              disableTaskResubmit: false
      +       fleet: Prod-Autoscaler-Jenkins-ARM-DOCKER
      +       idleMinutes: 5
      +       initOnlineCheckIntervalSec: 15
      +       initOnlineTimeoutSec: 180
      +       labelString: "ARM-DOCKER"
      +       maxSize: 45
      +       maxTotalUses: -1
      +       minSize: 0
      +       name: "Prod-Autoscaler-Jenkins-ARM-DOCKER"
      +       noDelayProvision: true
      +       numExecutors: 1
      +       oldId: "803939ae-c6f8-4c7a-8386-0d1a9af631ad"
      +       privateIpUsed: true
      +       region: "us-west-2"
      +       restrictUsage: false
      +       scaleExecutorsByWeight: false
      +   
      +   - ec2Fleet:
      +       addNodeOnlyIfRunning: false
      +       alwaysReconnect: false
      +       cloudStatusIntervalSec: 10
      +       computerConnector:
      +         sSHConnector:
      +           credentialsId: "jenkins"
      +           launchTimeoutSeconds: 60
      +           maxNumRetries: 10
      +           port: 22
      +           retryWaitTime: 15
      +           sshHostKeyVerificationStrategy: "nonVerifyingKeyVerificationStrategy"
      +       disableTaskResubmit: false
              fleet: Prod-Autoscaler-Jenkins-ARM-Small
              idleMinutes: 5
              initOnlineCheckIntervalSec: 15
              initOnlineTimeoutSec: 180
              labelString: "ARM-SMALL"
              maxSize: 90
              maxTotalUses: -1
              minSize: 0
              name: "Prod-Autoscaler-Jenkins-ARM-Small"
              noDelayProvision: true
              numExecutors: 1
              oldId: "803939ae-c6f8-4c7a-8386-0d1a9af631ad"
              privateIpUsed: true
              region: "us-west-2"
              restrictUsage: false
              scaleExecutorsByWeight: false
          
          - ec2Fleet:
              addNodeOnlyIfRunning: false
              alwaysReconnect: false
              cloudStatusIntervalSec: 10
              computerConnector:
                sSHConnector:
                  credentialsId: "jenkins"
                  launchTimeoutSeconds: 60
                  maxNumRetries: 10
                  port: 22
                  retryWaitTime: 15
                  sshHostKeyVerificationStrategy: "nonVerifyingKeyVerificationStrategy"
              disableTaskResubmit: false
              fleet: Prod-Autoscaler-Jenkins-CPU
              idleMinutes: 5
              initOnlineCheckIntervalSec: 15
              initOnlineTimeoutSec: 180
      -       labelString: "CPU"
      -       maxSize: 90
      +       labelString: "CPU CPU-SMALL CPU-DOCKER"
      +       maxSize: 6
              maxTotalUses: -1
              minSize: 6
              name: "Prod-Autoscaler-Jenkins-CPU"
              noDelayProvision: true
              numExecutors: 1
              oldId: "803939ae-c6f8-4c7a-8386-0d1a9af631ad"
              privateIpUsed: true
              region: "us-west-2"
              restrictUsage: false
              scaleExecutorsByWeight: false
          
          - ec2Fleet:
              addNodeOnlyIfRunning: false
              alwaysReconnect: false
              cloudStatusIntervalSec: 10
              computerConnector:
                sSHConnector:
                  credentialsId: "jenkins"
                  launchTimeoutSeconds: 60
                  maxNumRetries: 10
                  port: 22
                  retryWaitTime: 15
                  sshHostKeyVerificationStrategy: "nonVerifyingKeyVerificationStrategy"
              disableTaskResubmit: false
      +       fleet: Prod-Autoscaler-Jenkins-CPU-DOCKER
      +       idleMinutes: 5
      +       initOnlineCheckIntervalSec: 15
      +       initOnlineTimeoutSec: 180
      +       labelString: "CPU-DOCKER"
      +       maxSize: 45
      +       maxTotalUses: -1
      +       minSize: 0
      +       name: "Prod-Autoscaler-Jenkins-CPU-DOCKER"
      +       noDelayProvision: true
      +       numExecutors: 1
      +       oldId: "803939ae-c6f8-4c7a-8386-0d1a9af631ad"
      +       privateIpUsed: true
      +       region: "us-west-2"
      +       restrictUsage: false
      +       scaleExecutorsByWeight: false
      +   
      +   - ec2Fleet:
      +       addNodeOnlyIfRunning: false
      +       alwaysReconnect: false
      +       cloudStatusIntervalSec: 10
      +       computerConnector:
      +         sSHConnector:
      +           credentialsId: "jenkins"
      +           launchTimeoutSeconds: 60
      +           maxNumRetries: 10
      +           port: 22
      +           retryWaitTime: 15
      +           sshHostKeyVerificationStrategy: "nonVerifyingKeyVerificationStrategy"
      +       disableTaskResubmit: false
              fleet: Prod-Autoscaler-Jenkins-CPU-Small
              idleMinutes: 5
              initOnlineCheckIntervalSec: 15
              initOnlineTimeoutSec: 180
              labelString: "CPU-SMALL"
              maxSize: 100
              maxTotalUses: -1
              minSize: 0
              name: "Prod-Autoscaler-Jenkins-CPU-Small"
              noDelayProvision: true
              numExecutors: 1
              oldId: "803939ae-c6f8-4c7a-8386-0d1a9af631ad"
              privateIpUsed: true
              region: "us-west-2"
              restrictUsage: false
              scaleExecutorsByWeight: false
          
          - ec2Fleet:
              addNodeOnlyIfRunning: false
              alwaysReconnect: false
              cloudStatusIntervalSec: 10
              computerConnector:
                sSHConnector:
                  credentialsId: "jenkins"
                  launchTimeoutSeconds: 60
                  maxNumRetries: 10
                  port: 22
                  retryWaitTime: 15
                  sshHostKeyVerificationStrategy: "nonVerifyingKeyVerificationStrategy"
              disableTaskResubmit: false
              fleet: Prod-Autoscaler-Jenkins-GPU
              idleMinutes: 5
              initOnlineCheckIntervalSec: 15
              initOnlineTimeoutSec: 180
              labelString: "GPU"
              maxSize: 90
              maxTotalUses: -1
              minSize: 8
              name: "Prod-Autoscaler-Jenkins-GPU"
              noDelayProvision: true
              numExecutors: 1
              oldId: "803939ae-c6f8-4c7a-8386-0d1a9af631ad"
              privateIpUsed: true
              region: "us-west-2"
              restrictUsage: false
              scaleExecutorsByWeight: false
          
          - ec2Fleet:
              addNodeOnlyIfRunning: false
              alwaysReconnect: false
              cloudStatusIntervalSec: 10
              computerConnector:
                sSHConnector:
                  credentialsId: "jenkins"
                  launchTimeoutSeconds: 60
                  maxNumRetries: 10
                  port: 22
                  retryWaitTime: 15
                  sshHostKeyVerificationStrategy: "nonVerifyingKeyVerificationStrategy"
              disableTaskResubmit: false
              fleet: Prod-Autoscaler-Jenkins-GPU-4x
              idleMinutes: 5
              initOnlineCheckIntervalSec: 15
              initOnlineTimeoutSec: 180
      -       labelString: "GPU"
      +       labelString: "GPU GPU-DOCKER"
              maxSize: 2
              maxTotalUses: -1
              minSize: 2
              name: "Prod-Autoscaler-Jenkins-GPU-4x"
              noDelayProvision: true
              numExecutors: 1
              oldId: "803939ae-c6f8-4c7a-8386-0d1a9af631ad"
              privateIpUsed: true
              region: "us-west-2"
              restrictUsage: false
              scaleExecutorsByWeight: false
          
      +   - ec2Fleet:
      +       addNodeOnlyIfRunning: false
      +       alwaysReconnect: false
      +       cloudStatusIntervalSec: 10
      +       computerConnector:
      +         sSHConnector:
      +           credentialsId: "jenkins"
      +           launchTimeoutSeconds: 60
      +           maxNumRetries: 10
      +           port: 22
      +           retryWaitTime: 15
      +           sshHostKeyVerificationStrategy: "nonVerifyingKeyVerificationStrategy"
      +       disableTaskResubmit: false
      +       fleet: Prod-Autoscaler-Jenkins-GPU-DOCKER
      +       idleMinutes: 5
      +       initOnlineCheckIntervalSec: 15
      +       initOnlineTimeoutSec: 180
      +       labelString: "GPU-DOCKER"
      +       maxSize: 45
      +       maxTotalUses: -1
      +       minSize: 0
      +       name: "Prod-Autoscaler-Jenkins-GPU-DOCKER"
      +       noDelayProvision: true
      +       numExecutors: 1
      +       oldId: "803939ae-c6f8-4c7a-8386-0d1a9af631ad"
      +       privateIpUsed: true
      +       region: "us-west-2"
      +       restrictUsage: false
      +       scaleExecutorsByWeight: false
      +   
    EOT

📝 Plan generated in terraform #131

Copy link
Contributor

@konturn konturn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants