pydo.kubernetes.update_cluster()

Description

To update a Kubernetes cluster, send a PUT request to /v2/kubernetes/clusters/$K8S_CLUSTER_ID and specify one or more of the attributes below.

Parameters

Name Type Required Description Default Value
cluster_id string True A unique ID that can be used to reference a Kubernetes cluster.
body JSON or IO[bytes] True

Request Sample

import os
from pydo import Client

client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))

req = {
  "name": "prod-cluster-01",
  "tags": [
    "k8s",
    "k8s:bd5f5959-5e1e-4205-a714-a914373942af",
    "production",
    "web-team"
  ],
  "maintenance_policy": {
    "start_time": "12:00",
    "day": "any"
  },
  "auto_upgrade": True,
  "surge_upgrade": True,
  "ha": True
}

resp = client.kubernetes.update_cluster(cluster_id="1fd32a", body=req)

Responses

See the API spec for this endpoint to view additional detail on responses, headers, parameters, and more.

The response will be a JSON object with a key called kubernetes_cluster. The value of this will be an object containing the standard attributes of a Kubernetes cluster.

Click to expand an example response for Updated Kubernetes Cluster.
{
  "value": {
    "kubernetes_cluster": {
      "id": "bd5f5959-5e1e-4205-a714-a914373942af",
      "name": "prod-cluster-01",
      "region": "nyc1",
      "version": "1.18.6-do.0",
      "cluster_subnet": "10.244.0.0/16",
      "service_subnet": "10.245.0.0/16",
      "vpc_uuid": "c33931f2-a26a-4e61-b85c-4e95a2ec431b",
      "ipv4": "68.183.121.157",
      "endpoint": "https://bd5f5959-5e1e-4205-a714-a914373942af.k8s.ondigitalocean.com",
      "tags": [
        "production",
        "web-team",
        "k8s",
        "k8s:bd5f5959-5e1e-4205-a714-a914373942af"
      ],
      "node_pools": [
        {
          "id": "cdda885e-7663-40c8-bc74-3a036c66545d",
          "name": "frontend-pool",
          "size": "s-1vcpu-2gb",
          "count": 3,
          "tags": [
            "production",
            "web-team",
            "k8s",
            "k8s:bd5f5959-5e1e-4205-a714-a914373942af",
            "k8s:worker"
          ],
          "labels": null,
          "taints": [],
          "auto_scale": false,
          "min_nodes": 0,
          "max_nodes": 0,
          "nodes": [
            {
              "id": "478247f8-b1bb-4f7a-8db9-2a5f8d4b8f8f",
              "name": "adoring-newton-3niq",
              "status": {
                "state": "running"
              },
              "droplet_id": "205545370",
              "created_at": "2018-11-15T16:00:11Z",
              "updated_at": "2018-11-15T16:00:11Z"
            },
            {
              "id": "ad12e744-c2a9-473d-8aa9-be5680500eb1",
              "name": "adoring-newton-3nim",
              "status": {
                "state": "running"
              },
              "droplet_id": "205545371",
              "created_at": "2018-11-15T16:00:11Z",
              "updated_at": "2018-11-15T16:00:11Z"
            },
            {
              "id": "e46e8d07-f58f-4ff1-9737-97246364400e",
              "name": "adoring-newton-3ni7",
              "status": {
                "state": "running"
              },
              "droplet_id": "205545372",
              "created_at": "2018-11-15T16:00:11Z",
              "updated_at": "2018-11-15T16:00:11Z"
            }
          ]
        },
        {
          "id": "f49f4379-7e7f-4af5-aeb6-0354bd840778",
          "name": "backend-pool",
          "size": "g-4vcpu-16gb",
          "count": 2,
          "tags": [
            "production",
            "web-team",
            "k8s",
            "k8s:bd5f5959-5e1e-4205-a714-a914373942af",
            "k8s:worker"
          ],
          "labels": {
            "service": "backend",
            "priority": "high"
          },
          "taints": [],
          "auto_scale": true,
          "min_nodes": 2,
          "max_nodes": 5,
          "nodes": [
            {
              "id": "3385619f-8ec3-42ba-bb23-8d21b8ba7518",
              "name": "affectionate-nightingale-3nif",
              "status": {
                "state": "running"
              },
              "droplet_id": "205545373",
              "created_at": "2018-11-15T16:00:11Z",
              "updated_at": "2018-11-15T16:00:11Z"
            },
            {
              "id": "4b8f60ff-ba06-4523-a6a4-b8148244c7e6",
              "name": "affectionate-nightingale-3niy",
              "status": {
                "state": "running"
              },
              "droplet_id": "205545374",
              "created_at": "2018-11-15T16:00:11Z",
              "updated_at": "2018-11-15T16:00:11Z"
            }
          ]
        }
      ],
      "maintenance_policy": {
        "start_time": "00:00",
        "duration": "4h0m0s",
        "day": "any"
      },
      "auto_upgrade": true,
      "status": {
        "state": "running"
      },
      "created_at": "2018-11-15T16:00:11Z",
      "updated_at": "2018-11-15T16:00:11Z",
      "surge_upgrade": true,
      "registry_enabled": false,
      "ha": false,
      "control_plane_firewall": {
        "enabled": true,
        "allowed_addresses": [
          "1.2.3.4/32",
          "1.1.0.0/16"
        ]
      }
    }
  }
}

Unauthorized

Click to expand an example response.
{
  "id": "unauthorized",
  "message": "Unable to authenticate you."
}

The resource was not found.

Click to expand an example response.
{
  "id": "not_found",
  "message": "The resource you requested could not be found."
}

API Rate limit exceeded

Click to expand an example response.
{
  "id": "too_many_requests",
  "message": "API Rate limit exceeded."
}

Server error.

Click to expand an example response.
{
  "id": "server_error",
  "message": "Unexpected server-side error"
}

Unexpected error

Click to expand an example response.
{
  "id": "example_error",
  "message": "some error message"
}