Updating an Add-on Instance

Function

This API is used to update an add-on instance.

Note

The URL for add-on management is in the format of https://{clusterid}.Endpoint/uri. In the URL, {clusterid} indicates the cluster ID, and uri indicates the resource path, that is, the path for API access.

URI

PUT /api/v3/addons/{id}

Table 1 describes the parameters of this API.

Table 1 Parameter description

Parameter

Mandatory

Type

Description

id

Yes

String

Add-on instance ID. For details about how to obtain the ID, see Table 7.

Request

Request parameters:

Table 2 and Table 3 list 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

kind

Yes

String

API type. The value is fixed at Addon and cannot be changed.

apVersion

Yes

String

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

metadata

Yes

metadata object

Basic information about the add-on. Metadata is a collection of attributes.

spec

Yes

spec object

Detailed description of add-on installation or upgrade.

Table 4 Data structure of the metadata field

Parameter

Mandatory

Type

Description

labels

No

Object

Add-on labels in the format of key-value pairs.

annotations

Yes

Object

Add-on annotations in the format of key-value pairs.

For add-on upgrade, the value is fixed at {"addon.upgrade/type":"upgrade"}.

Table 5 Data structure of the spec field

Parameter

Mandatory

Type

Description

clusterID

Yes

String

Cluster ID.

version

Yes

String

Version number of the add-on to be installed or upgraded, for example, v1.0.0.

addonTemplateName

Yes

String

Name of the add-on template to be installed, for example, storage-driver.

values

Yes

Object

Add-on template installation parameters (varying depending on the add-on). During the add-on upgrade, you need to specify all the installation parameters. If the parameters are not specified, the default values in the add-on template are used. The current add-on installation parameters can be obtained through the API for querying add-on instances.

Example request:

{
    "kind": "Addon",
    "apiVersion": "v3",
    "metadata": {
        "annotations": {
            "addon.upgrade/type": "upgrade"
        }
    },
    "spec": {
        "clusterID": "0ffc68e4-5538-11ea-9b4d-0255ac10167e",
        "version": "1.0.19",
        "addonTemplateName": "storage-driver",
        "values": {
            "flavor": {
                "description": "Has only one instance",
                "name": "Single",
                "replicas": 1,
                "resources": [
                    {
                        "limitsCpu": "100m",
                        "limitsMem": "300Mi",
                        "name": "metrics-server",
                        "requestsCpu": "100m",
                        "requestsMem": "300Mi"
                    }
                ]
            }
        }
    }
}

Response

Response parameters:

For details about the response parameters, see Table 6.

Table 6 Parameters in the response body

Parameter

Type

Description

kind

String

API type. The value is fixed at Addon and cannot be changed.

apiVersion

String

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

metadata

metadata object

Basic information about the add-on. Metadata is a collection of attributes.

spec

spec object

Detailed description of the add-on instance.

status

status object

Add-on instance status.

Table 7 Data structure of the metadata field

Parameter

Type

Description

uid

String

Unique ID of the add-on instance.

name

String

Add-on name.

labels

Object

Add-on labels in the format of key-value pairs.

annotations

Object

Add-on annotations in the format of key-value pairs.

updateTimestamp

String

Time when the add-on instance was updated.

creationTimestamp

String

Time when the add-on instance was created.

Table 8 Data structure of the spce field

Parameter

Type

Description

clusterID

String

Cluster ID.

version

String

Add-on template version, for example, v1.0.0.

addonTemplateName

String

Add-on template name, for example, coredns.

addonTemplateType

String

Add-on template type.

addonTemplateLabels

Array of strings

Group to which the add-on template belongs.

description

String

Add-on template description.

values

Object

Add-on template installation parameters. These parameters vary with add-on.

Table 9 Data structure of the status field

Parameter

Type

Description

status

String

Add-on instance status.

Reason

String

Cause of unsuccessful add-on updating.

message

String

Details about the error that occurred when updating the add-on instance.

targetVersions

Array of strings

Versions to which the current add-on version can be upgraded.

currentVersion

versions object

Current add-on version.

Table 10 Data structure of the versions field

Parameter

Type

Description

version

String

Add-on version.

input

Object

Add-on installation parameters.

stable

Boolean

Indicates whether the add-on version is a stable release.

translate

Object

Translation information used by the GUI.

supportVersions

Array of supportVersions objects

Cluster versions that support the add-on.

creationTimestamp

String

Time when the add-on instance was created.

updateTimestamp

String

Time when the add-on instance was updated.

Table 11 Data structure of the supportVersions field

Parameter

Type

Description

clusterType

String

Cluster type that supports the add-on.

clusterVersion

Array of strings

Cluster versions that support the add-on. The parameter value is a regular expression.

Example response:

{
    "kind": "Addon",
    "apiVersion": "v3",
    "metadata": {
        "uid": "24b23108-55c0-11e9-926f-0255ac101a31",
        "name": "gpu-beta",
        "creationTimestamp": "2019-04-03T03:25:34Z",
        "updateTimestamp": "2019-04-03T03:25:34Z"
    },
    "apiVersion": "v3",
    "kind": "Addon",
    "spec": {
        "addonTemplateName": "gpu-beta",
        "addonTemplateLogo": "",
        "addonTemplateType": "helm",
        "values": {
            "basic": {
                "rbac_enabled": true,
                "swr_user": "swr_test",
                "swr_addr": "10.125.6.246:20202"
            }
        },
        "description": "A device plugin for nvidia.com/gpu resource on nvidia driver",
        "addonTemplateLabels": [
            "Accelerator"
        ],
        "clusterID": "0c0e4a63-5539-11e9-95f7-0255ac10177e",
        "version": "1.0.0"
    },
    "status": {
        "message": "",
        "Reason": "",
        "currentVersion": {
            "input": {
                "basic": {
                    "swr_user": "swr_test",
                    "swr_addr": "10.125.6.246:20202"
                },
                "parameters": {}
            },
            "stable": true,
            "creationTimestamp": "2018-10-23T13:14:55Z",
            "version": "1.0.0",
            "translate": {
                "en_US": {
                    "addon": {
                        "changeLog": "A device plugin for nvidia.com/gpu resource on nvidia driver",
                        "description": "A device plugin for nvidia.com/gpu resource on nvidia driver"
                    }
                },
                "zh_CN": {
                    "addon": {
                        "changeLog": "",
                        "description": ""
                    }
}
            },
            "updateTimestamp": "2018-12-07T09:40:24Z"
        },
        "status": "installing"
    }
}

Status Codes

Table 12 Status codes

Status Code

Description

200

OK

For the description about error status codes, see Status Code.