У меня есть Pod на OpenShift 3.11 (Kubernetes 1.11). Из этого POD мне нужно нажать на репозиторий GitHub, используя SSH-ключ с кодовой фразой. Теперь я могу создать секрет просто отлично:
apiVersion: v1
data:
known_hosts: Yml...
passphrase: abcde...
ssh-privatekey: LS0...
kind: Secret
metadata:
name: git-ssh-mirror
namespace: mynamespace
type: kubernetes.io/ssh-auth
Однако я понятия не имею, как тогда подключить этот секрет таким образом, чтобы модуль работал как с закрытым ключом, так и с парольной фразой.
Любые указатели будут оценены.
Поля passphrase
и ssh-privatekey
в разделе data
созданного секрета git-ssh-mirror
можно смонтировать внутри контейнера следующим образом:
GIT_SSH_PASSPHRASE
и GIT_SSH_PRIVATEKEY
внутри контейнера:...
kind: Pod
...
spec:
containers:
- name: mycontainer
image: myimage
env:
- name: GIT_SSH_PASSPHRASE
valueFrom:
secretKeyRef:
name: git-ssh-mirror
key: passphrase
- name: GIT_SSH_PRIVATEKEY
valueFrom:
secretKeyRef:
name: git-ssh-mirror
key: ssh-privatekey
Теперь используйте переменные среды GIT_SSH_PASSPHRASE
и GIT_SSH_PRIVATEKEY
внутри контейнера, чтобы получить доступ к парольной фразе SSH и закрытому ключу соответственно, которые необходимы для отправки в репозиторий GitHub.
...
kind: Pod
...
spec:
containers:
- name: mycontainer
image: myimage
volumeMounts:
- name: git-ssh-secrets
mountPath: "/etc/mypath"
readOnly: true
volumes:
- name: git-ssh-secrets
secret:
secretName: git-ssh-mirror
Теперь значения passphrase
и ssh-privatekey
в созданном git-ssh-mirror
секрете base-64
декодируются и сохраняются в файлах только для чтения /etc/mypath/passphrase
и /etc/mypath/ssh-privatekey
соответственно внутри контейнера. Используйте их для отправки в репозиторий GitHub.
Если парольную фразу или закрытый ключ SSH необходимо base-64
декодировать, используйте команду base64 --decode
.
Обратитесь к kubernetes.io/docs/concepts/configuration/secret/… и kubernetes.io/docs/concepts/configuration/secret/…, чтобы использовать секреты в модулях.
Не могу найти ссылки на
GIT_SSH_PASSPHRASE
и/илиGIT_SSH_PRIVATEKEY
. Также они не работают для меня. У вас есть ссылка на него?