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:

  1. 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.

  1. 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.

Substituição do YAML do Pod de Construção do Jenkins

OpenShift - Jenkins Build Pod Override