Skip to content

Commit ca55bf0

Browse files
committed
add support for rbac_binding_config
Signed-off-by: drfaust92 <[email protected]>
1 parent 6967a8f commit ca55bf0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+338
-39
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ Then perform the following commands on the root folder:
250250
| parallelstore\_csi\_driver | Whether the Parallelstore CSI driver Addon is enabled for this cluster. | `bool` | `null` | no |
251251
| project\_id | The project ID to host the cluster in (required) | `string` | n/a | yes |
252252
| ray\_operator\_config | The Ray Operator Addon configuration for this cluster. | <pre>object({<br> enabled = bool<br> logging_enabled = optional(bool, false)<br> monitoring_enabled = optional(bool, false)<br> })</pre> | <pre>{<br> "enabled": false,<br> "logging_enabled": false,<br> "monitoring_enabled": false<br>}</pre> | no |
253+
| rbac\_binding\_config | RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created. | <pre>object({<br> enable_insecure_binding_system_unauthenticated = optional(bool, null)<br> enable_insecure_binding_system_authenticated = optional(bool, null)<br> })</pre> | <pre>{<br> "enable_insecure_binding_system_authenticated": null,<br> "enable_insecure_binding_system_unauthenticated": null<br>}</pre> | no |
253254
| region | The region to host the cluster in (optional if zonal cluster / required if regional) | `string` | `null` | no |
254255
| regional | Whether is a regional cluster (zonal cluster if set false. WARNING: changing this after cluster creation is destructive!) | `bool` | `true` | no |
255256
| registry\_project\_ids | Projects holding Google Container Registries. If empty, we use the cluster project. If a service account is created and the `grant_registry_access` variable is set to `true`, the `storage.objectViewer` and `artifactregsitry.reader` roles are assigned on these projects. | `list(string)` | `[]` | no |

autogen/main/cluster.tf.tmpl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,14 @@ resource "google_container_cluster" "primary" {
274274
}
275275
}
276276

277+
dynamic "rbac_binding_config" {
278+
for_each = var.rbac_binding_config.enable_insecure_binding_system_unauthenticated != null || var.rbac_binding_config.enable_insecure_binding_system_authenticated != null ? [var.rbac_binding_config] : []
279+
content {
280+
enable_insecure_binding_system_unauthenticated = rbac_binding_config.value["enable_insecure_binding_system_unauthenticated"]
281+
enable_insecure_binding_system_authenticated = rbac_binding_config.value["enable_insecure_binding_system_authenticated"]
282+
}
283+
}
284+
277285
dynamic "secret_manager_config" {
278286
for_each = var.enable_secret_manager_addon ? [var.enable_secret_manager_addon] : []
279287
content {

autogen/main/variables.tf.tmpl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1149,3 +1149,15 @@ variable "ip_endpoints_enabled" {
11491149
type = bool
11501150
default = null
11511151
}
1152+
1153+
variable "rbac_binding_config" {
1154+
type = object({
1155+
enable_insecure_binding_system_unauthenticated = optional(bool, null)
1156+
enable_insecure_binding_system_authenticated = optional(bool, null)
1157+
})
1158+
description = "RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created."
1159+
default = {
1160+
enable_insecure_binding_system_unauthenticated = null
1161+
enable_insecure_binding_system_authenticated = null
1162+
}
1163+
}

autogen/main/versions.tf.tmpl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,33 +24,33 @@ terraform {
2424
required_providers {
2525
google = {
2626
source = "hashicorp/google"
27-
version = ">= 6.42.0, < 8"
27+
version = ">= 6.47.0, < 8"
2828
}
2929
google-beta = {
3030
source = "hashicorp/google-beta"
31-
version = ">= 6.42.0, < 8"
31+
version = ">= 6.47.0, < 8"
3232
}
3333
{% elif beta_cluster and autopilot_cluster %}
3434
required_providers {
3535
google = {
3636
source = "hashicorp/google"
37-
version = ">= 6.42.0, < 8"
37+
version = ">= 6.47.0, < 8"
3838
}
3939
google-beta = {
4040
source = "hashicorp/google-beta"
41-
version = ">= 6.42.0, < 8"
41+
version = ">= 6.47.0, < 8"
4242
}
4343
{% elif autopilot_cluster %}
4444
required_providers {
4545
google = {
4646
source = "hashicorp/google"
47-
version = ">= 6.42.0, < 8"
47+
version = ">= 6.47.0, < 8"
4848
}
4949
{% else %}
5050
required_providers {
5151
google = {
5252
source = "hashicorp/google"
53-
version = ">= 6.42.0, < 8"
53+
version = ">= 6.47.0, < 8"
5454
}
5555
{% endif %}
5656
kubernetes = {

cluster.tf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,14 @@ resource "google_container_cluster" "primary" {
213213
}
214214
}
215215

216+
dynamic "rbac_binding_config" {
217+
for_each = var.rbac_binding_config.enable_insecure_binding_system_unauthenticated != null || var.rbac_binding_config.enable_insecure_binding_system_authenticated != null ? [var.rbac_binding_config] : []
218+
content {
219+
enable_insecure_binding_system_unauthenticated = rbac_binding_config.value["enable_insecure_binding_system_unauthenticated"]
220+
enable_insecure_binding_system_authenticated = rbac_binding_config.value["enable_insecure_binding_system_authenticated"]
221+
}
222+
}
223+
216224
dynamic "secret_manager_config" {
217225
for_each = var.enable_secret_manager_addon ? [var.enable_secret_manager_addon] : []
218226
content {

metadata.yaml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,16 @@ spec:
754754
- name: ip_endpoints_enabled
755755
description: (Optional) Controls whether to allow direct IP access. Defaults to `true`.
756756
varType: bool
757+
- name: rbac_binding_config
758+
description: RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created.
759+
varType: |-
760+
object({
761+
enable_insecure_binding_system_unauthenticated = optional(bool, null)
762+
enable_insecure_binding_system_authenticated = optional(bool, null)
763+
})
764+
defaultValue:
765+
enable_insecure_binding_system_authenticated: null
766+
enable_insecure_binding_system_unauthenticated: null
757767
outputs:
758768
- name: ca_certificate
759769
description: Cluster ca certificate (base64 encoded)
@@ -826,7 +836,7 @@ spec:
826836
- roles/editor
827837
providerVersions:
828838
- source: hashicorp/google
829-
version: ">= 6.42.0, < 8"
839+
version: ">= 6.47.0, < 8"
830840
- source: hashicorp/kubernetes
831841
version: ~> 2.10
832842
- source: hashicorp/random

modules/beta-autopilot-private-cluster/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ Then perform the following commands on the root folder:
147147
| private\_endpoint\_subnetwork | The subnetwork to use for the hosted master network. | `string` | `null` | no |
148148
| project\_id | The project ID to host the cluster in (required) | `string` | n/a | yes |
149149
| ray\_operator\_config | The Ray Operator Addon configuration for this cluster. | <pre>object({<br> enabled = bool<br> logging_enabled = optional(bool, false)<br> monitoring_enabled = optional(bool, false)<br> })</pre> | <pre>{<br> "enabled": false,<br> "logging_enabled": false,<br> "monitoring_enabled": false<br>}</pre> | no |
150+
| rbac\_binding\_config | RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created. | <pre>object({<br> enable_insecure_binding_system_unauthenticated = optional(bool, null)<br> enable_insecure_binding_system_authenticated = optional(bool, null)<br> })</pre> | <pre>{<br> "enable_insecure_binding_system_authenticated": null,<br> "enable_insecure_binding_system_unauthenticated": null<br>}</pre> | no |
150151
| region | The region to host the cluster in (optional if zonal cluster / required if regional) | `string` | `null` | no |
151152
| regional | Whether is a regional cluster (zonal cluster if set false. WARNING: changing this after cluster creation is destructive!) | `bool` | `true` | no |
152153
| registry\_project\_ids | Projects holding Google Container Registries. If empty, we use the cluster project. If a service account is created and the `grant_registry_access` variable is set to `true`, the `storage.objectViewer` and `artifactregsitry.reader` roles are assigned on these projects. | `list(string)` | `[]` | no |

modules/beta-autopilot-private-cluster/cluster.tf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,14 @@ resource "google_container_cluster" "primary" {
133133
}
134134
}
135135

136+
dynamic "rbac_binding_config" {
137+
for_each = var.rbac_binding_config.enable_insecure_binding_system_unauthenticated != null || var.rbac_binding_config.enable_insecure_binding_system_authenticated != null ? [var.rbac_binding_config] : []
138+
content {
139+
enable_insecure_binding_system_unauthenticated = rbac_binding_config.value["enable_insecure_binding_system_unauthenticated"]
140+
enable_insecure_binding_system_authenticated = rbac_binding_config.value["enable_insecure_binding_system_authenticated"]
141+
}
142+
}
143+
136144
dynamic "secret_manager_config" {
137145
for_each = var.enable_secret_manager_addon ? [var.enable_secret_manager_addon] : []
138146
content {

modules/beta-autopilot-private-cluster/metadata.yaml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,16 @@ spec:
497497
- name: ip_endpoints_enabled
498498
description: (Optional) Controls whether to allow direct IP access. Defaults to `true`.
499499
varType: bool
500+
- name: rbac_binding_config
501+
description: RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created.
502+
varType: |-
503+
object({
504+
enable_insecure_binding_system_unauthenticated = optional(bool, null)
505+
enable_insecure_binding_system_authenticated = optional(bool, null)
506+
})
507+
defaultValue:
508+
enable_insecure_binding_system_authenticated: null
509+
enable_insecure_binding_system_unauthenticated: null
500510
outputs:
501511
- name: ca_certificate
502512
description: Cluster ca certificate (base64 encoded)
@@ -569,9 +579,9 @@ spec:
569579
- roles/editor
570580
providerVersions:
571581
- source: hashicorp/google
572-
version: ">= 6.42.0, < 8"
582+
version: ">= 6.47.0, < 8"
573583
- source: hashicorp/google-beta
574-
version: ">= 6.42.0, < 8"
584+
version: ">= 6.47.0, < 8"
575585
- source: hashicorp/kubernetes
576586
version: ~> 2.10
577587
- source: hashicorp/random

modules/beta-autopilot-private-cluster/variables.tf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -662,3 +662,15 @@ variable "ip_endpoints_enabled" {
662662
type = bool
663663
default = null
664664
}
665+
666+
variable "rbac_binding_config" {
667+
type = object({
668+
enable_insecure_binding_system_unauthenticated = optional(bool, null)
669+
enable_insecure_binding_system_authenticated = optional(bool, null)
670+
})
671+
description = "RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created."
672+
default = {
673+
enable_insecure_binding_system_unauthenticated = null
674+
enable_insecure_binding_system_authenticated = null
675+
}
676+
}

0 commit comments

Comments
 (0)