密钥的文件名。值的文件内容。
configdir的Python项目详细描述
密钥的文件名。值的文件内容。在
为了安全性、简单性和一致性,所有配置都在文件中- 不是环境变量。在
Features
- 安全性–Docker映像或容器上设置的环境变量是 可在容器外注射。这意味着环境变量 对密码或加密密钥等机密不安全。在
- 简单性–ConfigDir易于解析。这对任何人来说都很容易 要分析的语言。它对shell解释程序特别有用,比如 猛击。在
- 一致性–而不是有两种或多种方法来配置 安全应用程序(机密文件,环境变量 所有配置都作为文件完成。在
- Kubernetes集成–易于从ConfigMaps或Secrets生成
- 可变插值–配置值可以参考其他 配置值。Kubernetes只为 command、args或env字段so Kubernetes变量 当卷装入ConfigMaps或 Secrets作为文件。在
ConfigDir Standard
配置作为文件目录装入/configdir (默认情况下)。可以用重写配置目录 环境变量CONFIGDIR。在
每个密钥都创建为一个名为/configdir/{key}的文件。配置, 解析时,将是字典的键所在的字典 子文件名。在
允许嵌套键:/configdir/{key}/{sub-key}。如果父密钥 是一个目录,值将是字典中 字典是子文件名。目录嵌套没有限制 深度。在
Filenames
每个文件名最多由两部分组成:name和一个可选的 extension。只有name部分用于配置密钥。在
- name必须仅由小写ascii字母组成,大写ascii 字母、数字和下划线,不能以数字开头 ([a-zA-Z_][a-zA-Z0-9_]*)。在
- extension必须省略或是下面的File Types之一。在
File Contents
从文件内容中删除尾随空格和前导空格(除了 .bin文件)。在
Variable Interpolation
文件可以包含其他配置键的模板占位符。占位符 用方括号({{PLACEHOLDER}})括起来。在
- 占位符可以使用点(.)引用嵌套键 符号:{{PARENT_KEY.NESTED_KEY}}
- 占位符可以使用at(@)引用嵌套列表项 符号:{{PARENT_KEY@1}}
- 占位符只能引用数字或字符串值。在
File Types
- 没有扩展名的文件的值是UTF-8编码的,可以 包含插值变量。在
- .json将自动解码为JSON,然后每个值将 内插。在
- .yaml将自动解码为YAML,然后每个值将 内插。在
- .bin不会被UTF8解码,不会被插值,并且 以二进制形式加载。在
Example
Directory Contents
File Path | Contents |
---|---|
^{tt23}$ | ^{tt24}$ |
^{tt25}$ | ^{tt26}$ |
^{tt27}$ | ^{tt28}$ |
^{tt29}$ | ^{tt30}$ |
^{tt31}$ | ^{tt32}$ |
^{tt33}$ | ^{tt34}$ |
^{tt35}$ | ^{tt36}$ |
^{tt37}$ | ^{tt38}$ |
^{tt39}$ | ^{tt40}$ |
^{tt41}$ | ^{tt42}$ |
^{tt43}$ | ^{tt26}$ |
^{tt45}$ | ^{tt46}$ |
^{tt47}$ | ^{tt48}$ |
^{tt49}$ | ^{tt50}$ |
^{tt51}$ | ^{tt52}$ |
^{tt53}$ | ^{tt50}$ |
{4}
{"PUBLIC_KEY":"<binary>","KEYS":{"keys":{"id":1,"private_key":"<pem>"}},"CELERY_BROKER_TRANSPORT_OPTIONS":{"master_name":"mymaster","visibility_timeout":"3600"},"CELERY_BROKER_URL":"sentinel://redis-sentinel:6319","POSTGRES_DB_URI":"postgresql://root:postgres@postgres:5432/database","REDIS_HOST":"redis-sentinel","REDIS_PASSWORD":"$3cr3t","REDIS_PORT":"6319","REDIS_SENTINEL_MASTER":"mymaster","REDIS_URI":"redis://:$3cr3t@redis-sentinel:6319/mymaster/0","SMTP":{"certificate":"<binary>","host":"mail.mailgun.com","password":"$3cr3t","port":"542"}}
Python Usage
^{pr2}$Similar Projects
- envdir–启动一个 配置目录内容为环境的子进程 变量。还有一个Python port。在
- confdir-Python 基于。在
- 项目
标签: