Skip to content

Commit 63302c0

Browse files
authored
fix(regional-service): regional-cpu-idle pass through (#1081)
### What Fix mistakes in #1048 - actually pass through the regional-cpu-idle parameter from regional-go-service to regional-service - remove the default of `true` from `cpu_idle` in resources, as this was shadowing the `regional-cpu-idle` setting even when not explicitly set ### Why - chainguard-dev/internal-dev#20110 We still want to toggle `cpu_idle` on a regional basis. Based on testing I did in my dev environment elsewhere.
1 parent 20ec35f commit 63302c0

File tree

5 files changed

+16
-19
lines changed

5 files changed

+16
-19
lines changed

modules/regional-go-service/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ No requirements.
9797

9898
| Name | Description | Type | Default | Required |
9999
|------|-------------|------|---------|:--------:|
100-
| <a name="input_containers"></a> [containers](#input\_containers) | The containers to run in the service. Each container will be run in each region. | <pre>map(object({<br/> source = object({<br/> base_image = optional(string, "cgr.dev/chainguard/static:latest-glibc@sha256:7124bf9a6f70e0750d14ef16f1791f322f6d62f50a49223a709f7ed41644c353")<br/> working_dir = string<br/> importpath = string<br/> env = optional(list(string), [])<br/> })<br/> args = optional(list(string), [])<br/> ports = optional(list(object({<br/> name = optional(string, "http1")<br/> container_port = number<br/> })), [])<br/> resources = optional(<br/> object(<br/> {<br/> limits = optional(object(<br/> {<br/> cpu = string<br/> memory = string<br/> }<br/> ), null)<br/> cpu_idle = optional(bool, true)<br/> startup_cpu_boost = optional(bool, true)<br/> }<br/> ),<br/> {<br/> cpu_idle = true<br/> }<br/> )<br/> env = optional(list(object({<br/> name = string<br/> value = optional(string)<br/> value_source = optional(object({<br/> secret_key_ref = object({<br/> secret = string<br/> version = string<br/> })<br/> }), null)<br/> })), [])<br/> regional-env = optional(list(object({<br/> name = string<br/> value = map(string)<br/> })), [])<br/> regional-cpu-idle = optional(map(bool), {})<br/> volume_mounts = optional(list(object({<br/> name = string<br/> mount_path = string<br/> })), [])<br/> startup_probe = optional(object({<br/> initial_delay_seconds = optional(number)<br/> // GCP Terraform provider defaults differ from Cloud Run defaults.<br/> // See https://cloud.google.com/run/docs/configuring/healthchecks#tcp-startup-probe<br/> period_seconds = optional(number, 240)<br/> timeout_seconds = optional(number, 240)<br/> failure_threshold = optional(number, 1)<br/> http_get = optional(object({<br/> path = string<br/> port = optional(number)<br/> }), null)<br/> tcp_socket = optional(object({<br/> port = optional(number)<br/> }), null)<br/> grpc = optional(object({<br/> service = optional(string)<br/> port = optional(number)<br/> }), null)<br/> }))<br/> liveness_probe = optional(object({<br/> initial_delay_seconds = optional(number)<br/> // GCP Terraform provider defaults differ from Cloud Run defaults.<br/> // See https://cloud.google.com/run/docs/configuring/healthchecks#tcp-startup-probe<br/> period_seconds = optional(number, 240)<br/> timeout_seconds = optional(number, 240)<br/> failure_threshold = optional(number, 1)<br/> http_get = optional(object({<br/> path = string<br/> port = optional(number)<br/> }), null)<br/> tcp_socket = optional(object({<br/> port = optional(number)<br/> }), null)<br/> grpc = optional(object({<br/> service = optional(string)<br/> port = optional(number)<br/> }), null)<br/> }))<br/> }))</pre> | n/a | yes |
100+
| <a name="input_containers"></a> [containers](#input\_containers) | The containers to run in the service. Each container will be run in each region. | <pre>map(object({<br/> source = object({<br/> base_image = optional(string, "cgr.dev/chainguard/static:latest-glibc@sha256:7124bf9a6f70e0750d14ef16f1791f322f6d62f50a49223a709f7ed41644c353")<br/> working_dir = string<br/> importpath = string<br/> env = optional(list(string), [])<br/> })<br/> args = optional(list(string), [])<br/> ports = optional(list(object({<br/> name = optional(string, "http1")<br/> container_port = number<br/> })), [])<br/> resources = optional(<br/> object(<br/> {<br/> limits = optional(object(<br/> {<br/> cpu = string<br/> memory = string<br/> }<br/> ), null)<br/> cpu_idle = optional(bool)<br/> startup_cpu_boost = optional(bool, true)<br/> }<br/> ),<br/> {}<br/> )<br/> env = optional(list(object({<br/> name = string<br/> value = optional(string)<br/> value_source = optional(object({<br/> secret_key_ref = object({<br/> secret = string<br/> version = string<br/> })<br/> }), null)<br/> })), [])<br/> regional-env = optional(list(object({<br/> name = string<br/> value = map(string)<br/> })), [])<br/> regional-cpu-idle = optional(map(bool), {})<br/> volume_mounts = optional(list(object({<br/> name = string<br/> mount_path = string<br/> })), [])<br/> startup_probe = optional(object({<br/> initial_delay_seconds = optional(number)<br/> // GCP Terraform provider defaults differ from Cloud Run defaults.<br/> // See https://cloud.google.com/run/docs/configuring/healthchecks#tcp-startup-probe<br/> period_seconds = optional(number, 240)<br/> timeout_seconds = optional(number, 240)<br/> failure_threshold = optional(number, 1)<br/> http_get = optional(object({<br/> path = string<br/> port = optional(number)<br/> }), null)<br/> tcp_socket = optional(object({<br/> port = optional(number)<br/> }), null)<br/> grpc = optional(object({<br/> service = optional(string)<br/> port = optional(number)<br/> }), null)<br/> }))<br/> liveness_probe = optional(object({<br/> initial_delay_seconds = optional(number)<br/> // GCP Terraform provider defaults differ from Cloud Run defaults.<br/> // See https://cloud.google.com/run/docs/configuring/healthchecks#tcp-startup-probe<br/> period_seconds = optional(number, 240)<br/> timeout_seconds = optional(number, 240)<br/> failure_threshold = optional(number, 1)<br/> http_get = optional(object({<br/> path = string<br/> port = optional(number)<br/> }), null)<br/> tcp_socket = optional(object({<br/> port = optional(number)<br/> }), null)<br/> grpc = optional(object({<br/> service = optional(string)<br/> port = optional(number)<br/> }), null)<br/> }))<br/> }))</pre> | n/a | yes |
101101
| <a name="input_deletion_protection"></a> [deletion\_protection](#input\_deletion\_protection) | Whether to enable delete protection for the service. | `bool` | `true` | no |
102102
| <a name="input_egress"></a> [egress](#input\_egress) | Which type of egress traffic to send through the VPC.<br/><br/>- ALL\_TRAFFIC sends all traffic through regional VPC network. This should be used if service is not expected to egress to the Internet.<br/>- PRIVATE\_RANGES\_ONLY sends only traffic to private IP addresses through regional VPC network | `string` | `"ALL_TRAFFIC"` | no |
103103
| <a name="input_enable_profiler"></a> [enable\_profiler](#input\_enable\_profiler) | Enable cloud profiler. | `bool` | `false` | no |

modules/regional-go-service/main.tf

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,16 @@ module "this" {
3434
service_account = var.service_account
3535
containers = {
3636
for name, container in var.containers : name => {
37-
image = cosign_sign.this[name].signed_ref
38-
args = container.args
39-
ports = container.ports
40-
resources = container.resources
41-
env = container.env
42-
regional-env = container.regional-env
43-
volume_mounts = container.volume_mounts
44-
startup_probe = container.startup_probe
45-
liveness_probe = container.liveness_probe
37+
image = cosign_sign.this[name].signed_ref
38+
args = container.args
39+
ports = container.ports
40+
resources = container.resources
41+
env = container.env
42+
regional-env = container.regional-env
43+
regional-cpu-idle = container.regional-cpu-idle
44+
volume_mounts = container.volume_mounts
45+
startup_probe = container.startup_probe
46+
liveness_probe = container.liveness_probe
4647
}
4748
}
4849

modules/regional-go-service/variables.tf

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,11 @@ variable "containers" {
7171
memory = string
7272
}
7373
), null)
74-
cpu_idle = optional(bool, true)
74+
cpu_idle = optional(bool)
7575
startup_cpu_boost = optional(bool, true)
7676
}
7777
),
78-
{
79-
cpu_idle = true
80-
}
78+
{}
8179
)
8280
env = optional(list(object({
8381
name = string

modules/regional-service/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ No modules.
8686

8787
| Name | Description | Type | Default | Required |
8888
|------|-------------|------|---------|:--------:|
89-
| <a name="input_containers"></a> [containers](#input\_containers) | The containers to run in the service. Each container will be run in each region. | <pre>map(object({<br/> image = string<br/> args = optional(list(string), [])<br/> ports = optional(list(object({<br/> name = optional(string, "http1")<br/> container_port = number<br/> })), [])<br/> resources = optional(<br/> object(<br/> {<br/> limits = optional(object(<br/> {<br/> cpu = string<br/> memory = string<br/> }<br/> ), null)<br/> cpu_idle = optional(bool, true)<br/> startup_cpu_boost = optional(bool, true)<br/> }<br/> ),<br/> {<br/> cpu_idle = true<br/> }<br/> )<br/> env = optional(list(object({<br/> name = string<br/> value = optional(string)<br/> value_source = optional(object({<br/> secret_key_ref = object({<br/> secret = string<br/> version = string<br/> })<br/> }), null)<br/> })), [])<br/> regional-env = optional(list(object({<br/> name = string<br/> value = map(string)<br/> })), [])<br/> regional-cpu-idle = optional(map(bool), {})<br/> volume_mounts = optional(list(object({<br/> name = string<br/> mount_path = string<br/> })), [])<br/> startup_probe = optional(object({<br/> initial_delay_seconds = optional(number)<br/> // GCP Terraform provider defaults differ from Cloud Run defaults.<br/> // See https://cloud.google.com/run/docs/configuring/healthchecks#tcp-startup-probe<br/> period_seconds = optional(number, 240)<br/> timeout_seconds = optional(number, 240)<br/> failure_threshold = optional(number, 1)<br/> http_get = optional(object({<br/> path = string<br/> port = optional(number)<br/> }), null)<br/> tcp_socket = optional(object({<br/> port = optional(number)<br/> }), null)<br/> grpc = optional(object({<br/> service = optional(string)<br/> port = optional(number)<br/> }), null)<br/> }))<br/> liveness_probe = optional(object({<br/> initial_delay_seconds = optional(number)<br/> // GCP Terraform provider defaults differ from Cloud Run defaults.<br/> // See https://cloud.google.com/run/docs/configuring/healthchecks#tcp-startup-probe<br/> period_seconds = optional(number, 240)<br/> timeout_seconds = optional(number, 240)<br/> failure_threshold = optional(number, 1)<br/> http_get = optional(object({<br/> path = string<br/> port = optional(number)<br/> }), null)<br/> tcp_socket = optional(object({<br/> port = optional(number)<br/> }), null)<br/> grpc = optional(object({<br/> service = optional(string)<br/> port = optional(number)<br/> }), null)<br/> }))<br/> }))</pre> | n/a | yes |
89+
| <a name="input_containers"></a> [containers](#input\_containers) | The containers to run in the service. Each container will be run in each region. | <pre>map(object({<br/> image = string<br/> args = optional(list(string), [])<br/> ports = optional(list(object({<br/> name = optional(string, "http1")<br/> container_port = number<br/> })), [])<br/> resources = optional(<br/> object(<br/> {<br/> limits = optional(object(<br/> {<br/> cpu = string<br/> memory = string<br/> }<br/> ), null)<br/> cpu_idle = optional(bool)<br/> startup_cpu_boost = optional(bool, true)<br/> }<br/> ),<br/> {}<br/> )<br/> env = optional(list(object({<br/> name = string<br/> value = optional(string)<br/> value_source = optional(object({<br/> secret_key_ref = object({<br/> secret = string<br/> version = string<br/> })<br/> }), null)<br/> })), [])<br/> regional-env = optional(list(object({<br/> name = string<br/> value = map(string)<br/> })), [])<br/> regional-cpu-idle = optional(map(bool), {})<br/> volume_mounts = optional(list(object({<br/> name = string<br/> mount_path = string<br/> })), [])<br/> startup_probe = optional(object({<br/> initial_delay_seconds = optional(number)<br/> // GCP Terraform provider defaults differ from Cloud Run defaults.<br/> // See https://cloud.google.com/run/docs/configuring/healthchecks#tcp-startup-probe<br/> period_seconds = optional(number, 240)<br/> timeout_seconds = optional(number, 240)<br/> failure_threshold = optional(number, 1)<br/> http_get = optional(object({<br/> path = string<br/> port = optional(number)<br/> }), null)<br/> tcp_socket = optional(object({<br/> port = optional(number)<br/> }), null)<br/> grpc = optional(object({<br/> service = optional(string)<br/> port = optional(number)<br/> }), null)<br/> }))<br/> liveness_probe = optional(object({<br/> initial_delay_seconds = optional(number)<br/> // GCP Terraform provider defaults differ from Cloud Run defaults.<br/> // See https://cloud.google.com/run/docs/configuring/healthchecks#tcp-startup-probe<br/> period_seconds = optional(number, 240)<br/> timeout_seconds = optional(number, 240)<br/> failure_threshold = optional(number, 1)<br/> http_get = optional(object({<br/> path = string<br/> port = optional(number)<br/> }), null)<br/> tcp_socket = optional(object({<br/> port = optional(number)<br/> }), null)<br/> grpc = optional(object({<br/> service = optional(string)<br/> port = optional(number)<br/> }), null)<br/> }))<br/> }))</pre> | n/a | yes |
9090
| <a name="input_deletion_protection"></a> [deletion\_protection](#input\_deletion\_protection) | Whether to enable delete protection for the service. | `bool` | `true` | no |
9191
| <a name="input_egress"></a> [egress](#input\_egress) | Which type of egress traffic to send through the VPC.<br/><br/>- ALL\_TRAFFIC sends all traffic through regional VPC network<br/>- PRIVATE\_RANGES\_ONLY sends only traffic to private IP addresses through regional VPC network | `string` | `"ALL_TRAFFIC"` | no |
9292
| <a name="input_enable_profiler"></a> [enable\_profiler](#input\_enable\_profiler) | Enable cloud profiler. | `bool` | `false` | no |

modules/regional-service/variables.tf

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,11 @@ variable "containers" {
6666
memory = string
6767
}
6868
), null)
69-
cpu_idle = optional(bool, true)
69+
cpu_idle = optional(bool)
7070
startup_cpu_boost = optional(bool, true)
7171
}
7272
),
73-
{
74-
cpu_idle = true
75-
}
73+
{}
7674
)
7775
env = optional(list(object({
7876
name = string

0 commit comments

Comments
 (0)