Я использую Jenkins из stable/jenkins
рулевой диаграммы - все хорошо, я прикрепил секреты с ключом id_rsa / .pub в качестве тома к мастеру jenkins (в /opt/sshkeys/
скажем, почему там? Потому что созданные файлы soft-link с разрешениями 777, поэтому go не может напрямую $HOME/.ssh
)
root@agent-pod:/opt/config# ls -alh
total 12K
drwxrwxrwx 3 root root 4.0K Apr 20 13:00 .
drwxr-xr-x 1 root root 4.0K Apr 20 13:02 ..
drwxr-xr-x 2 root root 4.0K Apr 20 13:00 ..2020_04_20_13_00_29.601158101
lrwxrwxrwx 1 root root 31 Apr 20 13:00 ..data -> ..2020_04_20_13_00_29.601158101
lrwxrwxrwx 1 root root 13 Apr 20 13:00 id_rsa -> ..data/id_rsa
, а затем запускается несколько сценариев (cp, chmod), чтобы переместить их как нужные файлы в /home/jenkins/.ssh/id_rsa
- проблемы с агент jenkins - я не могу просто подключить том, как описано выше, по причине 777, и я не могу использовать какую-либо команду на агенте, поскольку основная команда ENTRYPOINT - это та, которая делает его агентом
command:
args: "${computer.jnlpmac} ${computer.name}"
- попытка сделать любую комбинацию
mkdir /home/jenkins/.ssh && chmod ... && <above args>
или ;
переводит модуль go в 0/1 Completed
состояние, а не 1/1 Running
Кто-нибудь знает, как поставить два ключа и паба в агента Дженкинса? Это главный вопрос. Все остальное, что я только что сказал, это мой способ ее решения.
Часть плагина Kubernetes для Jenkins (который требуется при запуске Jenkins на Kubernetes) показывает это:
Constraints
Multiple containers can be defined in a pod. One of them is automatically created with name
jnlp, and runs the Jenkins JNLP agent service, with args ${computer.jnlpmac} ${computer.name},
and will be the container acting as Jenkins agent.
Other containers must run a long running process, so the container does not exit. If the default
entrypoint or command just runs something and exit then it should be overridden with something
like cat with ttyEnabled: true.
WARNING If you want to provide your own Docker image for the JNLP slave, you must name the
container jnlp so it overrides the default one. Failing to do so will result in two slaves
trying to concurrently connect to the master.
PS: I см. официальные документы, описывающие, как прикрепить ключи к pod здесь https://kubernetes.io/docs/concepts/configuration/secret/#use -cases (ctrl + f Use-Case: Pod with ssh keys
), но я столкнулся с проблемой, как указано выше, с 777
PS: чтобы увидеть как выглядят файлы развертывания и значений и тестируются, вы можете установить helm3 и helm3 show values stable/jenkins > jenkins.yaml