Ingress serviceName更新后如何应用变压器插件?

时间:2019-10-21 21:22:08

标签: kubernetes kustomize

我有一个Kustomize转换器插件,可以读取Ingress spec / rules / * / http / paths / 0 / backend / serviceName中的serviceName值。该插件的目的是在应用nameSuffix / namePrefix之后,使用最终的serviceName更新Ingress中的主机条目。

插件从stdin读取,但是yaml的状态不是我所期望的。服务和入口的名称已应用nameSuffix / namePrefix,但是入口中serviceName的值仍然是原始服务名称。我通过在插件执行时转储Ingress yaml来验证了这一点。插件运行后,最终输出确实具有更新的serviceName(带有前缀/后缀)。因此,执行更新的插件后正在运行某些东西。

如何配置插件,使其在Ingress中的serviceName更新后运行?

1 个答案:

答案 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 .