mgmt/infrastructure/opentofu/environments/dev/CONSUL_KV_NAMING_CONVENTION.md

3.3 KiB
Raw Blame History

Consul KV 命名规范

本文档描述了在Consul KV中存储配置信息的统一命名规范以确保所有配置管理的一致性和可维护性。

命名规范

基本格式

config/{environment}/{provider}/{region_or_service}/{key}

各部分说明

  • config: 固定前缀,表示这是一个配置项
  • environment: 环境名称,如 devstagingprod
  • provider: 云服务提供商,如 oracledigitaloceanawsgcp
  • region_or_service: 区域或服务名称,如 krussgp
  • key: 具体的配置键名,如 tokentenancy_ociduser_ocid

示例

Oracle Cloud 配置

config/dev/oracle/kr/tenancy_ocid
config/dev/oracle/kr/user_ocid
config/dev/oracle/kr/fingerprint
config/dev/oracle/kr/private_key
config/dev/oracle/kr/region

config/dev/oracle/us/tenancy_ocid
config/dev/oracle/us/user_ocid
config/dev/oracle/us/fingerprint
config/dev/oracle/us/private_key
config/dev/oracle/us/region

DigitalOcean 配置

config/dev/digitalocean/token

其他云服务商配置(示例)

config/dev/aws/access_key
config/dev/aws/secret_key
config/dev/aws/region

config/dev/gcp/project_id
config/dev/gcp/credentials_file
config/dev/gcp/region

使用说明

添加新配置

当需要为新的云服务商或环境添加配置时,请遵循上述命名规范:

  1. 确定环境名称(如 dev
  2. 确定云服务提供商(如 aws
  3. 确定区域或服务(如 ap-northeast-2
  4. 确定具体的配置键名(如 access_key

例如:

consul kv put config/dev/aws/ap-northeast-2/access_key your_access_key

在Terraform中使用

在Terraform配置中使用 consul_keys 数据源获取配置:

data "consul_keys" "aws_config" {
  key {
    name = "access_key"
    path = "config/dev/aws/ap-northeast-2/access_key"
  }
  key {
    name = "secret_key"
    path = "config/dev/aws/ap-northeast-2/secret_key"
  }
}

provider "aws" {
  access_key = data.consul_keys.aws_config.var.access_key
  secret_key = data.consul_keys.aws_config.var.secret_key
  region     = "ap-northeast-2"
}

与Vault集成

当需要与Vault集成时可以使用相同的命名规范确保Consul和Vault中的配置路径保持一致。

维护说明

  • 所有Agent在添加新的Consul KV键时必须遵循此命名规范
  • 定期检查Consul KV中的键确保符合规范
  • 如需修改命名规范请更新此文档并通知所有相关Agent

常见问题

Q: 为什么不使用服务名称作为前缀(如 oracle/config/dev/...

A: 使用 config 作为统一前缀可以更容易地区分配置项和其他类型的键值对,便于管理和筛选。

Q: 如何处理敏感信息?

A: 敏感信息如API密钥、私钥等应存储在Vault中Consul主要用于非敏感配置。如果必须在Consul中存储敏感信息请确保Consul集群的安全性。

Q: 如何处理多环境配置?

A: 通过修改 environment 部分来区分不同环境,如 config/dev/...config/staging/...config/prod/...

更新历史

  • 2024-01-01: 初始版本,定义了基本的命名规范
  • 2024-01-02: 统一DigitalOcean配置路径consul/digitalocean/token 改为 config/dev/digitalocean/token