Skip to content

Commit 8ea9ed0

Browse files
authored
WIP: Add initial KinD implementation for testing jenkins agents (#574)
* Add initial KinD implementation for testing jenkins agents * Address PR comments, additional robustness + CI of CI
1 parent 2258c10 commit 8ea9ed0

26 files changed

+335
-23
lines changed

.github/workflows/jenkins-agent-ansible-pr.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,8 @@ jobs:
2323
image: ${{ env.image_name }}
2424
oci: true
2525
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-arachni-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-argocd-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}
+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
---
3+
name: jenkins-agent-ci-pr
4+
on:
5+
pull_request:
6+
paths:
7+
- _test/kind/**
8+
- .github/workflows/jenkins-agent-ci-pr.yaml
9+
jobs:
10+
build:
11+
env:
12+
context: jenkins-agents/jenkins-agent-ansible
13+
image_name: jenkins-agent-ansible
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v2
17+
18+
- name: Build image
19+
uses: redhat-actions/buildah-build@v2
20+
with:
21+
context: ${{ env.context }}
22+
dockerfiles: |
23+
./${{ env.context }}/Dockerfile
24+
image: ${{ env.image_name }}
25+
oci: true
26+
tags: "latest"
27+
28+
- name: Test image
29+
run: |
30+
echo "Testing ${{ env.image_name }}"
31+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-conftest-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-cosign-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-erlang-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-golang-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-graalvm-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-gradle-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-helm-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-hugo-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-image-mgmt-pr.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@ jobs:
3131

3232
- name: Test image
3333
run: |
34-
echo "Running: podman run --entrypoint bash ${image_name}:${{ steps.check_version.outputs.VERSION }} -c \"skopeo --version\""
35-
podman run --entrypoint bash ${image_name}:${{ steps.check_version.outputs.VERSION }} -c "skopeo --version"
34+
echo "Testing ${{ env.image_name }}"
35+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-mongodb-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-mvn-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-npm-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-python-pr.yaml

+2-4
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,5 @@ jobs:
3131

3232
- name: Test image
3333
run: |
34-
echo "Running: podman run ${image_name}:${{ steps.check_version.outputs.IMAGE_TAGS }} python --version"
35-
podman run ${image_name}:${{ steps.check_version.outputs.IMAGE_TAGS }} python --version
36-
echo "Running: podman run ${image_name}:${{ steps.check_version.outputs.IMAGE_TAGS }} pip --version"
37-
podman run ${image_name}:${{ steps.check_version.outputs.IMAGE_TAGS }} pip --version
34+
echo "Testing ${{ env.image_name }}"
35+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-ruby-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-rust-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}

.github/workflows/jenkins-agent-zap-pr.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ jobs:
2222
./${{ env.context }}/Dockerfile
2323
image: ${{ env.image_name }}
2424
oci: true
25-
tags: "latest"
25+
tags: "latest"
26+
27+
- name: Test image
28+
run: |
29+
echo "Testing ${{ env.image_name }}"
30+
./_test/kind/setup.sh ${{ env.image_name }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
controller:
2+
JCasC:
3+
configScripts:
4+
seed-jobs: |
5+
jobs:
6+
- script: >
7+
folder('containers-quickstarts')
8+
- script: >
9+
pipelineJob('containers-quickstarts/${JENKINS_AGENT}') {
10+
definition {
11+
cps {
12+
script('''
13+
${JENKINSFILE}
14+
'''.stripIndent())
15+
sandbox()
16+
}
17+
}
18+
}

_test/kind/jenkins-podtemplate.yaml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
agent:
2+
podTemplates:
3+
jenkins-agent: |
4+
- name: ${JENKINS_AGENT}
5+
label: ${JENKINS_AGENT}
6+
serviceAccount: jenkins
7+
yamlMergeStrategy: override
8+
containers:
9+
- name: jnlp
10+
args: "^${computer.jnlpmac} ^${computer.name}"
11+
image: ${JENKINS_AGENT}:latest
12+
workingDir: /tmp

_test/kind/jenkins-values.yaml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
controller:
2+
additionalPlugins:
3+
- job-dsl:1.78.3
4+
ingress:
5+
enabled: true
6+
persistence:
7+
enabled: false
8+
rbac:
9+
readSecrets: true
10+
serviceAccount:
11+
create: true

_test/kind/kind-config.yaml

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
kind: Cluster
2+
apiVersion: kind.x-k8s.io/v1alpha4
3+
nodes:
4+
- role: control-plane
5+
kubeadmConfigPatches:
6+
- |
7+
kind: InitConfiguration
8+
nodeRegistration:
9+
kubeletExtraArgs:
10+
node-labels: "ingress-ready=true"
11+
extraPortMappings:
12+
- containerPort: 80
13+
hostPort: 80
14+
protocol: TCP
15+
- containerPort: 443
16+
hostPort: 443
17+
protocol: TCP

0 commit comments

Comments
 (0)