首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何生成多环境组合和突变的配置

如何生成多环境组合和突变的配置
EN

Stack Overflow用户
提问于 2020-06-27 00:09:14
回答 1查看 48关注 0票数 1

我正在尝试使用gomplate作为配置生成器。我现在面临的问题是有多个突变和环境,应用程序需要以不同的方式进行配置。我希望通过模板和源数据中尽可能少的重复来实现一些用户友好和可读性强的方式。

这背后的动机是生成源数据app_config,可以在以下模板中使用它:

代码语言:javascript
复制
feature_a={{ index (datasource "app_config").features.feature_a .Env.APP_MUTATION .Env.ENV_NAME | required }}
feature_b={{ index (datasource "app_config").features.feature_b .Env.APP_MUTATION .Env.ENV_NAME | required }}

基本上,我希望有这个源数据

代码语言:javascript
复制
features:
    feature_a:
        ~: true
    feature_b:
        mut_a:
            ~: false
            dev: true
            test: true
        mut_b:
            ~: true

转换为此结果(用作app_config gomplate数据源)

代码语言:javascript
复制
features:
    feature_a:
        mut_a:
            dev: true
            test: true
            load: true
            staging: true
            prod: true
        mut_b:
            dev: true
            test: true
            load: true
            staging: true
            prod: true
    feature_b:
        mut_a:
            dev: true
            test: true
            load: false
            staging: false
            prod: false
        mut_b:
            dev: true
            test: true
            load: true
            staging: true
            prod: true

假设数据源platform被定义为

代码语言:javascript
复制
mutations:
    - mut_a
    - mut_b
environments:
    - dev
    - test
    - load
    - staging
    - prod

我选择使用~来声明,每个未定义的环境或突变都将获得~背后的值。

这应该在假设最低级别是环境,最低级别之前的级别是突变的情况下工作。除非没有定义环境,否则突变水平是最低的,并且适用于所有突变和环境。然而,我知道这会带来额外的复杂性,所以我倾向于使用简化的变体,其中始终定义了突变:

代码语言:javascript
复制
features:
    feature_a:
        mut_a: true
        mut_b: true
    feature_b:
        mut_a:
            ~: false
            dev: true
            test: true
        mut_b:
            ~: true

然而,由于我对gomplate还不熟悉,我不确定它是否是适合这项工作的工具。

我欢迎每一条反馈。

EN

回答 1

Stack Overflow用户

发布于 2020-07-13 17:00:20

经过进一步的调查,我决定使用单独的工具可以更好地解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62598691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档