gpt4 book ai didi

openshift - 将输入 key 安装到 OpenShift 构建配置中

转载 作者:行者123 更新时间:2023-12-02 23:08:20 24 4
gpt4 key购买 nike

我有 OpenShift 3.9 构建配置 my_bc和一个 secret my_secret类型 kubernetes.io/ssh-auth 。 secret 是这样创建的:

oc create secret generic my_secret \
--type=kubernetes.io/ssh-auth \
--from-file=key

我已将其作为源 secret 安装到 my_bc 中,和oc get bc/my_bc -o yaml揭示了这个规范:

source:
contextDir: ...
git:
uri: ...
sourceSecret:
name: my_secret
type: Git

因此,从 OpenShift 构建器可以从我的私有(private) Git 存储库中提取并使用其 Docker 策略生成镜像的意义上来说,它已经很有效。

我现在想添加my_secret也作为my_bc的输入 secret 。我的理解是,这不仅允许构建器使用它(作为源 secret ),而且还允许构建中的其他组件也可以选择它(作为输入 secret )。例如。对于 Docker 策略,它将存在于 WORKDIR .

documentation通过一个在创建构建配置时添加输入 key 的示例来解释这一点:

oc new-build \
openshift/nodejs-010-centos7~https://github.com/openshift/nodejs-ex.git \
--build-secret secret-npmrc

现在对应的spec指的是secrets下的 secret (不是: sourceSecret ),大概是因为它现在是输入 secret (而不是:源 secret )。

source:
git:
uri: https://github.com/openshift/nodejs-ex.git
secrets:
- destinationDir: .
secret:
name: secret-npmrc
type: Git

oc set build-secret显然允许使用命令行参数 --source 将源 secret (以及推送和拉取 secret - 这些用于与容器注册表交互)添加到构建配置中(以及 --push/--pull ),但是输入 secret 呢?我还没发现。

所以我有以下问题:

  1. 如何添加 my_secret作为现有构建配置的输入 secret ,例如 my_bc

  2. 构建时输入的 secret 会出现在哪里,例如在哪个路径下可以 Dockerfile获取存储在 my_secret 中的私钥?

最佳答案

这个过程现在对我有用(感谢@GrahamDumpleton 的指导):

  1. 暂时保留构建配置的源 secret ; get bc/my_bc -o jsonpath='{.spec.source.sourceSecret}'报告map[name:my_secret] (没有路径)
  2. 添加输入密码以在 .spec.source.secrets 处构建配置YAML 对应于 oc explain bc.spec.source.secrets :oc edit bc/my_bc
  3. 健全性检查:oc get bc/my_bc -o jsonpath='{.spec.source.secrets}'报告[map[destinationDir:secret secret:map[name:my_secret]]] ; oc describe bc/my_bc | grep 'Source Secret:'报告Source Secret: my_secret (无路径)和 oc describe bc/my_bc | grep "Build Secrets:"报告Build Secrets: my_secret->secret
  4. 访问内部的 secret Dockerfile初步的方式:COPY secret/ssh-privatekey secret/my_secret , RUN chmod 0640 secret/my_secret ;调整ssh-privatekey如果有必要(按照 oc get secret/my_secret -o jsonpath='{.data}' | sed -ne 's/^map\[\(.*\):.*$/\1/p' 的建议)
  5. 重建并重新部署镜像
  6. 健全性检查:oc exec -it <pod> -c my_db file /secret/my_secret报告/secret/my_secret: PEM RSA private key (图像的 WORKDIR/ )

关于openshift - 将输入 key 安装到 OpenShift 构建配置中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51850804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com