我有一个大三角帆管道,它有 3 个阶段在不同的集群中创建配置映射。这些 configmaps 看起来很像,除了一个标签值。我希望能够为每个阶段创建一个标签参数,这样我就可以重用相同的 configmap.yaml 但只需替换标签。
目前这在大三角帆中不可行吗?或者替代方法是获取当前阶段名称(每个阶段的唯一值),然后使用大三角帆表达式在标签上使用它。这似乎也不受支持?
我有一个大三角帆管道,它有 3 个阶段在不同的集群中创建配置映射。这些 configmaps 看起来很像,除了一个标签值。我希望能够为每个阶段创建一个标签参数,这样我就可以重用相同的 configmap.yaml 但只需替换标签。
目前这在大三角帆中不可行吗?或者替代方法是获取当前阶段名称(每个阶段的唯一值),然后使用大三角帆表达式在标签上使用它。这似乎也不受支持?
首先,您将在管道编辑器的“配置”选项卡中注册一个管道参数(仅需要名称):
在这种情况下,我们使用一个参数来指定清单的命名空间。编辑您的清单,以便元数据部分包含:
# ... other keys
metadata:
namespace: '${ parameters.namespace }'
# other keys ...
当您手动运行管道时,您将看到以下内容:
在参数化不是字符串的 YAML 值(例如副本计数)时,您需要将计算的表达式显式转换为正确的类型。
如果您期望副本计数以参数副本的形式出现,您可以编写:
# ... other keys
spec:
replicas: '${ #toInt( parameters.replicas ) }'
# other keys ...
参考: https ://spinnaker.io/guides/user/kubernetes-v2/parameterize-manifests/