Updating a Specified Cluster

Function

This API is used to update information about a specified cluster.

URI

PUT /api/v3/projects/{project_id}/clusters/{cluster_id}

Table 1 describes the parameters of this API.

Table 1 Parameter description

Parameter

Mandatory

Description

project_id

Yes

Project ID. For details about how to obtain the project ID, see How to Obtain Parameters in the API URI.

cluster_id

Yes

Cluster ID. For details about how to obtain the cluster ID, see How to Obtain Parameters in the API URI.

Request

Request parameters:

Table 2 and Table 3 describe the request parameters.

Table 2 Parameters in the request header

Parameter

Mandatory

Description

Content-Type

Yes

Message body type (format). Possible values:

  • application/json;charset=utf-8

  • application/json

X-Auth-Token

Yes

Requests for calling an API can be authenticated using either a token or AK/SK. If token-based authentication is used, this parameter is mandatory and must be set to a user token. For details on how to obtain a user token, see API Usage Guidelines.

Table 3 Parameters in the request body

Parameter

Mandatory

Type

Description

spec

Yes

spec object

Detailed description of the cluster targeted by this API. CCE creates or updates objects by defining or updating its spec.

Table 4 Data structure of the spec field

Parameter

Mandatory

Type

Description

description

No

String

Cluster description.

customSan

No

Array of strings

Custom SAN field in the server certificate of the cluster API server, which must comply with the SSL and X509 format specifications.

  1. Duplicate names are not allowed.

  2. Must comply with the IP address and domain name formats.

example: SAN 1: DNS Name=example.com SAN 2: DNS Name=www.example.com SAN 3: DNS Name=example.net SAN 4: IP Address=93.184.216.34

containerNetwork

No

ContainerNetworkUpdate object

Container networking parameters, including information about the container CIDR block.

Table 5 ContainerNetworkUpdate

Parameter

Mandatory

Type

Description

cidrs

No

Array of ContainerCIDR objects

List of container CIDR blocks. For clusters of v1.21 and later, if the cluster uses the VPC network model, container CIDR blocks can be added incrementally.

The configuration cannot be changed after the cluster is updated.

Table 6 ContainerCIDR

Parameter

Mandatory

Type

Description

cidr

Yes

String

Container CIDR block. Recommended: 10.0.0.0/12-19, 172.16.0.0/16-19, and 192.168.0.0/16-19

Example request:

  • Updating the description of a cluster

    {
      "spec" : {
        "description" : "new description"
      }
    }
    
  • Updating only the custom SAN of the cluster certificate

    {
      "spec" : {
        "customSan" : [ "192.168.1.0", "example.com" ]
      }
    }
    
  • Updating both the cluster description and custom certificate SAN

    {
      "spec" : {
        "description" : "new description",
        "customSan" : [ "192.168.1.0", "example.com" ]
      }
    }
    
  • Adding a container CIDR block for a cluster of v1.21 or later that uses the VPC network model

    {
      "spec" : {
        "containerNetwork" : {
          "cidrs" : [ {
            "cidr" : "10.10.0.0/16"
          }, {
            "cidr" : "10.11.0.0/16"
          } ]
        }
      }
    }
    

Response

Response parameters:

For details about the response parameters, see Table 7.

Table 7 Parameters in the response body

Parameter

Type

Description

kind

String

API type. For a cluster management API, the parameter must be set to Cluster and cannot be changed.

apiVersion

String

API version. The value is fixed at v3 and cannot be changed.

metadata

metadata object

Basic information about a cluster. metadata is a collection of attributes.

spec

spec object

Detailed description of the cluster to be created. CCE creates or updates objects by defining or updating its spec.

status

status object

Cluster status and jobID of the job that reads a specified cluster.

Example response:

{
    "kind": "Cluster",
    "apiVersion": "v3",
    "metadata": {
        "name": "mycluster",
        "uid": "4d1ecb2c-229a-11e8-9c75-0255ac100ceb",
        "creationTimestamp": "2020-02-02 03:48:58.968214406 +0000 UTC",
        "updateTimestamp": "2020-02-02 06:39:36.844676088 +0000 UTC"
    },
    "spec": {
        "type": "VirtualMachine",
        "flavor": "cce.s1.small",
        "version": "v1.17.9-r0",
        "description": "new description",
        "az": "eu-de-01",
        "ipv6enable": false,
        "supportIstio": true,
        "hostNetwork": {
            "vpc": "4d1ecb2c-229a-11e8-9c75-0255ac100ceb",
            "subnet": "4d1ecb2c-229a-11e8-9c75-0255ac100ceb",
            "SecurityGroup": "5da0b181-e0a2-4981-87ac-1681545cd666"
        },
        "containerNetwork": {
            "mode": "overlay_l2",
            "cidr": "172.17.0.0/16"
        },
        "eniNetwork": {},
        "authentication": {
            "mode": "rbac",
            "authenticatingProxy": {}
        },
        "billingMode": 0,
        "extendParam": {
            "alpha.cce/fixPoolMask": "",
            "kubernetes.io/cpuManagerPolicy": "",
            "patchVersion": "",
            "upgradefrom": ""
        },
        "kubernetesSvcIpRange": "10.247.0.0/16",
        "kubeProxyMode": "iptables"
    },
    "status": {
        "phase": "Available",
        "endpoints": [
            {
                "Internal": "https://192.168.0.61:5443",
            },
            {
                "External": "https://10.185.69.54:5443",
            },
           {
                "external_otc": "https://a140174a-2f3e-11e9-9f91-0255ac101405.cce.eu-de.otc.t-systems.com",            },
        ]
    }
}

Status Code

Table 8 describes the status code of this API.

Table 8 Status code

Status Code

Description

200

Information about the specified cluster is successfully updated.

For details about error status codes, see Status Code.