密钥的文件名。值的文件内容。

configdir的Python项目详细描述


密钥的文件名。值的文件内容。在

为了安全性、简单性和一致性,所有配置都在文件中- 不是环境变量。在

Features

  • 安全性–Docker映像或容器上设置的环境变量是 可在容器外注射。这意味着环境变量 对密码或加密密钥等机密不安全。在
  • 简单性–ConfigDir易于解析。这对任何人来说都很容易 要分析的语言。它对shell解释程序特别有用,比如 猛击。在
  • 一致性–而不是有两种或多种方法来配置 安全应用程序(机密文件,环境变量 所有配置都作为文件完成。在
  • Kubernetes集成–易于从ConfigMapsSecrets生成
  • 可变插值–配置值可以参考其他 配置值。Kubernetes只为 commandargsenv字段so Kubernetes变量 当卷装入ConfigMapsSecrets作为文件。在

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 PathContents
^{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 基于。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用从PreparedStatement返回的RowId。getGeneratedKeys()?   selenium chrome驱动程序中下一个网站url的java空白页   java如何将参数化匿名类转换为lambda?   java JUnit在AfterClass上获取测试结果   java将动态XML/JSON内容与静态标记化负载进行比较,并检索标记值   java共享一个需要数据持久性的项目[数据库]   java在调用方法时获取意外的参数类型。getParameterTypes()   java如何用jdbc在swing中用另一个字段替换外键?   需要java Jersey Tomcat CDI依赖项解释   java如何生成UML图   java如何编写Jersey rest服务可以通过给定的spring代码访问   SpringMaven存储库管理器Nexus与Java依赖项的Artifactory   java将包从另一个项目导入eclipse中的当前项目   加密Java使用密码加密文件