Installing an Add-on Instance
Function
This API is used to install an add-on instance by using an add-on template.
URI
POST /api/v3/addons
Request Parameters
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
Content-Type |
Yes |
String |
Message body type (format). |
|
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, see Obtaining a User Token. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
kind |
Yes |
String |
API type. The value is fixed at Addon and cannot be changed. Any user-defined value is invalid. |
|
apiVersion |
Yes |
String |
API version. The value is fixed at v3 and cannot be changed. Any user-defined value is invalid. |
|
metadata |
Yes |
AddonMetadata object |
Basic information about the object. Metadata is a collection of attributes. |
|
spec |
Yes |
InstanceRequestSpec object |
Detailed description of add-on installation or upgrade. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
uid |
No |
String |
Unique ID |
|
name |
No |
String |
Add-on name |
|
alias |
No |
String |
Add-on alias |
|
labels |
No |
Map<String,String> |
Add-on labels in key-value pairs. This is a reserved field and does not take effect. |
|
annotations |
No |
Map<String,String> |
Add-on annotations in the format of key-value pairs.
|
|
updateTimestamp |
No |
String |
Updated at |
|
creationTimestamp |
No |
String |
Created at |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
version |
No |
String |
Version of the add-on to install or upgrade, 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: 201
|
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 |
AddonMetadata 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. |
|
Parameter |
Type |
Description |
|---|---|---|
|
uid |
String |
Unique ID |
|
name |
String |
Add-on name |
|
alias |
String |
Add-on alias |
|
labels |
Map<String,String> |
Add-on labels in key-value pairs. This is a reserved field and does not take effect. |
|
annotations |
Map<String,String> |
Add-on annotations in the format of key-value pairs.
|
|
updateTimestamp |
String |
Updated at |
|
creationTimestamp |
String |
Created at |
|
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. |
|
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. |
|
Parameter |
Type |
Description |
|---|---|---|
|
status |
String |
Add-on instance status. Options:
|
|
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. |
|
isRollbackable |
Boolean |
Whether the add-on version can be rolled back to the source version. |
|
previousVersion |
String |
The add-on version before upgrade or rollback |
|
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 |
Creation time. |
|
updateTimestamp |
String |
Update time. |
Example Requests
Install the coredns add-on of version 1.17.15. The add-on specification is 2500 QPS, and the number of add-on instances is 2.
{
"kind" : "Addon",
"apiVersion" : "v3",
"metadata" : {
"annotations" : {
"addon.install/type" : "install"
}
},
"spec" : {
"clusterID" : "1b2ec02d-a3b2-11ec-b0d0-0255ac100099",
"version" : "1.17.15",
"addonTemplateName" : "coredns",
"values" : {
"basic" : {
"cluster_ip" : "10.247.3.10",
"image_version" : "1.17.15",
"platform" : "linux-amd64",
"swr_addr" : "<Replace_SWR_address>",
"swr_user" : "hwofficial",
"rbac_enabled" : true
},
"flavor" : {
"name" : 2500,
"replicas" : 2,
"resources" : [ {
"limitsCpu" : "500m",
"limitsMem" : "512Mi",
"name" : "coredns",
"requestsCpu" : "500m",
"requestsMem" : "512Mi"
} ]
},
"custom" : {
"stub_domains" : { },
"upstream_nameservers" : [ ],
"cluster_id" : "1b2ec02d-a3b2-11ec-b0d0-0255ac100099",
"tenant_id" : "0504201b6c80256b2f08c0099f0c8fe4"
}
}
}
}
Example Responses
Status code: 201
OK
{
"kind" : "Addon",
"apiVersion" : "v3",
"metadata" : {
"uid" : "b748aaea-a984-11ec-987b-0255ac1000bc",
"name" : "coredns",
"alias" : "coredns",
"creationTimestamp" : "2022-03-22T02:06:41Z",
"updateTimestamp" : "2022-03-22T02:06:41Z"
},
"spec" : {
"clusterID" : "1b2ec02d-a3b2-11ec-b0d0-0255ac100099",
"version" : "1.17.15",
"addonTemplateName" : "coredns",
"addonTemplateType" : "helm",
"addonTemplateLogo" : "",
"addonTemplateLabels" : [ "ServiceDiscovery" ],
"description" : "CoreDNS is a DNS server that chains plugins and provides Kubernetes DNS Services",
"values" : {
"basic" : {
"cluster_ip" : "10.247.3.10",
"image_version" : "1.17.15",
"platform" : "linux-amd64",
"rbac_enabled" : true,
"swr_addr" : "",
"swr_user" : "hwofficial"
},
"custom" : {
"cluster_id" : "1b2ec02d-a3b2-11ec-b0d0-0255ac100099",
"stub_domains" : { },
"tenant_id" : "0504201b6c80256b2f08c0099f0c8fe4",
"upstream_nameservers" : [ ]
},
"flavor" : {
"name" : 2500,
"replicas" : 2,
"resources" : [ {
"limitsCpu" : "500m",
"limitsMem" : "512Mi",
"name" : "coredns",
"requestsCpu" : "500m",
"requestsMem" : "512Mi"
} ]
}
}
},
"status" : {
"status" : "installing",
"Reason" : "",
"message" : "",
"targetVersions" : null,
"currentVersion" : {
"version" : "1.17.15",
"input" : {
"basic" : {
"cluster_ip" : "10.247.3.10",
"image_version" : "1.17.15",
"platform" : "linux-amd64",
"swr_addr" : "",
"swr_user" : "hwofficial"
},
"parameters" : {
"custom" : {
"stub_domains" : "",
"upstream_nameservers" : ""
},
"flavor1" : {
"name" : 2500,
"replicas" : 2,
"resources" : [ {
"limitsCpu" : "500m",
"limitsMem" : "512Mi",
"name" : "coredns",
"requestsCpu" : "500m",
"requestsMem" : "512Mi"
} ]
},
"flavor2" : {
"name" : 5000,
"replicas" : 2,
"resources" : [ {
"limitsCpu" : "1000m",
"limitsMem" : "1024Mi",
"name" : "coredns",
"requestsCpu" : "1000m",
"requestsMem" : "1024Mi"
} ]
},
"flavor3" : {
"name" : 10000,
"replicas" : 2,
"resources" : [ {
"limitsCpu" : "2000m",
"limitsMem" : "2048Mi",
"name" : "coredns",
"requestsCpu" : "2000m",
"requestsMem" : "2048Mi"
} ]
},
"flavor4" : {
"name" : 20000,
"replicas" : 4,
"resources" : [ {
"limitsCpu" : "2000m",
"limitsMem" : "2048Mi",
"name" : "coredns",
"requestsCpu" : "2000m",
"requestsMem" : "2048Mi"
} ]
}
}
},
"stable" : true,
"translate" : {
"en_US" : {
"addon" : {
"changeLog" : "Supported CCE clusters of v1.21.",
"description" : "CoreDNS is a DNS server that chains plugins and provides Kubernetes DNS Services"
},
"description" : {
"Parameters.custom.stub_domains" : "The target nameserver may itself be a Kubernetes service. For instance, you can run your own copy of dnsmasq to export custom DNS names into the ClusterDNS namespace, a JSON map using a DNS suffix key (e.g. \"acme.local\") and a value consisting of a JSON array of DNS IPs.",
"Parameters.custom.upstream_nameservers" : "If specified, then the values specified replace the nameservers taken by default from the node's /etc/resolv.conf. Limits:a maximum of three upstream nameservers can be specified, A JSON array of DNS IPs.",
"Parameters.flavor1.description" : "Concurrent domain name resolution ability - External domain name: 2500 qps, Internal domain name: 10000 qps",
"Parameters.flavor1.name" : 2500,
"Parameters.flavor2.description" : "Concurrent domain name resolution ability - External domain name: 5000 qps, Internal domain name: 20000 qps",
"Parameters.flavor2.name" : 5000,
"Parameters.flavor3.description" : "Concurrent domain name resolution ability - External domain name: 10000 qps, Internal domain name: 40000 qps",
"Parameters.flavor3.name" : 10000,
"Parameters.flavor4.description" : "Concurrent domain name resolution ability - External domain name: 20000 qps, Internal domain name: 80000 qps",
"Parameters.flavor4.name" : 20000
},
"key" : {
"Parameters.custom.stub_domains" : "stub domain",
"Parameters.custom.upstream_nameservers" : "upstream nameservers"
}
},
"fr_FR" : {
"addon" : {
"changeLog" : "Prise en charge du cluster 1.21.",
"description" : "Un serveur DNS qui enchaîne les plug-ins et fournit des services DNS Kubernetes."
},
"description" : {
"Parameters.custom.stub_domains" : "Le serveur de noms cible peut lui-même être un service Kubernetes. Par exemple, vous pouvez exécuter votre propre copie de dnsmasq pour exporter des noms DNS personnalisés dans l'espace de noms ClusterDNS, une carte JSON à l'aide d'une clé de suffixe DNS (par exemple, «acme.local») et une valeur constituée d'un tableau JSON d'adresses IP DNS.",
"Parameters.custom.upstream_nameservers" : "Si spécifié, les valeurs spécifiées remplacent les serveurs de noms pris par défaut dans le fichier /etc/resolv.conf du nœud. Limites: un maximum de trois serveurs de noms en amont peuvent être spécifiés, un tableau JSON d'adresses IP DNS.",
"Parameters.flavor1.description" : "Capacité de résolution de nom de domaine simultanée - Nom de domaine externe: 2500 qps, Nom de domaine interne: 10000 qp",
"Parameters.flavor1.name" : 2500,
"Parameters.flavor2.description" : "Capacité de résolution de nom de domaine simultanée - Nom de domaine externe: 5000 qps, Nom de domaine interne: 20000 qp",
"Parameters.flavor2.name" : 5000,
"Parameters.flavor3.description" : "Capacité de résolution de nom de domaine simultanée - Nom de domaine externe: 10000 qps, Nom de domaine interne: 40000 qp",
"Parameters.flavor3.name" : 10000,
"Parameters.flavor4.description" : "Capacité de résolution de nom de domaine simultanée - Nom de domaine externe: 20000 qps, Nom de domaine interne: 80000 qp",
"Parameters.flavor4.name" : 20000
},
"key" : {
"Parameters.custom.stub_domains" : "domaine stub",
"Parameters.custom.upstream_nameservers" : "serveurs de noms en amont"
}
},
"zh_CN" : {
"addon" : {
"changeLog" : "",
"description" : ""
},
"description" : {
"Parameters.custom.stub_domains" : "",
"Parameters.custom.upstream_nameservers" : "",
"Parameters.flavor1.description" : "",
"Parameters.flavor1.name" : 2500,
"Parameters.flavor2.description" : "",
"Parameters.flavor2.name" : 5000,
"Parameters.flavor3.description" : "",
"Parameters.flavor3.name" : 10000,
"Parameters.flavor4.description" : "",
"Parameters.flavor4.name" : 20000
},
"key" : {
"Parameters.custom.stub_domains" : "",
"Parameters.custom.upstream_nameservers" : ""
}
}
},
"supportVersions" : null,
"creationTimestamp" : "2021-12-14T13:43:15Z",
"updateTimestamp" : "2022-01-11T14:32:10Z"
}
}
}
Status Codes
|
Status Code |
Description |
|---|---|
|
201 |
OK |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.