如何在.kitchen.yml中设置动态属性值

问题描述 投票:2回答:1

我正在使用带有ec2驱动器的厨房。我想根据kitchen创建的实例名称将名称标签添加到ec2实例。如果我有一个'默认'套件并使用centos7.2,则厨房列表会将实例命名为'default-centos-72'。

我可以硬编码这样的东西:

suites:
  - name: default
    driver_config: 
      tags: { "Name": "kitchen-default-centos-72" }

但我真正喜欢的是这样的:

suites:
  - name: default
    driver_config: 
      tags: { "Name": <%= figure out instance name and prepend kitchen- %> }

我的例子建议使用ERB,这似乎是我的方式。但我似乎无法弄清楚用什么代码来获取实例的名称。我尝试使用一些Kitchen::Config.new...,但无法找出有用的东西。任何建议将不胜感激。

test-kitchen
1个回答
1
投票

我花了一段时间,但我终于遇到了一个可能向我展示光线的例子。在查看厨房的InSpec选项时,我发现您可以输出结果文件,其中包含测试运行期间使用的平台和套件名称。嵌套在platforms:选项下的driver:块中的以下语法应该有效。我没有通过在运行期间检查实例来测试这个,但希望我能找到一些时间来尽快完成。如果它不起作用,请告诉我,我们可以调整它直到它。

platforms:
  - name: ubuntu
    driver:
      tags:
        Name: test-kitchen-%{platform}-%{suite}

这应该如何工作是.kitchen.yml文件通过ERB预处理器运行,因此%{platform}在循环跨越platformssuites数组时解析为实例变量。

© www.soinside.com 2019 - 2024. All rights reserved.