在OpenShift中声明性装载服务帐户机密

在OpenShift中声明性装载服务帐户机密,openshift,kubernetes-helm,Openshift,Kubernetes Helm,我正在使用helm图表部署一些webhook处理程序。处理程序需要连接到它们正在运行的集群,以便在其中部署配置。这是可行的,但要进入掌舵图,一步是很困难的。当图表创建服务帐户时,它会给它一个随机命名的秘密: $ oc describe sa sa-build-webhook-realworld Name: sa-build-webhook-realworld Namespace: your-eng2 Labels: ap

我正在使用helm图表部署一些webhook处理程序。处理程序需要连接到它们正在运行的集群,以便在其中部署配置。这是可行的,但要进入掌舵图,一步是很困难的。当图表创建服务帐户时,它会给它一个随机命名的秘密:

$ oc describe sa sa-build-webhook-realworld Name: sa-build-webhook-realworld Namespace: your-eng2 Labels: app=sa-build-webhook-realworld Annotations: Image pull secrets: sa-build-webhook-realworld-dockercfg-4qz9g Mountable secrets: sa-build-webhook-realworld-token-bqtnw sa-build-webhook-realworld-dockercfg-4qz9g Tokens: sa-build-webhook-realworld-token-bqtnw sa-build-webhook-realworld-token-k7lq8 Events: <none> 我试图看看是否有一种方法可以在图表yaml中声明性地实现这一点,该图表yaml同时创建
dc
sa

是否有方法从图表中的部署配置引用生成的服务帐户机密


或者我应该让helm/helmfile作为其工作的一部分来执行命令行查找吗?

.spec.template.spec
中,您可以指定
serviceAccountName
以确保pod作为所需的ServiceAccount运行和验证。资料来源:

范例

kind: DeploymentConfig
apiVersion: apps.openshift.io/v1
metadata:
  name: deployment
spec:
    metadata:
      name: deployment-pod
    spec:
      serviceAccountName: sa-build-webhook-realworld
  ...

你可以使用ServiceAccounts来运行你的POD,这可能是值得探索的:great kubectl显示了
serviceAccountName:default
,因此我将尝试将其放入图表中,看看自动装载的机密是否按照该文档工作。我会让你知道的。kubectl提供了正确的服务帐户,它被挂载到默认位置,并且它想要我自己挂载,由diff
diff/var/run/secrets/kubernetes.io/servicecomport/token/sa secret volume/token
@WillGordon确认。如果你想发布答案,我会接受。干杯如果我有机密链接到服务帐户(),pod中的机密在什么路径上可用?令牌位于
/var/run/secrets/kubernetes.io/servicecomport/token
,如与服务帐户链接的一般机密如何所述?我理解但关于令牌。我认为当您使用SA的令牌进行身份验证时,服务帐户可以隐式访问这些机密。但是,如果您需要明确访问这些机密,只需将它们作为存储或环境变量添加到部署/pod中即可:
kind: DeploymentConfig
apiVersion: apps.openshift.io/v1
metadata:
  name: deployment
spec:
    metadata:
      name: deployment-pod
    spec:
      serviceAccountName: sa-build-webhook-realworld
  ...