{"command":{"effect":"write","timeoutSeconds":30,"inputSchema":{"type":"object","description":"To update a Kubernetes cluster, send a PUT request to\n`/v2/kubernetes/clusters/$K8S_CLUSTER_ID` and specify one or more of the\nattributes below.\n","properties":{"path":{"type":"object","properties":{"cluster_id":{"type":"string","format":"uuid","minimum":1,"examples":["bd5f5959-5e1e-4205-a714-a914373942af"],"description":"A unique ID that can be used to reference a Kubernetes cluster."}},"required":["cluster_id"],"additionalProperties":false},"body":{"$ref":"#/definitions/cluster_update"}},"required":["path","body"],"additionalProperties":false,"definitions":{"cluster_update":{"type":"object","properties":{"name":{"type":"string","description":"A human-readable name for a Kubernetes cluster.","examples":["prod-cluster-01"]},"tags":{"type":"array","items":{"type":"string"},"description":"An array of tags applied to the Kubernetes cluster. All clusters are automatically tagged `k8s` and `k8s:$K8S_CLUSTER_ID`.","examples":[["k8s","k8s:bd5f5959-5e1e-4205-a714-a914373942af","production","web-team"]]},"maintenance_policy":{"$ref":"#/definitions/maintenance_policy"},"auto_upgrade":{"type":"boolean","default":false,"description":"A boolean value indicating whether the cluster will be automatically upgraded to new patch releases during its maintenance window.","examples":[true]},"surge_upgrade":{"type":"boolean","default":false,"description":"A boolean value indicating whether surge upgrade is enabled/disabled for the cluster. Surge upgrade makes cluster upgrades fast and reliable by bringing up new nodes before destroying the outdated nodes.","examples":[true]},"ha":{"type":"boolean","description":"A boolean value indicating whether the control plane is run in a highly available configuration in the cluster. Highly available control planes incur less downtime. The property cannot be disabled. When omitted on create, the default is version-dependent; for DOKS 1.36.0 and later, the default is true; for earlier versions, the default is false.","examples":[true]},"gpu_operator_ready":{"type":"boolean","description":"A boolean value indicating whether GPU nodes in the cluster are launched with images that do not include pre-installed GPU drivers, allowing GPU drivers to be managed by a GPU operator instead. Mutually exclusive with other GPU-related cluster options, such as `nvidia_gpu_dra_driver` and `amd_gpu_dra_driver`. When omitted, the current value is left unchanged.","examples":[false]},"control_plane_firewall":{"$ref":"#/definitions/control_plane_firewall"},"cluster_autoscaler_configuration":{"$ref":"#/definitions/cluster_autoscaler_configuration"},"sso":{"$ref":"#/definitions/sso"},"routing_agent":{"$ref":"#/definitions/routing_agent"},"p2p_oci_registry_plugin":{"$ref":"#/definitions/p2p_oci_registry_plugin"},"nfs_csi_plugin":{"$ref":"#/definitions/nfs_csi_plugin"},"amd_gpu_device_plugin":{"$ref":"#/definitions/amd_gpu_device_plugin"},"amd_gpu_device_metrics_exporter_plugin":{"$ref":"#/definitions/amd_gpu_device_metrics_exporter_plugin"},"nvidia_gpu_device_plugin":{"$ref":"#/definitions/nvidia_gpu_device_plugin"},"nvidia_gpu_dra_driver":{"$ref":"#/definitions/nvidia_gpu_dra_driver"},"amd_gpu_dra_driver":{"$ref":"#/definitions/amd_gpu_dra_driver"},"rdma_shared_dev_plugin":{"$ref":"#/definitions/rdma_shared_dev_plugin"},"coredns_autoscaler":{"$ref":"#/definitions/coredns_autoscaler"}},"required":["name"]},"maintenance_policy":{"type":["object","null"],"description":"An object specifying the maintenance window policy for the Kubernetes cluster.","properties":{"start_time":{"type":"string","description":"The start time in UTC of the maintenance window policy in 24-hour clock format / HH:MM notation (e.g., `15:00`).","examples":["12:00"]},"day":{"type":"string","enum":["any","monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"description":"The day of the maintenance window policy. May be one of `monday` through `sunday`, or `any` to indicate an arbitrary week day.","examples":["any"]}}},"control_plane_firewall":{"type":["object","null"],"description":"An object specifying the control plane firewall for the Kubernetes cluster. Control plane firewall is in early availability (invite only).","properties":{"enabled":{"type":"boolean","description":"Indicates whether the control plane firewall is enabled.","examples":[true]},"allowed_addresses":{"type":"array","description":"An array of public addresses (IPv4 or CIDR) allowed to access the control plane.","items":{"type":"string"},"examples":[["1.2.3.4/32","1.1.0.0/16"]]}}},"cluster_autoscaler_configuration":{"type":["object","null"],"description":"An object specifying custom cluster autoscaler configuration.","properties":{"scale_down_utilization_threshold":{"type":"number","description":"Used to customize when cluster autoscaler scales down non-empty nodes by setting the node utilization threshold.","examples":[0.65]},"scale_down_unneeded_time":{"type":"string","description":"Used to customize how long a node is unneeded before being scaled down.","examples":["1m0s"]},"expanders":{"type":"array","items":{"type":"string","enum":["random","priority","least_waste"]},"description":"Customizes expanders used by cluster-autoscaler.\nThe autoscaler will apply each expander from the provided list to narrow down the selection of node types created to scale up,\nuntil either a single node type is left, or the list of expanders is exhausted.\nIf this flag is unset, autoscaler will use its default expander `random`.\nPassing an empty list (_not_ `null`) will unset any previous expander customizations.\n\nAvailable expanders:\n- `random`: Randomly selects a node group to scale.\n- `priority`: Selects the node group with the highest priority as per [user-provided configuration](https://docs.digitalocean.com/products/kubernetes/how-to/autoscale/#configuring-priority-expander)\n- `least_waste`: Selects the node group that will result in the least amount of idle resources.\n","examples":[["priority","random"]]}}},"sso":{"type":["object","null"],"description":"An object specifying Single Sign-On (SSO) configuration for the Kubernetes cluster.","properties":{"enabled":{"type":"boolean","default":false,"description":"Indicates whether SSO authentication is enabled for the cluster.","examples":[true]},"required":{"type":"boolean","default":false,"description":"Indicates whether any non-SSO forms of authentication are disallowed.\nCan only be set to `true` when `enabled` is\n`true`.\n","examples":[false]},"issuer_url":{"type":"string","format":"uri","description":"The OIDC issuer URL for the identity provider. Required when `enabled` is\n`true`.\n","examples":["https://sso.example.com"]},"client_id":{"type":"string","description":"The OIDC client ID registered with the identity provider. Required when\n`enabled` is `true`.\n","examples":["doks-cluster-client"]}}},"routing_agent":{"type":["object","null"],"description":"An object specifying whether the routing-agent component should be enabled for the Kubernetes cluster.","properties":{"enabled":{"type":"boolean","description":"Indicates whether the routing-agent component is enabled.","examples":[true]}}},"p2p_oci_registry_plugin":{"type":["object","null"],"description":"An object specifying whether the Peer-to-peer OCI registry component should be enabled for the Kubernetes cluster.","properties":{"enabled":{"type":"boolean","description":"Indicates whether the Peer-to-peer OCI registry component is enabled.","examples":[true]}}},"nfs_csi_plugin":{"type":["object","null"],"description":"An object specifying whether the NFS CSI plugin should be enabled for the Kubernetes cluster.","properties":{"enabled":{"type":"boolean","description":"Indicates whether the NFS CSI plugin is enabled.","examples":[true]}}},"amd_gpu_device_plugin":{"type":["object","null"],"description":"An object specifying whether the AMD GPU Device Plugin should be enabled in the Kubernetes cluster. It's enabled by default for clusters with an AMD GPU node pool.","properties":{"enabled":{"type":"boolean","description":"Indicates whether the AMD GPU Device Plugin is enabled.","examples":[true]}}},"amd_gpu_device_metrics_exporter_plugin":{"type":["object","null"],"description":"An object specifying whether the AMD Device Metrics Exporter should be enabled in the Kubernetes cluster.","properties":{"enabled":{"type":"boolean","description":"Indicates whether the AMD Device Metrics Exporter is enabled.","examples":[true]}}},"nvidia_gpu_device_plugin":{"type":["object","null"],"description":"An object specifying whether the Nvidia GPU Device Plugin should be enabled in the Kubernetes cluster. It's enabled by default for clusters with an Nvidia GPU node pool.","properties":{"enabled":{"type":"boolean","description":"Indicates whether the Nvidia GPU Device Plugin is enabled.","examples":[true]}}},"nvidia_gpu_dra_driver":{"type":["object","null"],"description":"An object specifying whether the NVIDIA GPU DRA Driver should be enabled in the Kubernetes cluster. Mutually exclusive with `nvidia_gpu_device_plugin`.","properties":{"enabled":{"type":"boolean","description":"Indicates whether the NVIDIA GPU DRA Driver is enabled.","examples":[true]}}},"amd_gpu_dra_driver":{"type":["object","null"],"description":"An object specifying whether the AMD GPU DRA Driver should be enabled in the Kubernetes cluster. Mutually exclusive with `amd_gpu_device_plugin`.","properties":{"enabled":{"type":"boolean","description":"Indicates whether the AMD GPU DRA Driver is enabled.","examples":[true]}}},"rdma_shared_dev_plugin":{"type":["object","null"],"description":"An object specifying whether the RDMA shared device plugin should be enabled in the Kubernetes cluster.","properties":{"enabled":{"type":"boolean","description":"Indicates whether the RDMA shared device plugin is enabled.","examples":[true]}}},"coredns_autoscaler":{"type":["object","null"],"description":"An object specifying whether the Cluster Proportional Autoscaler (CPA) add-on for CoreDNS should be enabled for the Kubernetes cluster.","properties":{"enabled":{"type":"boolean","description":"Indicates whether the CoreDNS Cluster Proportional Autoscaler add-on is enabled.","examples":[true]}}}}},"name":"Update a Kubernetes Cluster","id":"digitalocean.kubernetes_update_cluster","example":{"path":{"cluster_id":"bd5f5959-5e1e-4205-a714-a914373942af"},"body":{"name":"prod-cluster-01"}},"maxRequests":1,"summary":false}}