在大三角帆中创建特定于阶段的参数?

问题描述

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

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

解决方法

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

pic1

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

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

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

pic2

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

如果您期望副本计数到达参数副本,您可以这样写:

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

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