Reviewed-by: gtema <artem.goncharov@gmail.com> Co-authored-by: Dong, Qiu Jian <qiujiandong1@huawei.com> Co-committed-by: Dong, Qiu Jian <qiujiandong1@huawei.com>
29 KiB
Obtaining Cluster Certificates
Function
This API is used to obtain certificates of a specified cluster in form of kubeconfig file.
URI
POST /api/v3/projects/{project_id}/clusters/{cluster_id}/clustercert
Table 1 describes the parameters of this API.
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 andTable 3 describes 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 |
|---|---|---|---|
duration |
Yes |
Integer |
Period during which a cluster certificate is valid, in days. Validity period of the cluster certificate, in days. A cluster certificate can be valid for 1 to 1,825 days. If this parameter is set to -1, the validity period is 1,825 days (about 5 years). Minimum: 1 Maximum: 1825 |
Example request:
Applying for a cluster access certificate valid for 30 days
{
"duration": 30
}
Response
Response parameters:
Table 4 describes the response parameters.
Parameter |
Type |
Description |
|---|---|---|
kind |
String |
API type. The value is fixed at Config and cannot be changed. |
apiVersion |
String |
API version. The value is fixed at v1 and cannot be changed. |
preferences |
Object |
This field is not used currently and is left unspecified by default. |
clusters |
Array of clusters objects |
Cluster list. |
users |
Array of users objects |
Certificate information and client key information of a specified user. |
contexts |
Array of contexts objects |
Context list. |
current-context |
String |
Current context. If publicIp (VM EIP) exists, the value is external. If publicIp does not exist, the value is internal. |
Parameter |
Type |
Description |
|---|---|---|
name |
String |
Cluster name.
|
cluster |
cluster object |
Cluster information. |
Parameter |
Type |
Description |
|---|---|---|
server |
String |
Node IP address. |
certificate-authority-data |
String |
Certificate authorization data. |
insecure-skip-tls-verify |
Boolean |
Whether to skip the server certificate verification. If the cluster type is externalCluster, the value is true. |
Parameter |
Type |
Description |
|---|---|---|
name |
String |
The value is fixed to user. |
user |
user object |
Stores the certificate information and ClientKey information of a specified user. |
Parameter |
Type |
Description |
|---|---|---|
client-certificate-data |
String |
Client certificate. |
client-key-data |
String |
Contains PEM encoding data from the TLS client key file. |
Parameter |
Type |
Description |
|---|---|---|
name |
String |
Context name.
|
context |
context object |
Context information. |
Parameter |
Type |
Description |
|---|---|---|
cluster |
String |
Cluster context. |
user |
String |
User context. |
Response example:
{
"kind": "Config",
"apiVersion": "v1",
"preferences": {},
"clusters": [
{
"name": "internalCluster",
"cluster": {
"server": "https://192.168.1.7:5443",
"certificate-authority-data": ""
}
}
],
"users": [
{
"name": "user",
"user": {
"client-certificate-data": "",
"client-key-data": ""
}
}
],
"contexts": [
{
"name": "internal",
"context": {
"cluster": "internalCluster",
"user": "user"
}
}
],
"current-context": "internal"
}
Status Code
Table 11 describes the status code of this API.
Status Code |
Description |
|---|---|
200 |
Certificates of the specified cluster are successfully obtained. |
For details about error status codes, see Status Code.