# 创建配置项
#### 操作场景
配置项（ConfigMap）是Kubernetes中用于存储非敏感配置信息的资源类型，其内容可由用户灵活定义。配置项创建完成后，支持以文件挂载或环境变量注入两种方式，被容器工作负载直接调用。
通过配置项，能够将配置文件与容器镜像解耦，大幅提升容器工作负载的可移植性，避免因配置差异导致镜像重复构建。
配置项的核心价值体现在以下几个方面：
- 配置文件便捷注入容器：支持将配置文件直接挂载到容器指定路径，无需修改镜像即可完成配置加载。
- 多环境多业务配置统一管理：可针对开发、测试、生产等不同环境，以及不同业务线的需求，分别创建独立配置项，实现配置的隔离与高效管控。
- 支撑工作负载敏捷部署与版本管控：相同工作负载可适配不同配置项快速部署到目标环境，同时配置项支持版本化管理，便于工作负载配置的更新迭代与快速回滚。
 
#### 约束与限制
- ConfigMap资源文件大小不得超过1MB。
- [静态Pod](https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/static-pod/)中不可使用ConfigMap。
 
#### 创建配置项
您可以通过以下方式进行创建。
- [通过控制台创建配置项]
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
  
  2. 在左侧导航栏中选择"配置与密钥"，在右上角单击"创建配置项"。
  
  3. 填写参数。 
      表1新建配置参数说明 
     | 参数       | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                    |
     |:---|:---|
     | 名称     | 新建的配置项名称，同一个命名空间里命名必须唯一。                                                                                                                                                                                                                                                                                                                                                                                                 |
     | 命名空间     | 新建配置项所在的命名空间。若不选择，默认为default。                                                                                                                                                                                                                                                                                                                                                                                            |
     | 描述    | 配置项的描述信息。                                                                                                                                                                                                                                                                                                                                                                                                               |
     | 配置数据     | 配置项的数据，单击"添加"，输入键值对的形式。 - 键：由数字、字母、点号（.）、中划线（-）、下划线（_）组成，且不能以".."开头，1-63个字符。  - 值：支持String、JSON和YAML格式。   |
     | 标签管理（可选） | 配置项的标签，单击"添加标签"，输入键值对的形式。键值需要以字母或者数字开头和结尾，由字母、数字、连接符（-）、下划线（_）、点号（.）组成且63个字符之内。                                                                                                                                                                                                                                                                                                                                          |
        
     
     
  
  4. 配置完成后，单击"确定"。 
     配置项列表中会出现新创建的配置项。
     
     
   
- [使用kubectl创建配置项]
  1. 请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0107.html)配置kubectl命令。
  
  2. 创建并编辑cce-configmap.yaml文件。 
     ```
     vi cce-configmap.yaml
     ```
     内容如下：
     ```
     apiVersion: v1
     kind: ConfigMap
     metadata:
       name: cce-configmap
     data:
       SPECIAL_LEVEL: Hello
       SPECIAL_TYPE: CCE
     ```
     表2关键参数说明 
     | 参数          | 说明              |
     |:---|:---|
     | apiVersion    | 固定值为v1。        |
     | kind         | 固定值为ConfigMap。 |
     | metadata.name | 配置项名称，可自定义。      |
     | data          | 配置项的数据，需填写键值对形式。 |
        
     
     
  
  3. 创建配置项。 
     ```
     kubectl create -f cce-configmap.yaml
     ```
     查看已创建的配置项。
     ```
     kubectl get cm
     ```
     回显如下：
     ```
     NAME               DATA            AGE
     cce-configmap      2               7m
     ```
     
     
   
#### 相关操作
配置项创建完成后，您还可以执行[表3]中的操作。
 表3其他操作 
| 操作   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|
| 编辑YAML | 单击配置项名称后的"编辑YAML"，可编辑当前配置项的YAML文件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| 更新配置  | 1. 选择需要更新的配置项名称，单击"更新"。  2. 根据[表1]更改信息。 说明： 在更新配置项时，如果开启"版本管理"，系统会自动为修改前的配置项数据生成一个历史版本，方便用户管理、回退配置项数据。   3. 单击"确定"。   |
| 删除配置 | 选择要删除的配置项，单击"更多 \> 删除"。 根据系统提示删除配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 回退配置   | 当该配置项存在历史版本时，才会出现该功能，选择"更多 \> 回退"，根据系统提示回退至指定历史版本。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
