OpenShift - Jenkins
Reading time: 2 minutes
O autor original desta página é Fares
Esta página fornece algumas dicas sobre como você pode atacar uma instância do Jenkins em execução em um cluster Openshift (ou Kubernetes).
Isenção de responsabilidade
Uma instância do Jenkins pode ser implantada tanto em um cluster Openshift quanto em um cluster Kubernetes. Dependendo do seu contexto, você pode precisar adaptar qualquer payload, yaml ou técnica mostrada. Para mais informações sobre como atacar o Jenkins, você pode dar uma olhada nesta página.
Pré-requisitos
1a. Acesso de usuário em uma instância do Jenkins OU 1b. Acesso de usuário com permissão de gravação em um repositório SCM onde uma construção automatizada é acionada após um push/merge.
Como funciona
Fundamentalmente, quase tudo nos bastidores funciona da mesma forma que uma instância regular do Jenkins em execução em uma VM. A principal diferença é a arquitetura geral e como as construções são gerenciadas dentro de um cluster Openshift (ou Kubernetes).
Construções
Quando uma construção é acionada, ela é primeiro gerenciada/orquestrada pelo nó mestre do Jenkins e, em seguida, delegada a um agente/escravo/trabalhador. Nesse contexto, o nó mestre é apenas um pod regular em execução em um namespace (que pode ser diferente daquele onde os trabalhadores são executados). O mesmo se aplica aos trabalhadores/escravos, no entanto, eles são destruídos uma vez que a construção é concluída, enquanto o mestre sempre permanece ativo. Sua construção é geralmente executada dentro de um pod, usando um modelo de pod padrão definido pelos administradores do Jenkins.
Acionando uma construção
Você tem várias maneiras principais de acionar uma construção, como:
- Você tem acesso à interface do usuário do Jenkins
Uma maneira muito fácil e conveniente é usar a funcionalidade Replay de uma construção existente. Isso permite que você reproduza uma construção executada anteriormente, permitindo que você atualize o script groovy. Isso requer privilégios em uma pasta do Jenkins e um pipeline pré-definido. Se você precisar ser discreto, pode excluir suas construções acionadas se tiver permissão suficiente.
- Você tem acesso de gravação ao SCM e construções automatizadas estão configuradas via webhook
Você pode simplesmente editar um script de construção (como Jenkinsfile), fazer commit e push (eventualmente criar um PR se as construções forem acionadas apenas em merges de PR). Lembre-se de que esse caminho é muito barulhento e precisa de privilégios elevados para limpar suas trilhas.