我有一个Kustomize转换器插件,可以读取Ingress spec / rules / * / http / paths / 0 / backend / serviceName中的serviceName值。该插件的目的是在应用nameSuffix / namePrefix之后,使用最终的serviceName更新Ingress中的主机条目。
插件从stdin读取,但是yaml的状态不是我所期望的。服务和入口的名称已应用nameSuffix / namePrefix,但是入口中serviceName的值仍然是原始服务名称。我通过在插件执行时转储Ingress yaml来验证了这一点。插件运行后,最终输出确实具有更新的serviceName(带有前缀/后缀)。因此,执行更新的插件后正在运行某些东西。
如何配置插件,使其在Ingress中的serviceName更新后运行?
答案 0 :(得分:0)
根据此示例:Transformer Configs
export default yup.object<myFormikForm.FormValues>({
allowOther: yup.boolean(),
arrayNumbers: yup
.array<number, *>(
yup
.number()
.nullable(true)
.transform((value, originalValue) =>
originalValue === '' ? null : value,
)
.min(
minSize,
oneLine`
Must be greater or equal than
0
`,
),
)
.when('allowOther', (allowOther: boolean, schema) =>
allowOther
? schema
: schema
.required('Required')
.test(
'hasAtLeastOneValue',
'Specify at least one value',
value =>
Array.isArray(value) ? value.some(Number.isFinite) : true,
),
),
});
和namePrefix
仅供参考:
nameSuffix
如果要将 namePrefix:
- path: metadata/name
包含在serviceName
中,则可以创建一个包含以下内容的nameReference
文件:
kustomize-config.yml
然后,您需要在nameReference:
- kind: ServiceName
fieldSpecs:
- path: spec/rules/*/http/paths/0/backend/serviceName
kind: Ingress
上引用它:
kustomization.yml
下次运行configurations:
- kustomize-config.yml
或kubectl kustomize .
时,您可能会看到前缀和后缀也反映到kustomize build .