From c046af17aa9da70b3a639aaf025e3c4084dcb692 Mon Sep 17 00:00:00 2001 From: genlu2011 Date: Fri, 9 Aug 2024 17:41:55 -0700 Subject: [PATCH] feat(TPG>=5.40.0)!: Add support for RayOperator Addon (#2032) Co-authored-by: Gen Lu Co-authored-by: Andrew Peabody --- README.md | 1 + autogen/main/cluster.tf.tmpl | 17 +++++++++++++++++ autogen/main/main.tf.tmpl | 1 + autogen/main/variables.tf.tmpl | 14 ++++++++++++++ autogen/main/versions.tf.tmpl | 6 +++--- cluster.tf | 17 +++++++++++++++++ examples/simple_autopilot_public/main.tf | 7 ++++++- main.tf | 1 + .../beta-autopilot-private-cluster/README.md | 1 + .../beta-autopilot-private-cluster/cluster.tf | 17 +++++++++++++++++ modules/beta-autopilot-private-cluster/main.tf | 1 + .../beta-autopilot-private-cluster/variables.tf | 14 ++++++++++++++ .../beta-autopilot-private-cluster/versions.tf | 4 ++-- modules/beta-autopilot-public-cluster/README.md | 1 + .../beta-autopilot-public-cluster/cluster.tf | 17 +++++++++++++++++ modules/beta-autopilot-public-cluster/main.tf | 1 + .../beta-autopilot-public-cluster/variables.tf | 14 ++++++++++++++ .../beta-autopilot-public-cluster/versions.tf | 4 ++-- .../README.md | 1 + .../cluster.tf | 17 +++++++++++++++++ .../beta-private-cluster-update-variant/main.tf | 1 + .../variables.tf | 14 ++++++++++++++ .../versions.tf | 4 ++-- modules/beta-private-cluster/README.md | 1 + modules/beta-private-cluster/cluster.tf | 17 +++++++++++++++++ modules/beta-private-cluster/main.tf | 1 + modules/beta-private-cluster/variables.tf | 14 ++++++++++++++ modules/beta-private-cluster/versions.tf | 4 ++-- .../README.md | 1 + .../cluster.tf | 17 +++++++++++++++++ .../beta-public-cluster-update-variant/main.tf | 1 + .../variables.tf | 14 ++++++++++++++ .../versions.tf | 4 ++-- modules/beta-public-cluster/README.md | 1 + modules/beta-public-cluster/cluster.tf | 17 +++++++++++++++++ modules/beta-public-cluster/main.tf | 1 + modules/beta-public-cluster/variables.tf | 14 ++++++++++++++ modules/beta-public-cluster/versions.tf | 4 ++-- .../private-cluster-update-variant/README.md | 1 + .../private-cluster-update-variant/cluster.tf | 17 +++++++++++++++++ modules/private-cluster-update-variant/main.tf | 1 + .../private-cluster-update-variant/variables.tf | 14 ++++++++++++++ .../private-cluster-update-variant/versions.tf | 2 +- modules/private-cluster/README.md | 1 + modules/private-cluster/cluster.tf | 17 +++++++++++++++++ modules/private-cluster/main.tf | 1 + modules/private-cluster/variables.tf | 14 ++++++++++++++ modules/private-cluster/versions.tf | 2 +- .../simple_autopiliot_public_test.go | 3 +++ .../testdata/TestSimpleAutopilotPublic.json | 9 +++++++++ variables.tf | 14 ++++++++++++++ versions.tf | 2 +- 52 files changed, 365 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index e8ebc58119..53b69a88b9 100644 --- a/README.md +++ b/README.md @@ -228,6 +228,7 @@ Then perform the following commands on the root folder: | notification\_config\_topic | The desired Pub/Sub topic to which notifications will be sent by GKE. Format is projects/{project}/topics/{topic}. | `string` | `""` | no | | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | | project\_id | The project ID to host the cluster in (required) | `string` | n/a | yes | +| ray\_operator\_config | The Ray Operator Addon configuration for this cluster. |
object({
enabled = bool
logging_enabled = optional(bool, false)
monitoring_enabled = optional(bool, false)
})
|
{
"enabled": false,
"logging_enabled": false,
"monitoring_enabled": false
}
| no | | region | The region to host the cluster in (optional if zonal cluster / required if regional) | `string` | `null` | no | | regional | Whether is a regional cluster (zonal cluster if set false. WARNING: changing this after cluster creation is destructive!) | `bool` | `true` | no | | 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 | diff --git a/autogen/main/cluster.tf.tmpl b/autogen/main/cluster.tf.tmpl index ab87a61aae..fcf57318b5 100644 --- a/autogen/main/cluster.tf.tmpl +++ b/autogen/main/cluster.tf.tmpl @@ -361,6 +361,23 @@ resource "google_container_cluster" "primary" { enabled = stateful_ha_config.value.enabled } } + + dynamic "ray_operator_config" { + for_each = local.ray_operator_config + + content { + + enabled = ray_operator_config.value.enabled + + ray_cluster_logging_config { + enabled = ray_operator_config.value.logging_enabled + } + ray_cluster_monitoring_config { + enabled = ray_operator_config.value.monitoring_enabled + } + } + } + {% if beta_cluster and autopilot_cluster != true %} istio_config { disabled = !var.istio diff --git a/autogen/main/main.tf.tmpl b/autogen/main/main.tf.tmpl index 5356f7dd69..8872676a67 100644 --- a/autogen/main/main.tf.tmpl +++ b/autogen/main/main.tf.tmpl @@ -111,6 +111,7 @@ locals { gke_backup_agent_config = var.gke_backup_agent_config ? [{ enabled = true }] : [{ enabled = false }] gcs_fuse_csi_driver_config = var.gcs_fuse_csi_driver ? [{ enabled = true }] : [] stateful_ha_config = var.stateful_ha ? [{ enabled = true }] : [] + ray_operator_config = length(var.ray_operator_config) > 0 && lookup(var.ray_operator_config, "enabled", false)? [var.ray_operator_config]: [] {% if beta_cluster and autopilot_cluster != true %} cluster_cloudrun_config_load_balancer_config = (var.cloudrun && var.cloudrun_load_balancer_type != "") ? { load_balancer_type = var.cloudrun_load_balancer_type diff --git a/autogen/main/variables.tf.tmpl b/autogen/main/variables.tf.tmpl index 46f93dc6f9..da6fb485b3 100644 --- a/autogen/main/variables.tf.tmpl +++ b/autogen/main/variables.tf.tmpl @@ -814,6 +814,20 @@ variable "stateful_ha" { default = false } +variable "ray_operator_config" { + type = object({ + enabled = bool + logging_enabled = optional(bool, false) + monitoring_enabled = optional(bool, false) + }) + description = "The Ray Operator Addon configuration for this cluster." + default = { + enabled = false + logging_enabled = false + monitoring_enabled = false + } +} + variable "timeouts" { type = map(string) description = "Timeout for cluster operations." diff --git a/autogen/main/versions.tf.tmpl b/autogen/main/versions.tf.tmpl index 059774ef6c..2d7999f3fd 100644 --- a/autogen/main/versions.tf.tmpl +++ b/autogen/main/versions.tf.tmpl @@ -24,11 +24,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } google-beta = { source = "hashicorp/google-beta" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } kubernetes = { source = "hashicorp/kubernetes" @@ -46,7 +46,7 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 5.25.0, < 6" + version = ">= 5.40.0, < 6" } kubernetes = { source = "hashicorp/kubernetes" diff --git a/cluster.tf b/cluster.tf index 69536aaba6..edc2d074df 100644 --- a/cluster.tf +++ b/cluster.tf @@ -280,6 +280,23 @@ resource "google_container_cluster" "primary" { enabled = stateful_ha_config.value.enabled } } + + dynamic "ray_operator_config" { + for_each = local.ray_operator_config + + content { + + enabled = ray_operator_config.value.enabled + + ray_cluster_logging_config { + enabled = ray_operator_config.value.logging_enabled + } + ray_cluster_monitoring_config { + enabled = ray_operator_config.value.monitoring_enabled + } + } + } + } datapath_provider = var.datapath_provider diff --git a/examples/simple_autopilot_public/main.tf b/examples/simple_autopilot_public/main.tf index 38741490cb..7a760bc60c 100644 --- a/examples/simple_autopilot_public/main.tf +++ b/examples/simple_autopilot_public/main.tf @@ -44,7 +44,7 @@ module "gke" { subnetwork = local.subnet_names[index(module.gcp-network.subnets_names, local.subnet_name)] ip_range_pods = local.pods_range_name ip_range_services = local.svc_range_name - release_channel = "REGULAR" + release_channel = "RAPID" enable_vertical_pod_autoscaling = true network_tags = [local.cluster_type] deletion_protection = false @@ -52,4 +52,9 @@ module "gke" { gcs_fuse_csi_driver = true stateful_ha = false gke_backup_agent_config = false + ray_operator_config = { + enabled = true + logging_enabled = true + monitoring_enabled = true + } } diff --git a/main.tf b/main.tf index f7bb8b486b..4f91f356d6 100644 --- a/main.tf +++ b/main.tf @@ -95,6 +95,7 @@ locals { gke_backup_agent_config = var.gke_backup_agent_config ? [{ enabled = true }] : [{ enabled = false }] gcs_fuse_csi_driver_config = var.gcs_fuse_csi_driver ? [{ enabled = true }] : [] stateful_ha_config = var.stateful_ha ? [{ enabled = true }] : [] + ray_operator_config = length(var.ray_operator_config) > 0 && lookup(var.ray_operator_config, "enabled", false) ? [var.ray_operator_config] : [] cluster_authenticator_security_group = var.authenticator_security_group == null ? [] : [{ security_group = var.authenticator_security_group diff --git a/modules/beta-autopilot-private-cluster/README.md b/modules/beta-autopilot-private-cluster/README.md index bddbd67667..f2cfe4a8d4 100644 --- a/modules/beta-autopilot-private-cluster/README.md +++ b/modules/beta-autopilot-private-cluster/README.md @@ -135,6 +135,7 @@ Then perform the following commands on the root folder: | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | | private\_endpoint\_subnetwork | The subnetwork to use for the hosted master network. | `string` | `null` | no | | project\_id | The project ID to host the cluster in (required) | `string` | n/a | yes | +| ray\_operator\_config | The Ray Operator Addon configuration for this cluster. |
object({
enabled = bool
logging_enabled = optional(bool, false)
monitoring_enabled = optional(bool, false)
})
|
{
"enabled": false,
"logging_enabled": false,
"monitoring_enabled": false
}
| no | | region | The region to host the cluster in (optional if zonal cluster / required if regional) | `string` | `null` | no | | regional | Whether is a regional cluster (zonal cluster if set false. WARNING: changing this after cluster creation is destructive!) | `bool` | `true` | no | | 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 | diff --git a/modules/beta-autopilot-private-cluster/cluster.tf b/modules/beta-autopilot-private-cluster/cluster.tf index 80555c69d4..20604496ec 100644 --- a/modules/beta-autopilot-private-cluster/cluster.tf +++ b/modules/beta-autopilot-private-cluster/cluster.tf @@ -173,6 +173,23 @@ resource "google_container_cluster" "primary" { enabled = stateful_ha_config.value.enabled } } + + dynamic "ray_operator_config" { + for_each = local.ray_operator_config + + content { + + enabled = ray_operator_config.value.enabled + + ray_cluster_logging_config { + enabled = ray_operator_config.value.logging_enabled + } + ray_cluster_monitoring_config { + enabled = ray_operator_config.value.monitoring_enabled + } + } + } + } allow_net_admin = var.allow_net_admin diff --git a/modules/beta-autopilot-private-cluster/main.tf b/modules/beta-autopilot-private-cluster/main.tf index 836c151bc1..9c23b42d05 100644 --- a/modules/beta-autopilot-private-cluster/main.tf +++ b/modules/beta-autopilot-private-cluster/main.tf @@ -69,6 +69,7 @@ locals { gke_backup_agent_config = var.gke_backup_agent_config ? [{ enabled = true }] : [{ enabled = false }] gcs_fuse_csi_driver_config = var.gcs_fuse_csi_driver ? [{ enabled = true }] : [] stateful_ha_config = var.stateful_ha ? [{ enabled = true }] : [] + ray_operator_config = length(var.ray_operator_config) > 0 && lookup(var.ray_operator_config, "enabled", false) ? [var.ray_operator_config] : [] cluster_authenticator_security_group = var.authenticator_security_group == null ? [] : [{ security_group = var.authenticator_security_group diff --git a/modules/beta-autopilot-private-cluster/variables.tf b/modules/beta-autopilot-private-cluster/variables.tf index 9b177106af..6c815c5a3a 100644 --- a/modules/beta-autopilot-private-cluster/variables.tf +++ b/modules/beta-autopilot-private-cluster/variables.tf @@ -494,6 +494,20 @@ variable "stateful_ha" { default = false } +variable "ray_operator_config" { + type = object({ + enabled = bool + logging_enabled = optional(bool, false) + monitoring_enabled = optional(bool, false) + }) + description = "The Ray Operator Addon configuration for this cluster." + default = { + enabled = false + logging_enabled = false + monitoring_enabled = false + } +} + variable "timeouts" { type = map(string) description = "Timeout for cluster operations." diff --git a/modules/beta-autopilot-private-cluster/versions.tf b/modules/beta-autopilot-private-cluster/versions.tf index f873195a97..3ae0d3b8e4 100644 --- a/modules/beta-autopilot-private-cluster/versions.tf +++ b/modules/beta-autopilot-private-cluster/versions.tf @@ -21,11 +21,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } google-beta = { source = "hashicorp/google-beta" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } kubernetes = { source = "hashicorp/kubernetes" diff --git a/modules/beta-autopilot-public-cluster/README.md b/modules/beta-autopilot-public-cluster/README.md index 4de1900468..0eb3696956 100644 --- a/modules/beta-autopilot-public-cluster/README.md +++ b/modules/beta-autopilot-public-cluster/README.md @@ -123,6 +123,7 @@ Then perform the following commands on the root folder: | notification\_config\_topic | The desired Pub/Sub topic to which notifications will be sent by GKE. Format is projects/{project}/topics/{topic}. | `string` | `""` | no | | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | | project\_id | The project ID to host the cluster in (required) | `string` | n/a | yes | +| ray\_operator\_config | The Ray Operator Addon configuration for this cluster. |
object({
enabled = bool
logging_enabled = optional(bool, false)
monitoring_enabled = optional(bool, false)
})
|
{
"enabled": false,
"logging_enabled": false,
"monitoring_enabled": false
}
| no | | region | The region to host the cluster in (optional if zonal cluster / required if regional) | `string` | `null` | no | | regional | Whether is a regional cluster (zonal cluster if set false. WARNING: changing this after cluster creation is destructive!) | `bool` | `true` | no | | 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 | diff --git a/modules/beta-autopilot-public-cluster/cluster.tf b/modules/beta-autopilot-public-cluster/cluster.tf index bcdd82fdc8..7af63a96d9 100644 --- a/modules/beta-autopilot-public-cluster/cluster.tf +++ b/modules/beta-autopilot-public-cluster/cluster.tf @@ -173,6 +173,23 @@ resource "google_container_cluster" "primary" { enabled = stateful_ha_config.value.enabled } } + + dynamic "ray_operator_config" { + for_each = local.ray_operator_config + + content { + + enabled = ray_operator_config.value.enabled + + ray_cluster_logging_config { + enabled = ray_operator_config.value.logging_enabled + } + ray_cluster_monitoring_config { + enabled = ray_operator_config.value.monitoring_enabled + } + } + } + } allow_net_admin = var.allow_net_admin diff --git a/modules/beta-autopilot-public-cluster/main.tf b/modules/beta-autopilot-public-cluster/main.tf index fb8af5bef8..b4956bb6a3 100644 --- a/modules/beta-autopilot-public-cluster/main.tf +++ b/modules/beta-autopilot-public-cluster/main.tf @@ -69,6 +69,7 @@ locals { gke_backup_agent_config = var.gke_backup_agent_config ? [{ enabled = true }] : [{ enabled = false }] gcs_fuse_csi_driver_config = var.gcs_fuse_csi_driver ? [{ enabled = true }] : [] stateful_ha_config = var.stateful_ha ? [{ enabled = true }] : [] + ray_operator_config = length(var.ray_operator_config) > 0 && lookup(var.ray_operator_config, "enabled", false) ? [var.ray_operator_config] : [] cluster_authenticator_security_group = var.authenticator_security_group == null ? [] : [{ security_group = var.authenticator_security_group diff --git a/modules/beta-autopilot-public-cluster/variables.tf b/modules/beta-autopilot-public-cluster/variables.tf index aabe1e2667..744b16b551 100644 --- a/modules/beta-autopilot-public-cluster/variables.tf +++ b/modules/beta-autopilot-public-cluster/variables.tf @@ -458,6 +458,20 @@ variable "stateful_ha" { default = false } +variable "ray_operator_config" { + type = object({ + enabled = bool + logging_enabled = optional(bool, false) + monitoring_enabled = optional(bool, false) + }) + description = "The Ray Operator Addon configuration for this cluster." + default = { + enabled = false + logging_enabled = false + monitoring_enabled = false + } +} + variable "timeouts" { type = map(string) description = "Timeout for cluster operations." diff --git a/modules/beta-autopilot-public-cluster/versions.tf b/modules/beta-autopilot-public-cluster/versions.tf index 6bba2e28b8..fd29a13f71 100644 --- a/modules/beta-autopilot-public-cluster/versions.tf +++ b/modules/beta-autopilot-public-cluster/versions.tf @@ -21,11 +21,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } google-beta = { source = "hashicorp/google-beta" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } kubernetes = { source = "hashicorp/kubernetes" diff --git a/modules/beta-private-cluster-update-variant/README.md b/modules/beta-private-cluster-update-variant/README.md index 376c5d84cc..640a04de16 100644 --- a/modules/beta-private-cluster-update-variant/README.md +++ b/modules/beta-private-cluster-update-variant/README.md @@ -277,6 +277,7 @@ Then perform the following commands on the root folder: | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | | private\_endpoint\_subnetwork | The subnetwork to use for the hosted master network. | `string` | `null` | no | | project\_id | The project ID to host the cluster in (required) | `string` | n/a | yes | +| ray\_operator\_config | The Ray Operator Addon configuration for this cluster. |
object({
enabled = bool
logging_enabled = optional(bool, false)
monitoring_enabled = optional(bool, false)
})
|
{
"enabled": false,
"logging_enabled": false,
"monitoring_enabled": false
}
| no | | region | The region to host the cluster in (optional if zonal cluster / required if regional) | `string` | `null` | no | | regional | Whether is a regional cluster (zonal cluster if set false. WARNING: changing this after cluster creation is destructive!) | `bool` | `true` | no | | 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 | diff --git a/modules/beta-private-cluster-update-variant/cluster.tf b/modules/beta-private-cluster-update-variant/cluster.tf index b81df91645..6e722667ce 100644 --- a/modules/beta-private-cluster-update-variant/cluster.tf +++ b/modules/beta-private-cluster-update-variant/cluster.tf @@ -301,6 +301,23 @@ resource "google_container_cluster" "primary" { enabled = stateful_ha_config.value.enabled } } + + dynamic "ray_operator_config" { + for_each = local.ray_operator_config + + content { + + enabled = ray_operator_config.value.enabled + + ray_cluster_logging_config { + enabled = ray_operator_config.value.logging_enabled + } + ray_cluster_monitoring_config { + enabled = ray_operator_config.value.monitoring_enabled + } + } + } + istio_config { disabled = !var.istio auth = var.istio_auth diff --git a/modules/beta-private-cluster-update-variant/main.tf b/modules/beta-private-cluster-update-variant/main.tf index 1bfa3658a5..4ee56aaacd 100644 --- a/modules/beta-private-cluster-update-variant/main.tf +++ b/modules/beta-private-cluster-update-variant/main.tf @@ -95,6 +95,7 @@ locals { gke_backup_agent_config = var.gke_backup_agent_config ? [{ enabled = true }] : [{ enabled = false }] gcs_fuse_csi_driver_config = var.gcs_fuse_csi_driver ? [{ enabled = true }] : [] stateful_ha_config = var.stateful_ha ? [{ enabled = true }] : [] + ray_operator_config = length(var.ray_operator_config) > 0 && lookup(var.ray_operator_config, "enabled", false) ? [var.ray_operator_config] : [] cluster_cloudrun_config_load_balancer_config = (var.cloudrun && var.cloudrun_load_balancer_type != "") ? { load_balancer_type = var.cloudrun_load_balancer_type } : {} diff --git a/modules/beta-private-cluster-update-variant/variables.tf b/modules/beta-private-cluster-update-variant/variables.tf index 99e5b11e34..c721313d9a 100644 --- a/modules/beta-private-cluster-update-variant/variables.tf +++ b/modules/beta-private-cluster-update-variant/variables.tf @@ -776,6 +776,20 @@ variable "stateful_ha" { default = false } +variable "ray_operator_config" { + type = object({ + enabled = bool + logging_enabled = optional(bool, false) + monitoring_enabled = optional(bool, false) + }) + description = "The Ray Operator Addon configuration for this cluster." + default = { + enabled = false + logging_enabled = false + monitoring_enabled = false + } +} + variable "timeouts" { type = map(string) description = "Timeout for cluster operations." diff --git a/modules/beta-private-cluster-update-variant/versions.tf b/modules/beta-private-cluster-update-variant/versions.tf index df9b26ca58..de52e81b1b 100644 --- a/modules/beta-private-cluster-update-variant/versions.tf +++ b/modules/beta-private-cluster-update-variant/versions.tf @@ -21,11 +21,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } google-beta = { source = "hashicorp/google-beta" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } kubernetes = { source = "hashicorp/kubernetes" diff --git a/modules/beta-private-cluster/README.md b/modules/beta-private-cluster/README.md index 68565f113e..6c3bb8a4d5 100644 --- a/modules/beta-private-cluster/README.md +++ b/modules/beta-private-cluster/README.md @@ -255,6 +255,7 @@ Then perform the following commands on the root folder: | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | | private\_endpoint\_subnetwork | The subnetwork to use for the hosted master network. | `string` | `null` | no | | project\_id | The project ID to host the cluster in (required) | `string` | n/a | yes | +| ray\_operator\_config | The Ray Operator Addon configuration for this cluster. |
object({
enabled = bool
logging_enabled = optional(bool, false)
monitoring_enabled = optional(bool, false)
})
|
{
"enabled": false,
"logging_enabled": false,
"monitoring_enabled": false
}
| no | | region | The region to host the cluster in (optional if zonal cluster / required if regional) | `string` | `null` | no | | regional | Whether is a regional cluster (zonal cluster if set false. WARNING: changing this after cluster creation is destructive!) | `bool` | `true` | no | | 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 | diff --git a/modules/beta-private-cluster/cluster.tf b/modules/beta-private-cluster/cluster.tf index 57a8ec20fa..0578d91001 100644 --- a/modules/beta-private-cluster/cluster.tf +++ b/modules/beta-private-cluster/cluster.tf @@ -301,6 +301,23 @@ resource "google_container_cluster" "primary" { enabled = stateful_ha_config.value.enabled } } + + dynamic "ray_operator_config" { + for_each = local.ray_operator_config + + content { + + enabled = ray_operator_config.value.enabled + + ray_cluster_logging_config { + enabled = ray_operator_config.value.logging_enabled + } + ray_cluster_monitoring_config { + enabled = ray_operator_config.value.monitoring_enabled + } + } + } + istio_config { disabled = !var.istio auth = var.istio_auth diff --git a/modules/beta-private-cluster/main.tf b/modules/beta-private-cluster/main.tf index 1bfa3658a5..4ee56aaacd 100644 --- a/modules/beta-private-cluster/main.tf +++ b/modules/beta-private-cluster/main.tf @@ -95,6 +95,7 @@ locals { gke_backup_agent_config = var.gke_backup_agent_config ? [{ enabled = true }] : [{ enabled = false }] gcs_fuse_csi_driver_config = var.gcs_fuse_csi_driver ? [{ enabled = true }] : [] stateful_ha_config = var.stateful_ha ? [{ enabled = true }] : [] + ray_operator_config = length(var.ray_operator_config) > 0 && lookup(var.ray_operator_config, "enabled", false) ? [var.ray_operator_config] : [] cluster_cloudrun_config_load_balancer_config = (var.cloudrun && var.cloudrun_load_balancer_type != "") ? { load_balancer_type = var.cloudrun_load_balancer_type } : {} diff --git a/modules/beta-private-cluster/variables.tf b/modules/beta-private-cluster/variables.tf index 99e5b11e34..c721313d9a 100644 --- a/modules/beta-private-cluster/variables.tf +++ b/modules/beta-private-cluster/variables.tf @@ -776,6 +776,20 @@ variable "stateful_ha" { default = false } +variable "ray_operator_config" { + type = object({ + enabled = bool + logging_enabled = optional(bool, false) + monitoring_enabled = optional(bool, false) + }) + description = "The Ray Operator Addon configuration for this cluster." + default = { + enabled = false + logging_enabled = false + monitoring_enabled = false + } +} + variable "timeouts" { type = map(string) description = "Timeout for cluster operations." diff --git a/modules/beta-private-cluster/versions.tf b/modules/beta-private-cluster/versions.tf index 102e899572..a042535325 100644 --- a/modules/beta-private-cluster/versions.tf +++ b/modules/beta-private-cluster/versions.tf @@ -21,11 +21,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } google-beta = { source = "hashicorp/google-beta" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } kubernetes = { source = "hashicorp/kubernetes" diff --git a/modules/beta-public-cluster-update-variant/README.md b/modules/beta-public-cluster-update-variant/README.md index a4d5f6a0d7..1b30408a6a 100644 --- a/modules/beta-public-cluster-update-variant/README.md +++ b/modules/beta-public-cluster-update-variant/README.md @@ -265,6 +265,7 @@ Then perform the following commands on the root folder: | notification\_config\_topic | The desired Pub/Sub topic to which notifications will be sent by GKE. Format is projects/{project}/topics/{topic}. | `string` | `""` | no | | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | | project\_id | The project ID to host the cluster in (required) | `string` | n/a | yes | +| ray\_operator\_config | The Ray Operator Addon configuration for this cluster. |
object({
enabled = bool
logging_enabled = optional(bool, false)
monitoring_enabled = optional(bool, false)
})
|
{
"enabled": false,
"logging_enabled": false,
"monitoring_enabled": false
}
| no | | region | The region to host the cluster in (optional if zonal cluster / required if regional) | `string` | `null` | no | | regional | Whether is a regional cluster (zonal cluster if set false. WARNING: changing this after cluster creation is destructive!) | `bool` | `true` | no | | 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 | diff --git a/modules/beta-public-cluster-update-variant/cluster.tf b/modules/beta-public-cluster-update-variant/cluster.tf index a7331ab071..a30562d7ed 100644 --- a/modules/beta-public-cluster-update-variant/cluster.tf +++ b/modules/beta-public-cluster-update-variant/cluster.tf @@ -301,6 +301,23 @@ resource "google_container_cluster" "primary" { enabled = stateful_ha_config.value.enabled } } + + dynamic "ray_operator_config" { + for_each = local.ray_operator_config + + content { + + enabled = ray_operator_config.value.enabled + + ray_cluster_logging_config { + enabled = ray_operator_config.value.logging_enabled + } + ray_cluster_monitoring_config { + enabled = ray_operator_config.value.monitoring_enabled + } + } + } + istio_config { disabled = !var.istio auth = var.istio_auth diff --git a/modules/beta-public-cluster-update-variant/main.tf b/modules/beta-public-cluster-update-variant/main.tf index 0039ec882f..58d2dce97c 100644 --- a/modules/beta-public-cluster-update-variant/main.tf +++ b/modules/beta-public-cluster-update-variant/main.tf @@ -95,6 +95,7 @@ locals { gke_backup_agent_config = var.gke_backup_agent_config ? [{ enabled = true }] : [{ enabled = false }] gcs_fuse_csi_driver_config = var.gcs_fuse_csi_driver ? [{ enabled = true }] : [] stateful_ha_config = var.stateful_ha ? [{ enabled = true }] : [] + ray_operator_config = length(var.ray_operator_config) > 0 && lookup(var.ray_operator_config, "enabled", false) ? [var.ray_operator_config] : [] cluster_cloudrun_config_load_balancer_config = (var.cloudrun && var.cloudrun_load_balancer_type != "") ? { load_balancer_type = var.cloudrun_load_balancer_type } : {} diff --git a/modules/beta-public-cluster-update-variant/variables.tf b/modules/beta-public-cluster-update-variant/variables.tf index 0a953d0429..86afb87da3 100644 --- a/modules/beta-public-cluster-update-variant/variables.tf +++ b/modules/beta-public-cluster-update-variant/variables.tf @@ -740,6 +740,20 @@ variable "stateful_ha" { default = false } +variable "ray_operator_config" { + type = object({ + enabled = bool + logging_enabled = optional(bool, false) + monitoring_enabled = optional(bool, false) + }) + description = "The Ray Operator Addon configuration for this cluster." + default = { + enabled = false + logging_enabled = false + monitoring_enabled = false + } +} + variable "timeouts" { type = map(string) description = "Timeout for cluster operations." diff --git a/modules/beta-public-cluster-update-variant/versions.tf b/modules/beta-public-cluster-update-variant/versions.tf index a72a0b13ac..2a9ee2978d 100644 --- a/modules/beta-public-cluster-update-variant/versions.tf +++ b/modules/beta-public-cluster-update-variant/versions.tf @@ -21,11 +21,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } google-beta = { source = "hashicorp/google-beta" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } kubernetes = { source = "hashicorp/kubernetes" diff --git a/modules/beta-public-cluster/README.md b/modules/beta-public-cluster/README.md index 15e9e37b27..d72c116ac4 100644 --- a/modules/beta-public-cluster/README.md +++ b/modules/beta-public-cluster/README.md @@ -243,6 +243,7 @@ Then perform the following commands on the root folder: | notification\_config\_topic | The desired Pub/Sub topic to which notifications will be sent by GKE. Format is projects/{project}/topics/{topic}. | `string` | `""` | no | | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | | project\_id | The project ID to host the cluster in (required) | `string` | n/a | yes | +| ray\_operator\_config | The Ray Operator Addon configuration for this cluster. |
object({
enabled = bool
logging_enabled = optional(bool, false)
monitoring_enabled = optional(bool, false)
})
|
{
"enabled": false,
"logging_enabled": false,
"monitoring_enabled": false
}
| no | | region | The region to host the cluster in (optional if zonal cluster / required if regional) | `string` | `null` | no | | regional | Whether is a regional cluster (zonal cluster if set false. WARNING: changing this after cluster creation is destructive!) | `bool` | `true` | no | | 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 | diff --git a/modules/beta-public-cluster/cluster.tf b/modules/beta-public-cluster/cluster.tf index adb74c3968..174b33c6be 100644 --- a/modules/beta-public-cluster/cluster.tf +++ b/modules/beta-public-cluster/cluster.tf @@ -301,6 +301,23 @@ resource "google_container_cluster" "primary" { enabled = stateful_ha_config.value.enabled } } + + dynamic "ray_operator_config" { + for_each = local.ray_operator_config + + content { + + enabled = ray_operator_config.value.enabled + + ray_cluster_logging_config { + enabled = ray_operator_config.value.logging_enabled + } + ray_cluster_monitoring_config { + enabled = ray_operator_config.value.monitoring_enabled + } + } + } + istio_config { disabled = !var.istio auth = var.istio_auth diff --git a/modules/beta-public-cluster/main.tf b/modules/beta-public-cluster/main.tf index 0039ec882f..58d2dce97c 100644 --- a/modules/beta-public-cluster/main.tf +++ b/modules/beta-public-cluster/main.tf @@ -95,6 +95,7 @@ locals { gke_backup_agent_config = var.gke_backup_agent_config ? [{ enabled = true }] : [{ enabled = false }] gcs_fuse_csi_driver_config = var.gcs_fuse_csi_driver ? [{ enabled = true }] : [] stateful_ha_config = var.stateful_ha ? [{ enabled = true }] : [] + ray_operator_config = length(var.ray_operator_config) > 0 && lookup(var.ray_operator_config, "enabled", false) ? [var.ray_operator_config] : [] cluster_cloudrun_config_load_balancer_config = (var.cloudrun && var.cloudrun_load_balancer_type != "") ? { load_balancer_type = var.cloudrun_load_balancer_type } : {} diff --git a/modules/beta-public-cluster/variables.tf b/modules/beta-public-cluster/variables.tf index 0a953d0429..86afb87da3 100644 --- a/modules/beta-public-cluster/variables.tf +++ b/modules/beta-public-cluster/variables.tf @@ -740,6 +740,20 @@ variable "stateful_ha" { default = false } +variable "ray_operator_config" { + type = object({ + enabled = bool + logging_enabled = optional(bool, false) + monitoring_enabled = optional(bool, false) + }) + description = "The Ray Operator Addon configuration for this cluster." + default = { + enabled = false + logging_enabled = false + monitoring_enabled = false + } +} + variable "timeouts" { type = map(string) description = "Timeout for cluster operations." diff --git a/modules/beta-public-cluster/versions.tf b/modules/beta-public-cluster/versions.tf index 193dad6b2f..861e2407f9 100644 --- a/modules/beta-public-cluster/versions.tf +++ b/modules/beta-public-cluster/versions.tf @@ -21,11 +21,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } google-beta = { source = "hashicorp/google-beta" - version = ">= 5.33.0, < 6" + version = ">= 5.40.0, < 6" } kubernetes = { source = "hashicorp/kubernetes" diff --git a/modules/private-cluster-update-variant/README.md b/modules/private-cluster-update-variant/README.md index 002bc3b69c..db5fb5784f 100644 --- a/modules/private-cluster-update-variant/README.md +++ b/modules/private-cluster-update-variant/README.md @@ -262,6 +262,7 @@ Then perform the following commands on the root folder: | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | | private\_endpoint\_subnetwork | The subnetwork to use for the hosted master network. | `string` | `null` | no | | project\_id | The project ID to host the cluster in (required) | `string` | n/a | yes | +| ray\_operator\_config | The Ray Operator Addon configuration for this cluster. |
object({
enabled = bool
logging_enabled = optional(bool, false)
monitoring_enabled = optional(bool, false)
})
|
{
"enabled": false,
"logging_enabled": false,
"monitoring_enabled": false
}
| no | | region | The region to host the cluster in (optional if zonal cluster / required if regional) | `string` | `null` | no | | regional | Whether is a regional cluster (zonal cluster if set false. WARNING: changing this after cluster creation is destructive!) | `bool` | `true` | no | | 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 | diff --git a/modules/private-cluster-update-variant/cluster.tf b/modules/private-cluster-update-variant/cluster.tf index 77d4572f87..8518b0e52a 100644 --- a/modules/private-cluster-update-variant/cluster.tf +++ b/modules/private-cluster-update-variant/cluster.tf @@ -280,6 +280,23 @@ resource "google_container_cluster" "primary" { enabled = stateful_ha_config.value.enabled } } + + dynamic "ray_operator_config" { + for_each = local.ray_operator_config + + content { + + enabled = ray_operator_config.value.enabled + + ray_cluster_logging_config { + enabled = ray_operator_config.value.logging_enabled + } + ray_cluster_monitoring_config { + enabled = ray_operator_config.value.monitoring_enabled + } + } + } + } datapath_provider = var.datapath_provider diff --git a/modules/private-cluster-update-variant/main.tf b/modules/private-cluster-update-variant/main.tf index 90702177dd..884ea93033 100644 --- a/modules/private-cluster-update-variant/main.tf +++ b/modules/private-cluster-update-variant/main.tf @@ -95,6 +95,7 @@ locals { gke_backup_agent_config = var.gke_backup_agent_config ? [{ enabled = true }] : [{ enabled = false }] gcs_fuse_csi_driver_config = var.gcs_fuse_csi_driver ? [{ enabled = true }] : [] stateful_ha_config = var.stateful_ha ? [{ enabled = true }] : [] + ray_operator_config = length(var.ray_operator_config) > 0 && lookup(var.ray_operator_config, "enabled", false) ? [var.ray_operator_config] : [] cluster_authenticator_security_group = var.authenticator_security_group == null ? [] : [{ security_group = var.authenticator_security_group diff --git a/modules/private-cluster-update-variant/variables.tf b/modules/private-cluster-update-variant/variables.tf index 0805b10e78..ea5dc1a700 100644 --- a/modules/private-cluster-update-variant/variables.tf +++ b/modules/private-cluster-update-variant/variables.tf @@ -741,6 +741,20 @@ variable "stateful_ha" { default = false } +variable "ray_operator_config" { + type = object({ + enabled = bool + logging_enabled = optional(bool, false) + monitoring_enabled = optional(bool, false) + }) + description = "The Ray Operator Addon configuration for this cluster." + default = { + enabled = false + logging_enabled = false + monitoring_enabled = false + } +} + variable "timeouts" { type = map(string) description = "Timeout for cluster operations." diff --git a/modules/private-cluster-update-variant/versions.tf b/modules/private-cluster-update-variant/versions.tf index b36073ae8d..19d8df6feb 100644 --- a/modules/private-cluster-update-variant/versions.tf +++ b/modules/private-cluster-update-variant/versions.tf @@ -21,7 +21,7 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 5.25.0, < 6" + version = ">= 5.40.0, < 6" } kubernetes = { source = "hashicorp/kubernetes" diff --git a/modules/private-cluster/README.md b/modules/private-cluster/README.md index 717cedb06e..590004ace3 100644 --- a/modules/private-cluster/README.md +++ b/modules/private-cluster/README.md @@ -240,6 +240,7 @@ Then perform the following commands on the root folder: | notification\_filter\_event\_type | Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Can be used to filter what notifications are sent. Accepted values are UPGRADE\_AVAILABLE\_EVENT, UPGRADE\_EVENT, and SECURITY\_BULLETIN\_EVENT. | `list(string)` | `[]` | no | | private\_endpoint\_subnetwork | The subnetwork to use for the hosted master network. | `string` | `null` | no | | project\_id | The project ID to host the cluster in (required) | `string` | n/a | yes | +| ray\_operator\_config | The Ray Operator Addon configuration for this cluster. |
object({
enabled = bool
logging_enabled = optional(bool, false)
monitoring_enabled = optional(bool, false)
})
|
{
"enabled": false,
"logging_enabled": false,
"monitoring_enabled": false
}
| no | | region | The region to host the cluster in (optional if zonal cluster / required if regional) | `string` | `null` | no | | regional | Whether is a regional cluster (zonal cluster if set false. WARNING: changing this after cluster creation is destructive!) | `bool` | `true` | no | | 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 | diff --git a/modules/private-cluster/cluster.tf b/modules/private-cluster/cluster.tf index 7886ea9aec..1ed3bdb20b 100644 --- a/modules/private-cluster/cluster.tf +++ b/modules/private-cluster/cluster.tf @@ -280,6 +280,23 @@ resource "google_container_cluster" "primary" { enabled = stateful_ha_config.value.enabled } } + + dynamic "ray_operator_config" { + for_each = local.ray_operator_config + + content { + + enabled = ray_operator_config.value.enabled + + ray_cluster_logging_config { + enabled = ray_operator_config.value.logging_enabled + } + ray_cluster_monitoring_config { + enabled = ray_operator_config.value.monitoring_enabled + } + } + } + } datapath_provider = var.datapath_provider diff --git a/modules/private-cluster/main.tf b/modules/private-cluster/main.tf index 90702177dd..884ea93033 100644 --- a/modules/private-cluster/main.tf +++ b/modules/private-cluster/main.tf @@ -95,6 +95,7 @@ locals { gke_backup_agent_config = var.gke_backup_agent_config ? [{ enabled = true }] : [{ enabled = false }] gcs_fuse_csi_driver_config = var.gcs_fuse_csi_driver ? [{ enabled = true }] : [] stateful_ha_config = var.stateful_ha ? [{ enabled = true }] : [] + ray_operator_config = length(var.ray_operator_config) > 0 && lookup(var.ray_operator_config, "enabled", false) ? [var.ray_operator_config] : [] cluster_authenticator_security_group = var.authenticator_security_group == null ? [] : [{ security_group = var.authenticator_security_group diff --git a/modules/private-cluster/variables.tf b/modules/private-cluster/variables.tf index 0805b10e78..ea5dc1a700 100644 --- a/modules/private-cluster/variables.tf +++ b/modules/private-cluster/variables.tf @@ -741,6 +741,20 @@ variable "stateful_ha" { default = false } +variable "ray_operator_config" { + type = object({ + enabled = bool + logging_enabled = optional(bool, false) + monitoring_enabled = optional(bool, false) + }) + description = "The Ray Operator Addon configuration for this cluster." + default = { + enabled = false + logging_enabled = false + monitoring_enabled = false + } +} + variable "timeouts" { type = map(string) description = "Timeout for cluster operations." diff --git a/modules/private-cluster/versions.tf b/modules/private-cluster/versions.tf index f13959f817..2d02269128 100644 --- a/modules/private-cluster/versions.tf +++ b/modules/private-cluster/versions.tf @@ -21,7 +21,7 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 5.25.0, < 6" + version = ">= 5.40.0, < 6" } kubernetes = { source = "hashicorp/kubernetes" diff --git a/test/integration/simple_autopilot_public/simple_autopiliot_public_test.go b/test/integration/simple_autopilot_public/simple_autopiliot_public_test.go index 0479efe84d..dad92ca5f4 100644 --- a/test/integration/simple_autopilot_public/simple_autopiliot_public_test.go +++ b/test/integration/simple_autopilot_public/simple_autopiliot_public_test.go @@ -53,6 +53,9 @@ func TestSimpleAutopilotPublic(t *testing.T) { "addonsConfig.httpLoadBalancing", "addonsConfig.kubernetesDashboard.disabled", "addonsConfig.networkPolicyConfig.disabled", + "addonsConfig.rayOperatorConfig.enabled", + "addonsConfig.rayOperatorConfig.rayClusterLoggingConfig.enabled", + "addonsConfig.rayOperatorConfig.rayClusterMonitoringConfig.enabled", } for _, pth := range validateJSONPaths { g.JSONEq(assert, op, pth) diff --git a/test/integration/simple_autopilot_public/testdata/TestSimpleAutopilotPublic.json b/test/integration/simple_autopilot_public/testdata/TestSimpleAutopilotPublic.json index d014c325dc..76d70b63eb 100644 --- a/test/integration/simple_autopilot_public/testdata/TestSimpleAutopilotPublic.json +++ b/test/integration/simple_autopilot_public/testdata/TestSimpleAutopilotPublic.json @@ -6,6 +6,15 @@ "gcePersistentDiskCsiDriverConfig": { "enabled": true }, + "rayOperatorConfig": { + "enabled": true, + "rayClusterLoggingConfig": { + "enabled": true + }, + "rayClusterMonitoringConfig": { + "enabled": true + } + }, "gcpFilestoreCsiDriverConfig": { "enabled": true }, diff --git a/variables.tf b/variables.tf index fac473f833..8ab53f4cd8 100644 --- a/variables.tf +++ b/variables.tf @@ -705,6 +705,20 @@ variable "stateful_ha" { default = false } +variable "ray_operator_config" { + type = object({ + enabled = bool + logging_enabled = optional(bool, false) + monitoring_enabled = optional(bool, false) + }) + description = "The Ray Operator Addon configuration for this cluster." + default = { + enabled = false + logging_enabled = false + monitoring_enabled = false + } +} + variable "timeouts" { type = map(string) description = "Timeout for cluster operations." diff --git a/versions.tf b/versions.tf index 87a1e3ebee..d7a0dfb92d 100644 --- a/versions.tf +++ b/versions.tf @@ -21,7 +21,7 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 5.25.0, < 6" + version = ">= 5.40.0, < 6" } kubernetes = { source = "hashicorp/kubernetes"