diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e1097596..2ff19b166 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [7.1.0](https://github.com/cattle-ops/terraform-aws-gitlab-runner/compare/7.0.0...7.1.0) (2023-09-28) + + +### Features + +* add `MaxGrowthRate` to limit the number of instances added in parallel ([#962](https://github.com/cattle-ops/terraform-aws-gitlab-runner/issues/962)) ([ae6d38a](https://github.com/cattle-ops/terraform-aws-gitlab-runner/commit/ae6d38a93b07ccddfa19e15340a7a202e40e5961)) + + +### Bug Fixes + +* convert the fleet instance type in migration script ([#975](https://github.com/cattle-ops/terraform-aws-gitlab-runner/issues/975)) ([51b2842](https://github.com/cattle-ops/terraform-aws-gitlab-runner/commit/51b2842423488a8a17f903de6691dd932a5771f2)) + ## [7.0.0](https://github.com/cattle-ops/terraform-aws-gitlab-runner/compare/6.5.2...7.0.0) (2023-09-09) diff --git a/README.md b/README.md index 92cedafd7..934c07d00 100644 --- a/README.md +++ b/README.md @@ -610,7 +610,7 @@ Made with [contributors-img](https://contrib.rocks). | [runner\_worker\_docker\_machine\_ec2\_options](#input\_runner\_worker\_docker\_machine\_ec2\_options) | List of additional options for the docker+machine config. Each element of this list must be a key=value pair. E.g. '["amazonec2-zone=a"]' | `list(string)` | `[]` | no | | [runner\_worker\_docker\_machine\_extra\_egress\_rules](#input\_runner\_worker\_docker\_machine\_extra\_egress\_rules) | List of egress rules for the Runner Workers. |
list(object({
cidr_blocks = list(string)
ipv6_cidr_blocks = list(string)
prefix_list_ids = list(string)
from_port = number
protocol = string
security_groups = list(string)
self = bool
to_port = number
description = string
}))
|
[
{
"cidr_blocks": [
"0.0.0.0/0"
],
"description": "Allow all egress traffic for Runner Workers.",
"from_port": 0,
"ipv6_cidr_blocks": [
"::/0"
],
"prefix_list_ids": null,
"protocol": "-1",
"security_groups": null,
"self": null,
"to_port": 0
}
]
| no | | [runner\_worker\_docker\_machine\_fleet](#input\_runner\_worker\_docker\_machine\_fleet) | enable = Activates the fleet mode on the Runner. https://gitlab.com/cki-project/docker-machine/-/blob/v0.16.2-gitlab.19-cki.2/docs/drivers/aws.md#fleet-mode
key\_pair\_name = The name of the key pair used by the Runner to connect to the docker-machine Runner Workers. This variable is only supported when `enables` is set to `true`. |
object({
enable = bool
key_pair_name = optional(string, "fleet-key")
})
|
{
"enable": false
}
| no | -| [runner\_worker\_docker\_machine\_instance](#input\_runner\_worker\_docker\_machine\_instance) | For detailed documentation check https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runnersmachine-section

docker\_registry\_mirror\_url = The URL of the Docker registry mirror to use for the Runner Worker.
destroy\_after\_max\_builds = Destroy the instance after the maximum number of builds has been reached.
ebs\_optimized = Enable EBS optimization for the Runner Worker.
idle\_count = Number of idle Runner Worker instances (not working for the Docker Runner Worker) (IdleCount).
idle\_time = Idle time of the Runner Worker before they are destroyed (not working for the Docker Runner Worker) (IdleTime).
monitoring = Enable detailed monitoring for the Runner Worker.
name\_prefix = Set the name prefix and override the `Name` tag for the Runner Worker.
private\_address\_only = Restrict Runner Worker to the use of a private IP address. If `runner_instance.use_private_address_only` is set to `true` (default), `runner_worker_docker_machine_instance.private_address_only` will also apply for the Runner.
root\_size = The size of the root volume for the Runner Worker.
start\_script = Cloud-init user data that will be passed to the Runner Worker. Should not be base64 encrypted.
subnet\_ids = The list of subnet IDs to use for the Runner Worker when the fleet mode is enabled.
types = The type of instance to use for the Runner Worker. In case of fleet mode, multiple instance types are supported.
volume\_type = The type of volume to use for the Runner Worker. |
object({
destroy_after_max_builds = optional(number, 0)
docker_registry_mirror_url = optional(string, "")
ebs_optimized = optional(bool, true)
idle_count = optional(number, 0)
idle_time = optional(number, 600)
monitoring = optional(bool, false)
name_prefix = optional(string, "")
private_address_only = optional(bool, true)
root_size = optional(number, 8)
start_script = optional(string, "")
subnet_ids = optional(list(string), [])
types = optional(list(string), ["m5.large"])
volume_type = optional(string, "gp2")
})
| `{}` | no | +| [runner\_worker\_docker\_machine\_instance](#input\_runner\_worker\_docker\_machine\_instance) | For detailed documentation check https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runnersmachine-section

docker\_registry\_mirror\_url = The URL of the Docker registry mirror to use for the Runner Worker.
destroy\_after\_max\_builds = Destroy the instance after the maximum number of builds has been reached.
ebs\_optimized = Enable EBS optimization for the Runner Worker.
idle\_count = Number of idle Runner Worker instances (not working for the Docker Runner Worker) (IdleCount).
idle\_time = Idle time of the Runner Worker before they are destroyed (not working for the Docker Runner Worker) (IdleTime).
max\_growth\_rate = The maximum number of machines that can be added to the runner in parallel.
monitoring = Enable detailed monitoring for the Runner Worker.
name\_prefix = Set the name prefix and override the `Name` tag for the Runner Worker.
private\_address\_only = Restrict Runner Worker to the use of a private IP address. If `runner_instance.use_private_address_only` is set to `true` (default), `runner_worker_docker_machine_instance.private_address_only` will also apply for the Runner.
root\_size = The size of the root volume for the Runner Worker.
start\_script = Cloud-init user data that will be passed to the Runner Worker. Should not be base64 encrypted.
subnet\_ids = The list of subnet IDs to use for the Runner Worker when the fleet mode is enabled.
types = The type of instance to use for the Runner Worker. In case of fleet mode, multiple instance types are supported.
volume\_type = The type of volume to use for the Runner Worker. |
object({
destroy_after_max_builds = optional(number, 0)
docker_registry_mirror_url = optional(string, "")
ebs_optimized = optional(bool, true)
idle_count = optional(number, 0)
idle_time = optional(number, 600)
max_growth_rate = optional(number, 0)
monitoring = optional(bool, false)
name_prefix = optional(string, "")
private_address_only = optional(bool, true)
root_size = optional(number, 8)
start_script = optional(string, "")
subnet_ids = optional(list(string), [])
types = optional(list(string), ["m5.large"])
volume_type = optional(string, "gp2")
})
| `{}` | no | | [runner\_worker\_docker\_machine\_instance\_spot](#input\_runner\_worker\_docker\_machine\_instance\_spot) | enable = Enable spot instances for the Runner Worker.
max\_price = The maximum price willing to pay. By default the price is limited by the current on demand price for the instance type chosen. |
object({
enable = optional(bool, true)
max_price = optional(string, "on-demand-price")
})
| `{}` | no | | [runner\_worker\_docker\_machine\_role](#input\_runner\_worker\_docker\_machine\_role) | additional\_tags = Map of tags that will be added to the Runner Worker.
assume\_role\_policy\_json = Assume role policy for the Runner Worker.
policy\_arns = List of ARNs of IAM policies to attach to the Runner Workers.
profile\_name = Name of the IAM profile to attach to the Runner Workers. |
object({
additional_tags = optional(map(string), {})
assume_role_policy_json = optional(string, "")
policy_arns = optional(list(string), [])
profile_name = optional(string, "")
})
| `{}` | no | | [runner\_worker\_docker\_machine\_security\_group\_description](#input\_runner\_worker\_docker\_machine\_security\_group\_description) | A description for the Runner Worker security group | `string` | `"A security group containing Runner Worker instances"` | no | diff --git a/examples/runner-default/README.md b/examples/runner-default/README.md index 268bccd50..51d22c3c1 100644 --- a/examples/runner-default/README.md +++ b/examples/runner-default/README.md @@ -30,7 +30,7 @@ check `.terraform-version` for the tested version. | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1 | -| [aws](#requirement\_aws) | 5.14.0 | +| [aws](#requirement\_aws) | 5.15.0 | | [local](#requirement\_local) | 2.4.0 | | [null](#requirement\_null) | 3.2.1 | | [random](#requirement\_random) | 3.5.1 | @@ -54,8 +54,8 @@ check `.terraform-version` for the tested version. | Name | Type | |------|------| -| [aws_availability_zones.available](https://registry.terraform.io/providers/hashicorp/aws/5.14.0/docs/data-sources/availability_zones) | data source | -| [aws_security_group.default](https://registry.terraform.io/providers/hashicorp/aws/5.14.0/docs/data-sources/security_group) | data source | +| [aws_availability_zones.available](https://registry.terraform.io/providers/hashicorp/aws/5.15.0/docs/data-sources/availability_zones) | data source | +| [aws_security_group.default](https://registry.terraform.io/providers/hashicorp/aws/5.15.0/docs/data-sources/security_group) | data source | ## Inputs diff --git a/examples/runner-public/README.md b/examples/runner-public/README.md index 5e947c6fb..f097258f3 100644 --- a/examples/runner-public/README.md +++ b/examples/runner-public/README.md @@ -30,7 +30,7 @@ check `.terraform-version` for the tested version. | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1 | -| [aws](#requirement\_aws) | 5.14.0 | +| [aws](#requirement\_aws) | 5.15.0 | | [local](#requirement\_local) | 2.4.0 | | [null](#requirement\_null) | 3.2.1 | | [random](#requirement\_random) | 3.5.1 | @@ -40,7 +40,7 @@ check `.terraform-version` for the tested version. | Name | Version | |------|---------| -| [aws](#provider\_aws) | 5.14.0 | +| [aws](#provider\_aws) | 5.15.0 | ## Modules @@ -55,7 +55,7 @@ check `.terraform-version` for the tested version. | Name | Type | |------|------| -| [aws_availability_zones.available](https://registry.terraform.io/providers/hashicorp/aws/5.14.0/docs/data-sources/availability_zones) | data source | +| [aws_availability_zones.available](https://registry.terraform.io/providers/hashicorp/aws/5.15.0/docs/data-sources/availability_zones) | data source | ## Inputs