首页 > 解决方案 > 在大三角帆中创建阶段特定参数?

问题描述

我有一个大三角帆管道,它有 3 个阶段在不同的集群中创建配置映射。这些 configmaps 看起来很像,除了一个标签值。我希望能够为每个阶段创建一个标签参数,这样我就可以重用相同的 configmap.yaml 但只需替换标签。

目前这在大三角帆中不可行吗?或者替代方法是获取当前阶段名称(每个阶段的唯一值),然后使用大三角帆表达式在标签上使用它。这似乎也不受支持?

标签: spinnakerspinnaker-halyard

解决方案


首先,您将在管道编辑器的“配置”选项卡中注册一个管道参数(仅需要名称):

图1

在这种情况下,我们使用一个参数来指定清单的命名空间。编辑您的清单,以便元数据部分包含:

 # ... other keys
metadata:
  namespace: '${ parameters.namespace }'
# other keys ...

当您手动运行管道时,您将看到以下内容:

图2

在参数化不是字符串的 YAML 值(例如副本计数)时,您需要将计算的表达式显式转换为正确的类型。

如果您期望副本计数以参数副本的形式出现,您可以编写:

# ... other keys
spec:
  replicas: '${ #toInt( parameters.replicas ) }'
# other keys ...

参考: https ://spinnaker.io/guides/user/kubernetes-v2/parameterize-manifests/


推荐阅读