CoherencePlatform CNC项目环境配置详解
什么是CNC环境配置文件
在CoherencePlatform CNC项目中,环境配置文件是一个核心组件,它定义了项目需要部署的基础设施、构建过程和运行环境。这个YAML格式的文件相当于整个项目的部署蓝图,工程师可以通过它精细控制不同环境的配置细节。
配置文件结构解析
基础配置部分
配置文件以应用的基本信息开头:
name: my-first-app
provider: gcp
region: us-east1
flavor: run-light
version: 1
- name:应用的唯一标识名称
- provider:指定云服务提供商,目前支持GCP和AWS
- region:默认部署区域,可在集合级别覆盖
- flavor:部署模板类型,决定了基础设施的架构模式
- version:所用flavor的版本号
自定义模板配置
对于需要自定义部署模板的高级用户:
template_config:
template_directory: custom
provision_filename: "mymaintf.tf.j2"
deploy_filename: "mydeployscript.sh.j2"
build_filename: "mybuildscript.sh.j2"
这部分允许开发者:
- 指定自定义模板的目录位置
- 覆盖默认的Terraform配置文件名
- 自定义部署和构建脚本的名称
环境集合配置
环境按集合(collection)组织,每个集合可以包含多个环境:
collections:
- name: dev
base_domain: mydevsite.com
region: us-east1
account_id: "foo-bar-123"
environments:
- name: dev
关键特性包括:
- 同一集合中的环境共享基础域名(base_domain)
- 可以覆盖应用级别的默认区域设置
- 支持跨云账户部署(通过account_id指定)
- 环境名称将用于生成最终的访问URL
环境变量管理
CNC提供了灵活的环境变量管理机制:
environment_variables:
# 直接定义值
- name: FOO
value: bar
# 引用云平台秘密
- name: foo-secret
secret_id: bar123
# 引用Terraform输出
- name: foo-output
output_name: bar123-a
# 变量别名
- name: foo-standard-alias
alias: foo-standard
变量类型说明:
- 静态变量:直接在配置中定义值
- 秘密引用:从云平台的秘密管理服务获取敏感信息
- 输出引用:获取Terraform部署后的输出值
- 变量别名:为已有变量创建别名引用
最佳实践建议
- 环境隔离:为开发、测试和生产环境使用不同的集合
- 秘密管理:敏感信息务必使用secret_id引用,不要直接写在配置中
- 区域选择:根据用户地理位置选择最近的区域
- 命名规范:保持环境名称简洁且有意义,如dev/staging/prod
- 版本控制:将环境配置文件纳入版本控制系统管理
高级用法
对于复杂场景,可以考虑:
- 使用条件逻辑结合不同flavor
- 利用变量别名实现环境间的配置复用
- 通过自定义模板实现特殊基础设施需求
- 结合CI/CD系统实现自动化部署
通过合理配置CNC环境文件,开发团队可以实现从开发到生产的一致部署体验,同时保持各环境间的必要隔离和差异化配置。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考