Installing an Add-on Instance

Function

This API is used to install an add-on instance by using an add-on template.

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

POST /api/v3/addons

Request Parameters

Table 1 Request header parameters

Parameter

Mandatory

Type

Description

Content-Type

Yes

String

Message body type (format).

Default: application/json

X-Auth-Token

Yes

String

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 about how to obtain a token, see Authentication.

Maximum: 16384

Table 2 Request body parameters

Parameter

Mandatory

Type

Description

kind

Yes

String

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

Default: Addon

apiVersion

Yes

String

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

Default: v3

metadata

Yes

Metadata object

Basic information about the object. Metadata is a collection of attributes.

spec

Yes

InstanceRequestSpec object

Detailed description of add-on installation or upgrade.

Table 3 Metadata

Parameter

Mandatory

Type

Description

uid

No

String

Unique ID.

name

No

String

Add-on name.

labels

No

Map<String,String>

Add-on labels in the format of key-value pairs. This is a reserved field. User-defined labels will not take effect.

annotations

No

Map<String,String>

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

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

updateTimestamp

No

String

Time when the object was updated.

creationTimestamp

No

String

Time when the object was created.

Table 4 InstanceRequestSpec

Parameter

Mandatory

Type

Description

version

Yes

String

Version of the add-on to be installed or upgraded, for example, 1.0.0.

clusterID

Yes

String

Cluster ID.

values

Yes

Map<String,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.

addonTemplateName

Yes

String

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

Response Parameters

Status code: 200

Table 5 Response body parameters

Parameter

Type

Description

kind

String

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

Default: Addon

apiVersion

String

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

Default: v3

metadata

Metadata object

Basic information about the object. Metadata is a collection of attributes.

spec

InstanceSpec object

Detailed description of the add-on instance.

status

AddonInstanceStatus object

Add-on instance status.

Table 6 Metadata

Parameter

Type

Description

uid

String

Unique ID.

name

String

Add-on name.

labels

Map<String,String>

Add-on labels in the format of key-value pairs. This is a reserved field. User-defined labels will not take effect.

annotations

Map<String,String>

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

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

updateTimestamp

String

Time when the object was updated.

creationTimestamp

String

Time when the object was created.

Table 7 InstanceSpec

Parameter

Type

Description

clusterID

String

Cluster ID.

version

String

Add-on template version, for example, 1.0.0.

addonTemplateName

String

Add-on template name, for example, coredns.

addonTemplateType

String

Add-on template type.

addonTemplateLogo

String

URL for obtaining the add-on template logo.

Maximum: 200

addonTemplateLabels

Array of strings

Labels of the add-on template.

description

String

Add-on template description.

values

Map<String,Object>

Add-on template installation parameters (varying depending on the add-on). Set the parameters accordingly.

Table 8 AddonInstanceStatus

Parameter

Type

Description

status

String

Add-on instance status.

Enumeration values:

  • installing
  • upgrading
  • failed
  • running

Reason

String

Cause of the add-on installation failure.

message

String

Installation error details.

targetVersions

Array of strings

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

currentVersion

Versions object

Information about the current add-on version.

Table 9 Versions

Parameter

Type

Description

version

String

Add-on version.

input

Object

Add-on installation parameters.

stable

Boolean

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 object was created.

updateTimestamp

String

Time when the object was updated.

Table 10 SupportVersions

Parameter

Type

Description

clusterType

String

Cluster type that supports the add-on.

clusterVersion

Array of strings

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

Example Requests

{
  "kind" : "Addon",
  "apiVersion" : "v3",
  "metadata" : {
    "annotations" : {
      "addon.install/type" : "install"
    }
  },
  "spec" : {
    "addonTemplateName" : "npd",
    "clusterID" : "7fd16832-e9c1-11ea-a67b-0255ac10043d",
    "values" : {
      "basic" : {
        "rbac_enabled" : true,
        "swr_addr" : "100.125.6.246:20202",
        "swr_user" : "hwofficial"
      }
    },
    "version" : "1.13.5"
  }
}

Example Responses

Status code: 200

OK

{
  "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"
  },
  "spec" : {
    "clusterID" : "0c0e4a63-5539-11e9-95f7-0255ac10177e",
    "version" : "1.0.0",
    "addonTemplateName" : "gpu-beta",
    "addonTemplateType" : "helm",
    "addonTemplateLogo" : "",
    "addonTemplateLabels" : [ "Accelerator" ],
    "description" : "A device plugin for nvidia.com/gpu resource on nvidia driver",
    "values" : {
      "basic" : {
        "rbac_enabled" : true,
        "swr_addr" : "100.125.6.246:20202",
        "swr_user" : "hwofficial"
      }
    }
  },
  "status" : {
    "status" : "installing",
    "Reason" : "",
    "message" : "",
    "currentVersion" : {
      "version" : "1.0.0",
      "input" : {
        "basic" : {
          "swr_addr" : "100.125.6.246:20202",
          "swr_user" : "hwofficial"
        },
        "parameters" : { }
      },
      "stable" : true,
      "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" : ""
          }
        }
      },
      "creationTimestamp" : "2018-10-23T13:14:55Z",
      "updateTimestamp" : "2018-12-07T09:40:24Z"
    }
  }
}

Status Codes

Status Code

Description

200

OK

Error Codes

See Error Codes.