Skip to content

Commit

Permalink
Update jenkins agents to work on OCP v4.x, fixes #223, #224, #225 (#222)
Browse files Browse the repository at this point in the history
* Use UBI 7 base image for jenkins-slaves, fixes #223, #224, #225

* Pull in upstream updates

* Add Ephemeral Jenkins + minor cleanup
  • Loading branch information
pabrahamsson authored and etsauer committed Aug 5, 2019
1 parent 578681e commit b16e0aa
Show file tree
Hide file tree
Showing 30 changed files with 459 additions and 293 deletions.
154 changes: 103 additions & 51 deletions .applier/group_vars/seed-hosts.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,83 @@
---
namespace: jenkins-slaves

repository_url: https://github.com/redhat-cop/containers-quickstarts.git
slave_repo_ref: v1.11
templates_repo_ref: v1.4.8

jenkins_slaves:
build:
ansible:
BUILDER_IMAGE_NAME: quay.io/openshift/origin-jenkins-agent-base:4.1
DOCKERFILE_PATH: Dockerfile
NAME: jenkins-slave-ansible
SOURCE_CONTEXT_DIR: jenkins-slaves/jenkins-slave-ansible
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
arachni:
BUILDER_IMAGE_NAME: quay.io/openshift/origin-jenkins-agent-base:4.1
DOCKERFILE_PATH: Dockerfile
NAME: jenkins-slave-arachni
SOURCE_CONTEXT_DIR: jenkins-slaves/jenkins-slave-arachni
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
python:
BUILDER_IMAGE_NAME: quay.io/openshift/origin-jenkins-agent-base:4.1
DOCKERFILE_PATH: Dockerfile
NAME: jenkins-slave-python
SOURCE_CONTEXT_DIR: jenkins-slaves/jenkins-slave-python
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
golang:
BUILDER_IMAGE_NAME: quay.io/openshift/origin-jenkins-agent-base:4.1
DOCKERFILE_PATH: Dockerfile
NAME: jenkins-slave-golang
SOURCE_CONTEXT_DIR: jenkins-slaves/jenkins-slave-golang
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
gradle:
BUILDER_IMAGE_NAME: quay.io/openshift/origin-jenkins-agent-base:4.1
DOCKERFILE_PATH: Dockerfile
NAME: jenkins-slave-gradle
SOURCE_CONTEXT_DIR: jenkins-slaves/jenkins-slave-gradle
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
mongodb:
BUILDER_IMAGE_NAME: quay.io/openshift/origin-jenkins-agent-base:4.1
DOCKERFILE_PATH: Dockerfile
NAME: jenkins-slave-mongodb
SOURCE_CONTEXT_DIR: jenkins-slaves/jenkins-slave-mongodb
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
mvn:
BUILDER_IMAGE_NAME: quay.io/openshift/origin-jenkins-agent-base:4.1
DOCKERFILE_PATH: Dockerfile
NAME: jenkins-slave-mvn
SOURCE_CONTEXT_DIR: jenkins-slaves/jenkins-slave-mvn
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
npm:
BUILDER_IMAGE_NAME: openshift/jenkins-slave-base-centos7:v3.11
DOCKERFILE_PATH: Dockerfile
NAME: jenkins-slave-npm
SOURCE_CONTEXT_DIR: jenkins-slaves/jenkins-slave-npm
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
zap:
BUILDER_IMAGE_NAME: centos:centos7
DOCKERFILE_PATH: Dockerfile
NAME: jenkins-slave-zap
SOURCE_CONTEXT_DIR: jenkins-slaves/jenkins-slave-zap
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"

test_pipelines:
deploy:
golang:
NAME: jenkins-slave-golang
PIPELINE_CONTEXT_DIR: jenkins-slaves/jenkins-slave-golang
PIPELINE_FILENAME: "Jenkinsfile.test"
PIPELINE_SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
PIPELINE_SOURCE_REPOSITORY_URL: "{{ repository_url }}"

openshift_cluster_content:
- object: Environment Setup
Expand All @@ -15,107 +90,84 @@ openshift_cluster_content:
NAMESPACE_DISPLAY_NAME: "{{ namespace }}"
tags:
- project
- object: jenkins-ephemeral
content:
- name: jenkins-ephemeral
template: 'openshift//jenkins-ephemeral'
namespace: "{{ namespace }}"
tags:
- jenkins-ephemeral
- object: jenkins-slave-nodes
content:
- name: jenkins-slave-ansible
template: "{{ inventory_dir }}/../.openshift/templates/jenkins-slave-generic-template.yml"
params: "{{ inventory_dir }}/../.openshift/params/ansible"
params_from_vars:
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
params_from_vars: "{{ jenkins_slaves.build.ansible }}"
namespace: "{{ namespace }}"
tags:
- jenkins-slaves
- ansible-slave
- name: jenkins-slave-arachni
template: "{{ inventory_dir }}/../.openshift/templates/jenkins-slave-generic-template.yml"
params: "{{ inventory_dir }}/../.openshift/params/arachni"
params_from_vars:
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
params_from_vars: "{{ jenkins_slaves.build.arachni }}"
namespace: "{{ namespace }}"
tags:
- jenkins-slaves
- arachni-slave
- name: jenkins-slave-golang
template: "{{ inventory_dir }}/../.openshift/templates/jenkins-slave-generic-template.yml"
params: "{{ inventory_dir }}/../.openshift/params/golang"
params_from_vars:
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
params_from_vars: "{{ jenkins_slaves.build.golang }}"
namespace: "{{ namespace }}"
tags:
- jenkins-slaves
- golang-slave
- name: jenkins-slave-gradle
template: "{{ inventory_dir }}/../.openshift/templates/jenkins-slave-generic-template.yml"
params: "{{ inventory_dir }}/../.openshift/params/gradle"
params_from_vars:
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
params_from_vars: "{{ jenkins_slaves.build.gradle }}"
namespace: "{{ namespace }}"
tags:
- jenkins-slaves
- gradle-slave
- name: jenkins-slave-mongodb
template: "{{ inventory_dir }}/../.openshift/templates/jenkins-slave-generic-template.yml"
params: "{{ inventory_dir }}/../.openshift/params/mongodb"
params_from_vars:
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
params_from_vars: "{{ jenkins_slaves.build.mongodb }}"
namespace: "{{ namespace }}"
tags:
- jenkins-slaves
- mongodb-slave
- name: jenkins-slave-mvn
template: "{{ inventory_dir }}/../.openshift/templates/jenkins-slave-generic-template.yml"
params: "{{ inventory_dir }}/../.openshift/params/mvn"
params_from_vars:
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
params_from_vars: "{{ jenkins_slaves.build.mvn }}"
namespace: "{{ namespace }}"
tags:
- jenkins-slaves
- mvn-slave
- jenkins-slaves
- mvn-slave
- name: jenkins-slave-npm
template: "{{ inventory_dir }}/../.openshift/templates/jenkins-slave-generic-template.yml"
params: "{{ inventory_dir }}/../.openshift/params/npm"
params_from_vars:
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
params_from_vars: "{{ jenkins_slaves.build.npm }}"
namespace: "{{ namespace }}"
tags:
- jenkins-slaves
- npm-slave
- jenkins-slaves
- npm-slave
- name: jenkins-slave-python
template: "{{ inventory_dir }}/../.openshift/templates/jenkins-slave-generic-template.yml"
params: "{{ inventory_dir }}/../.openshift/params/python"
params_from_vars:
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
params_from_vars: "{{ jenkins_slaves.build.python }}"
namespace: "{{ namespace }}"
tags:
- jenkins-slaves
- python-slave
- name: jenkins-slave-zap
template: "{{ inventory_dir }}/../.openshift/templates/jenkins-slave-generic-template.yml"
params: "{{ inventory_dir }}/../.openshift/params/zap"
params_from_vars:
SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
SOURCE_REPOSITORY_URL: "{{ repository_url }}"
params_from_vars: "{{ jenkins_slaves.build.zap }}"
namespace: "{{ namespace }}"
tags:
- jenkins-slaves
- zap-slave
- jenkins-slaves
- zap-slave
- object: test-pipelines
content:
- name: Deploy all test pipelines
template: "https://raw.githubusercontent.com/redhat-cop/openshift-templates/v1.4.5/jenkins-pipelines/jenkins-pipeline-template-no-ocp-triggers.yml"
params: "{{ inventory_dir }}/../.openshift/params/test_pipelines/"
params_from_vars:
PIPELINE_SOURCE_REPOSITORY_URL: "{{ repository_url }}"
PIPELINE_SOURCE_REPOSITORY_REF: "{{ slave_repo_ref }}"
PIPELINE_FILENAME: "Jenkinsfile.test"
- name: Deploy golang-slave test pipelines
template: "https://raw.githubusercontent.com/redhat-cop/openshift-templates/{{ templates_repo_ref }}/jenkins-pipelines/jenkins-pipeline-template-no-ocp-triggers.yml"
params_from_vars: "{{ test_pipelines.deploy.golang }}"
namespace: "{{ namespace }}"
tags:
- test-pipelines
- test-pipelines
- golang-slave-pipeline
6 changes: 0 additions & 6 deletions .openshift/params/ansible

This file was deleted.

4 changes: 0 additions & 4 deletions .openshift/params/arachni

This file was deleted.

4 changes: 0 additions & 4 deletions .openshift/params/golang

This file was deleted.

4 changes: 0 additions & 4 deletions .openshift/params/gradle

This file was deleted.

4 changes: 0 additions & 4 deletions .openshift/params/mongodb

This file was deleted.

5 changes: 0 additions & 5 deletions .openshift/params/mvn

This file was deleted.

4 changes: 0 additions & 4 deletions .openshift/params/npm

This file was deleted.

4 changes: 0 additions & 4 deletions .openshift/params/python

This file was deleted.

2 changes: 0 additions & 2 deletions .openshift/params/test_pipelines/golang

This file was deleted.

4 changes: 0 additions & 4 deletions .openshift/params/zap

This file was deleted.

6 changes: 3 additions & 3 deletions hoverfly/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
FROM registry.access.redhat.com/rhel7/rhel
FROM registry.access.redhat.com/ubi8/ubi

ENV HOVERFLY_DOWNLOAD_URI https://github.com/SpectoLabs/hoverfly/releases/download/v0.17.7/hoverfly_bundle_linux_amd64.zip
ENV HOVERFLY_DOWNLOAD_URI https://github.com/SpectoLabs/hoverfly/releases/download/v0.17.7/hoverfly_bundle_linux_amd64.zip
ENV HOME /home/hoverfly

RUN PACKAGE_LIST="less unzip" && \
yum install -y --disablerepo=* --enablerepo=rhel-7-server-rpms $PACKAGE_LIST && \
yum install -y $PACKAGE_LIST && \
rpm -V $PACKAGE_LIST && \
yum clean all -y && \
curl -o /tmp/hoverfly.zip -L $HOVERFLY_DOWNLOAD_URI && \
Expand Down
41 changes: 19 additions & 22 deletions jenkins-slaves/jenkins-slave-ansible/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,28 +1,25 @@
FROM openshift/jenkins-slave-base-centos7:v3.11
FROM quay.io/openshift/origin-jenkins-agent-base:4.1

ENV BASH_ENV=/usr/local/bin/scl_enable \
ENV=/usr/local/bin/scl_enable \
PROMPT_COMMAND=". /usr/local/bin/scl_enable" \
ANSIBLE_VERSION=2.7.0 \
ANSIBLE_REVISION=1
LABEL com.redhat.component="jenkins-agent-ansible-ubi7-docker" \
name="openshift/origin-jenkins-agent-ansible-ubi7" \
version="4.1" \
architecture="x86_64" \
release="1" \
io.k8s.display-name="Jenkins Agent Ansible" \
io.k8s.description="The jenkins agent ansible image has ansible on top of the jenkins agent base image." \
io.openshift.tags="openshift,jenkins,agent,ansible"

RUN INSTALL_PKGS="java-1.8.0-openjdk-devel.x86_64 git tree vim unzip curl python2-pip scl-utils" && \
x86_EXTRA_RPMS=$(if [ "$(uname -m)" == "x86_64" ]; then echo -n java-1.8.0-openjdk-devel.i686 ; fi) && \
yum install -y epel-release && \
yum install -y --setopt=tsflags=nodocs $INSTALL_PKGS $x86_EXTRA_RPMS \
https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-${ANSIBLE_VERSION}-${ANSIBLE_REVISION}.el7.ans.noarch.rpm && \
rpm -V ansible && \
yum clean all -y && \
rm -rf /var/cache/yum
ENV ANSIBLE_VERSION=2.8.2

# When bash is started non-interactively, to run a shell script, for example it
# looks for this variable and source the content of this file. This will enable
# the SCL for all scripts without need to do 'scl enable'.
ADD contrib/bin/scl_enable /usr/local/bin/scl_enable
ADD contrib/bin/configure-slave /usr/local/bin/configure-slave
ADD ubi.repo /etc/yum.repos.d/ubi.repo

RUN chown -R 1001:0 $HOME && \
chmod -R g+rw $HOME
RUN INSTALL_PKGS="rh-python36-python-pip" && \
DISABLE_REPOS=--disablerepo='rhel-*' && \
yum $DISABLE_REPOS install -y $INSTALL_PKGS && \
source scl_source enable rh-python36 && \
scl enable rh-python36 bash && \
python3 -m pip install ansible==$ANSIBLE_VERSION paramiko && \
yum $DISABLE_REPOS clean all -y && \
rm -rf /var/cache/yum

USER 1001

25 changes: 0 additions & 25 deletions jenkins-slaves/jenkins-slave-ansible/Dockerfile.rhel7

This file was deleted.

2 changes: 2 additions & 0 deletions jenkins-slaves/jenkins-slave-ansible/scl_enable
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
unset BASH_ENV PROMPT_COMMAND ENV
source scl_source enable rh-python36
Loading

0 comments on commit b16e0aa

Please sign in to comment.