Installing an Add-on Instance¶
Function¶
This API is used to install an add-on instance by using the add-on template. One or more instances will be created for the installed add-on.
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¶
POST /api/v3/addons
Request¶
Request parameters:
Table 1 lists the request parameters.
Parameter | Mandatory | Description |
---|---|---|
Content-Type | Yes | Message body type (format). Possible values:
|
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. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
kind | Yes | String | API type. The value is fixed at Addon and cannot be changed. |
apiVersion | 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. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
annotations | Yes | Object | Add-on annotations in the format of key-value pairs. For add-on installation, the value is fixed at {"addon.install/type":"install"}. |
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, coredns. |
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. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
basic | Yes | Object | Basic add-on information. |
custom | No | Object | Custom parameters of the add-on. |
Example request:
{
"metadata": {
"annotations": {
"addon.install/type": "install"
}
},
"spec": {
"clusterID": "9dd81b6e-e8e5-11ea-8aeb-0255ac11161d",
"version": "1.1.10",
"addonTemplateName": "gpu-beta",
"values": {
"basic": {
"obs_url": "obs.eu-de.otc.t-systems.com",
"region": "eu-de",
"swr_addr": "10.125.7.25:20202",
"swr_user": "test",
"rbac_enabled": true
},
"custom": {
"is_driver_from_nvidia": true,
"nvidia_driver_download_url": "https://us.download.nvidia.com/tesla/396.37/NVIDIA-Linux-x86_64-396.37.run"
}
}
}
}
Response¶
Response parameters:
For the description about response parameters, see Table 6.
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. |
Parameter | Type | Description |
---|---|---|
uid | String | Unique ID of the add-on. |
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 was updated. |
creationTimestamp | String | Time when the add-on was created. |
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. |
addonTemplateLogo | String | OBS address of the current add-on logo. |
description | String | Add-on template description. |
values | Object | Add-on template installation parameters. These parameters vary depending on the add-on. |
Parameter | Type | Description |
---|---|---|
status | String | Add-on instance status. |
Reason | String | Cause of unsuccessful add-on installation. |
message | String | Installation error details. |
targetVersions | Array of strings | Versions to which the current add-on version can be upgraded. |
currentVersion | currentVersion object | Current version of the add-on instance. |
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 add-on was created. |
updateTimestamp | String | Time when the add-on was updated. |
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": "b6ba182c-f7c5-11ea-a975-0255ac111605",
"name": "gpu-beta",
"creationTimestamp": "2020-09-16T02:38:33Z",
"updateTimestamp": "2020-09-16T02:38:33Z"
},
"spec": {
"clusterID": "9dd81b6e-e8e5-11ea-8aeb-0255ac11161d",
"version": "1.1.10",
"addonTemplateName": "gpu-beta",
"addonTemplateType": "helm",
"addonTemplateLogo": "https://obs.eu-de.otc.t-systems.com/cce-addon-eu-de-aw1hz2u/gpu-betalogo.svg",
"addonTemplateLabels": [
"Accelerator"
],
"description": "A device plugin for nvidia.com/gpu resource on nvidia driver",
"values": {
"basic": {
"obs_url": "obs.eu-de.otc.t-systems.com",
"platform": "linux-amd64",
"rbac_enabled": true,
"region": "eu-de",
"swr_addr": "10.125.7.25:20202",
"swr_user": "test"
},
"custom": {
"is_driver_from_nvidia": true,
"nvidia_driver_download_url": "https://us.download.nvidia.com/tesla/396.37/NVIDIA-Linux-x86_64-396.37.run"
}
}
},
"status": {
"status": "installing",
"Reason": "",
"message": "",
"targetVersions": null,
"currentVersion": {
"version": "1.1.10",
"input": {
"basic": {
"obs_url": "obs.eu-de.otc.t-systems.com",
"region": "eu-de",
"swr_addr": "10.125.7.25:20202",
"swr_user": "test"
},
"parameters": {
"custom": {
"is_driver_from_nvidia": true,
"nvidia_driver_download_url": ""
}
}
},
"stable": true,
"translate": {
"en_US": {
"addon": {
"changeLog": "1.Supports both the default driver link address and the user-definable driver address download driver 2.Support kubernetes 1.15/1.17",
"description": "A device plugin for nvidia.com/gpu resource on nvidia driver"
},
"description": {
"Parameters.custom.drivers_info.cuda": "CUDA Toolkit",
"Parameters.custom.drivers_info.product": "Product",
"Parameters.custom.drivers_info.product_series": "Product Series",
"Parameters.custom.drivers_info.product_type": "Product Type",
"Parameters.custom.nvidia_driver_download_url": "Download the nvidia driver accroding to the input link"
},
"key": {
"Parameters.custom.nvidia_driver_download_url": "Nvidia Driver"
}
}
},
"supportVersions": null,
"creationTimestamp": "2020-08-21T08:25:51Z",
"updateTimestamp": "2020-08-28T12:21:11Z"
}
}
}
Status Codes¶
Status Code | Description |
---|---|
201 | OK |
For the description about error status codes, see Status Code.