
# 创建配置集合 - CreateConfigSet
#### 功能介绍
创建配置集合
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-ucs/ucs_api_0026.html)。
#### URI
POST /v1/configsets
#### 请求参数
表1请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                              |
|:---|:---|:---|:---|
| X-Auth-Token | 否    | String | 身份认证信息，调用接口的认证方式分为Token和AK/SK两种，如果您使用的Token方式，此参数为必填，请填写Token的值 |
   
表2请求Body参数 
| 参数                 | 是否必选 | 参数类型                                                                    | 描述                 |
|:---|:---|:---|:---|
| name               | 是    | String                                                                  | 配置集合的名称            |
| namespace          | 是    | String                                                                  | 命名空间               |
| configSetType      | 否    | String                                                                  | 配置集合的类型            |
| repoName           | 否    | String                                                                  | 源代码仓库名称            |
| bucketSpec         | 否    | Object                                                                  | 对象存储桶的基本信息         |
| helmChartSpec      | 否    | Object                                                                  | Helm Chart源基本信息    |
| gitRepositorySpec  | 否    | [GitRepositorySpec] object | Git仓库源基本信息         |
| helmRepositorySpec | 否    | Object                                                                  | Helm仓库基本信息         |
| kustomizationSpec  | 否    | [KustomizationSpec] object | Kustomization的部署参数 |
| clusterInfo        | 否    | [ClusterInfo] object             | 目标集群信息             |
| secretInfo         | 否    | [SecretInfo] object               | 访问配置源的认证信息         |
   
 表3GitRepositorySpec 
| 参数        | 是否必选 | 参数类型                                                                          | 描述                            |
|:---|:---|:---|:---|
| url       | 否    | String                                                                        | Git仓库地址                       |
| ref       | 否    | [GitRepositoryRef] object         | 用于指定要解析和检出的Git引用              |
| secretRef | 否    | [LocalObjectReference] object | 包含认证信息的Secret                 |
| interval  | 否    | String                                                                        | 周期性检查仓库更新的时间间隔，格式如 "1m" 表示1分钟 |
| timeout   | 否    | String                                                                        | Git 操作（如克隆）的超时时间，默认60秒        |
   
 表4GitRepositoryRef 
| 参数     | 是否必选 | 参数类型   | 描述                                       |
|:---|:---|:---|:---|
| branch | 否    | String | 用于指定要检出的Git分支。如果未定义其他字段，则默认检出'master'分支。 |
   
 表5LocalObjectReference 
| 参数   | 是否必选 | 参数类型   | 描述       |
|:---|:---|:---|:---|
| name | 否    | String | 被引用资源的名称 |
   
 表6KustomizationSpec 
| 参数              | 是否必选 | 参数类型                                                    | 描述                                |
|:---|:---|:---|:---|
| path            | 否    | String                                                  | kustomization.yaml文件的路径           |
| interval        | 否    | String                                                  | 用于指定控制器执行 Kustomization同步与校验的时间间隔 |
| timeout         | 否    | String                                                  | 用于定义验证、应用和健康检查操作的超时               |
| sourceRef       | 否    | [SourceRef] object | 用于定义kustomization文件的源引用           |
| targetNamespace | 否    | String                                                  | 用于设置或覆盖kustomization.yaml文件中的命名空间 |
| prune           | 否    | Boolean                                                 | 是否启用垃圾回收功能                        |
   
 表7SourceRef 
| 参数   | 是否必选 | 参数类型   | 描述                                              |
|:---|:---|:---|:---|
| kind | 是    | String | 被引用资源的类型，必须为 OCIRepository、GitRepository或Bucket |
| name | 是    | String | 被引用资源的名称                                        |
   
 表8ClusterInfo 
| 参数          | 是否必选 | 参数类型   | 描述   |
|:---|:---|:---|:---|
| clusterID   | 否    | String | 集群ID |
| clusterName | 否    | String | 集群名称 |
| clusterPath | 否    | String | 集群路径 |
   
 表9SecretInfo 
| 参数       | 是否必选 | 参数类型   | 描述               |
|:---|:---|:---|:---|
| authMode | 否    | String | 使用的认证模式          |
| secret   | 否    | Object | 存储了实际认证凭据的Secret |
   
#### 响应参数
**状态码：201**
表10响应Body参数 
| 参数  | 参数类型   | 描述     |
|:---|:---|:---|
| uid | String | 配置集合ID |
   
**状态码：400**
表11响应Body参数 
| 参数 | 参数类型   | 描述 |
|:---|:---|:---|
| -  | String | -  |
   
**状态码：409**
表12响应Body参数 
| 参数 | 参数类型   | 描述 |
|:---|:---|:---|
| -  | String | -  |
   
**状态码：500**
表13响应Body参数 
| 参数 | 参数类型   | 描述 |
|:---|:---|:---|
| -  | String | -  |
   
#### 请求示例
创建配置集合
```
POST https://ucs.myhuaweicloud.com/v1/configsets
{
  "name" : "example",
  "namespace" : "default",
  "gitRepositorySpec" : {
    "url" : "https://github.com/example/app-configs.git",
    "ref" : {
      "branch" : "master"
    },
    "interval" : "1m",
    "timeout" : "1m"
  },
  "clusterInfo" : {
    "clusterName" : "test",
    "clusterID" : "db46d87b-469e-11f0-8c47-0255ac100b09"
  },
  "repoName" : "example",
  "configSetType" : "Kustomize",
  "kustomizationSpec" : {
    "path" : "xxx",
    "interval" : "1m",
    "timeout" : "1m",
    "sourceRef" : {
      "kind" : "GitRepository",
      "name" : "example"
    },
    "targetNamespace" : "default"
  }
}
```
#### 响应示例
**状态码：201**
配置集合创建成功
```
{
  "uid" : "7e1b45ef-84ab-4604-9a49-c9cba87cb1cd"
}
```
#### 状态码
| 状态码 | 描述                |
|:---|:---|
| 201 | 配置集合创建成功          |
| 400 | 客户端请求错误，服务器无法执行请求 |
| 409 | 请求存在冲突            |
| 500 | 服务器内部错误           |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-ucs/ErrorCode.html)。
