OpenShift - Jenkins

El autor original de esta página es Fares

Esta página proporciona algunas indicaciones sobre cómo puedes atacar una instancia de Jenkins que se esté ejecutando en un clúster de Openshift (o Kubernetes)

Descargo de responsabilidad

Una instancia de Jenkins puede ser implementada tanto en un clúster de Openshift como en un clúster de Kubernetes. Dependiendo de tu contexto, es posible que necesites adaptar cualquier carga útil, yaml o técnica mostrada. Para obtener más información sobre cómo atacar Jenkins, puedes consultar esta página

Requisitos previos

1a. Acceso de usuario en una instancia de Jenkins O 1b. Acceso de usuario con permiso de escritura a un repositorio de SCM donde se desencadena una compilación automatizada después de un push/fusión

Cómo funciona

Fundamentalmente, casi todo detrás de escena funciona de la misma manera que una instancia regular de Jenkins que se ejecuta en una VM. La principal diferencia es la arquitectura general y cómo se gestionan las compilaciones dentro de un clúster de Openshift (o Kubernetes).

Compilaciones

Cuando se desencadena una compilación, primero es gestionada/orquestada por el nodo maestro de Jenkins y luego delegada a un agente/esclavo/worker. En este contexto, el nodo maestro es solo un pod regular que se ejecuta en un espacio de nombres (que podría ser diferente al que ejecutan los workers). Lo mismo se aplica a los workers/esclavos, sin embargo, se destruyen una vez que la compilación finaliza, mientras que el maestro siempre permanece activo. Tu compilación generalmente se ejecuta dentro de un pod, utilizando una plantilla de pod predeterminada definida por los administradores de Jenkins.

Desencadenar una compilación

Tienes varias formas principales de desencadenar una compilación, como:

  1. Tienes acceso a la interfaz de usuario de Jenkins

Una forma muy fácil y conveniente es utilizar la funcionalidad de Repetir de una compilación existente. Te permite repetir una compilación ejecutada anteriormente y te permite actualizar el script groovy. Esto requiere privilegios en una carpeta de Jenkins y un pipeline predefinido. Si necesitas ser sigiloso, puedes eliminar tus compilaciones desencadenadas si tienes suficientes permisos.

  1. Tienes acceso de escritura al SCM y las compilaciones automatizadas están configuradas a través de un webhook

Simplemente puedes editar un script de compilación (como Jenkinsfile), hacer commit y push (eventualmente crear un PR si las compilaciones solo se desencadenan en fusiones de PR). Ten en cuenta que este camino es muy ruidoso y necesita privilegios elevados para limpiar tus huellas.

Anulación de YAML del Pod de Compilación de Jenkins

OpenShift - Jenkins Build Pod Override

Last updated