我正在使用头盔图来部署一些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>
我可以抓住它,并使用以下命令在部署配置中进行设置:
#https://codereview.stackexchange.com/a/212095/75693
SECRET_NAME=$(
oc describe sa sa-tag-realworld |
awk -F': *' '
$2 { KEY=$1 ; VALUE=$2; }
!$2 { VALUE=$1; }
KEY=="Mountable secrets" && VALUE !~ /docker/ { print VALUE }
'
)
oc set volume dc/webhook-realworld \
--add --name=sa-secret-volume \
--mount-path=/sa-secret-volume \
--secret-name=$SECRET_NAME
我试图查看是否有一种方法可以在图表yaml中声明性地执行此操作,以同时创建here的dc
和sa
。
是否可以通过图表中的部署配置引用生成的服务帐户密码?
还是我应该尝试获取helm / helmfile来进行命令行查找作为其工作的一部分?
答案 0 :(得分:1)
在.spec.template.spec
内,您可以指定serviceAccountName
以确保您的Pod运行并作为所需的ServiceAccount进行身份验证。来源:https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
示例
kind: DeploymentConfig
apiVersion: apps.openshift.io/v1
metadata:
name: deployment
spec:
metadata:
name: deployment-pod
spec:
serviceAccountName: sa-build-webhook-realworld
...