在通过curl构建docker文件的过程中,有一个init容器将keystore.jks从nexus repo复制到一个卷中。然后,一旦init容器处于活动状态,那么获取keystore.jks并进行必要更新的python代码就会失效。我们试图做的是将这个keystore.jks作为一个秘密存储在openshift中,但一旦init容器处于活动状态,如何将秘密复制到卷中?让python代码可以像以前一样使用它?提前感谢您的任何意见/帮助!
@larsks建议您可以将机密装载到卷中,并将其用于主容器。
这里分享可能有助于您理解的YAML配置。
apiVersion: v1
kind: Secret
metadata:
name: ssh-key
namespace: acme
data:
id_rsa: {{ secret_value_base64_encoded }}
现在添加秘密装载路径
spec:
template:
spec:
containers:
- image: "my-image:latest"
name: my-app
...
volumeMounts:
- mountPath: "/var/my-app"
name: ssh-key
readOnly: true
initContainers:
- command:
- sh
- -c
- chown -R 1000:1000 /var/my-app #if any changes required
image: busybox:1.29.2
name: set-dir-owner
securityContext:
privileged: true
volumeMounts:
- mountPath: /var/my-app
name: ssh-key
volumes:
- name: ssh-key
secret:
secretName: ssh-key
正如建议的那样,更好的选择是在没有init-contaner的情况下直接将机密装载到主容器。
spec:
template:
spec:
containers:
- image: "my-image:latest"
name: my-app
...
volumeMounts:
- mountPath: "/var/my-app"
name: ssh-key
readOnly: true
volumes:
- name: ssh-key
secret:
secretName: ssh-key