kustomize:如何参考添加哈希后缀时由Secret Generator生成的秘密的名称?

问题描述 投票:0回答:0

问题摘要: 我正在使用kustomize使用

secretGenerator

生成一个秘密,我需要在部署中引用此秘密。 kustomize正在加上秘密名称的唯一哈希后缀,我无法在部署中使用名称引用生成的秘密。
预览的方法和当前挑战:

在过去,我用vars

捕获了秘密的and,并将其放置在需要的地方。由于已弃用了

metadata.name
,因此我现在使用替代品,但是这种方法不包括必要的哈希后缀。从我收集的内容来看,似乎替代品都不会具有此功能。禁用哈希的感觉就像是一个黑客,而不是最好的练习。使用名称参考变压器似乎比旧的
vars
解决方案更静态和难以维护。
可复制的结构
问题的可再现版本具有此条件
vars

代码片段和配置:

├── base │ ├── application │ │ ├── deployment.yml │ │ └── kustomization.yml │ └── secrets │ ├── kustomization.yml │ └── my-secret.env ├── components │ └── replacements_component │ └── kustomization.yml └── overlay └── instance └── kustomization.yml

base/application/deployment.yaml
看起来像这样:

base/application/kustomization.yaml 看起来像这样:

kind: Deployment apiVersion: apps/v1 metadata: name: test spec: selector: matchLabels: app: test template: metadata: labels: app: test spec: containers: - name: test env: - name: test value: REPLACE ----------------------------- resources: - ./deployment.yml

看起来像这样:
base/secrets/kustomization.yaml

这是覆盖的kustomization文件:

secretGenerator: - name: my-secret env: my-secret.env

实现与所需的输出:

当运行时,我将获得以下输出:

components/replacements_component/kustomization.yml

这是所需的输出:

apiVersion: kustomize.config.k8s.io/v1alpha1 kind: Component replacements: - source: kind: Secret name: my-secret targets: - select: kind: Deployment name: test fieldPaths: - spec.template.spec.containers.[name=test].env.[name=test].value

问题和帮助需要:

如何捕获生成的秘密名称,包括哈希后缀,并将其用作我部署的替代品?是否有最好的做法来处理这种情况,而无需诉诸于禁用哈希或使用更多静态解决方案?

Edit: 正如指出的那样,可以在特定部署中使用“ valuefrom.secretkeyref”和“ envfrom.secretref”。这将在这里具体起作用,但在其他情况下:

namespace: test-deployment

resources:
  - ../../base/application/
  - ../../base/secrets/

components:
  - ../../components/replacements_component

不可能使用上述参考文献。用更换来定位秘密,只给出了秘密的非隔离名称
	
您将需要在特定情况(例如AzureFile)上创建自定义资源转换。您可以在此处阅读有关如何实现它的更多信息。

任何人似乎已弃用azure文件

https://kubernetes.io/docs/conepte/storage/storage/volumes/#azurefile

    

kubernetes kubernetes-secrets configuration-management kustomize
© www.soinside.com 2019 - 2024. All rights reserved.