Skip to content

Commit b6ae63a

Browse files
committed
Fix #23201: run tests on Jenkins
1 parent 0236634 commit b6ae63a

4 files changed

Lines changed: 77 additions & 11 deletions

File tree

JenkinsfileSCM

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,49 @@ pipeline {
1212
buildDiscarder(logRotator(numToKeepStr: '3'))
1313
}
1414

15+
environment {
16+
SPO_DOCKER_SOCKET = "/var/run/docker/docker.sock"
17+
SPO_DOCKER_GID = "2375"
18+
KUBERNETES_TRUST_CERTIFICATES = "true"
19+
}
20+
1521
stages {
1622

17-
stage('build and deploy to nexus'){
23+
stage('prepare') {
24+
steps {
25+
26+
container('docker') {
27+
sh 'echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories'
28+
sh 'apk add minikube@testing'
29+
sh 'docker network create sp-shared-network'
30+
sh 'docker plugin install "grafana/loki-docker-driver:3.2.1" --alias loki --grant-all-permissions'
31+
sh 'adduser -D -u 1000 user && adduser user docker'
32+
sh "su user /bin/sh -c 'minikube start --driver=docker --force'"
33+
sh "su user /bin/sh -c 'minikube kubectl -- config view --flatten > /tmp/kubeconfig'"
34+
script {
35+
env.KUBERNETES_MASTER = "https://" + sh(returnStdout: true, script: "su user /bin/sh -c 'minikube ip'").trim() + ":8443"
36+
}
37+
}
38+
39+
}
40+
41+
}
42+
43+
stage('build and deploy to nexus') {
44+
45+
environment {
46+
KUBECONFIG = "/tmp/kubeconfig"
47+
}
1848

1949
steps {
2050

2151
container('shinyproxy-operator-build') {
2252

23-
configFileProvider([configFile(fileId: 'maven-settings-rsb', variable: 'MAVEN_SETTINGS_RSB')]) {
53+
configFileProvider([configFile(fileId: 'maven-settings-rsb', variable: 'MAVEN_SETTINGS_RSB')]) {
2454

25-
sh 'mvn -B -s $MAVEN_SETTINGS_RSB -U clean deploy -DskipTests'
55+
sh 'mvn -Dmaven.repo.local=/tmp/m2 -B -s $MAVEN_SETTINGS_RSB -U clean deploy'
2656

27-
}
57+
}
2858
}
2959
}
3060
}

kubernetesPod.yaml

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,51 @@ metadata:
44
labels:
55
ci: shinyproxy-operator-build
66
spec:
7+
volumes:
8+
- name: docker-socket
9+
emptyDir: { }
10+
- name: tmp
11+
emptyDir: { }
712
containers:
813
- name: shinyproxy-operator-build
9-
image: public.ecr.aws/docker/library/maven:3-eclipse-temurin-17-focal
14+
image: public.ecr.aws/docker/library/maven:3-eclipse-temurin-21-jammy
15+
securityContext:
16+
runAsUser: 1000
17+
runAsGroup: 2375
1018
command:
1119
- cat
1220
tty: true
21+
env:
22+
- name: DOCKER_HOST
23+
value: unix:///var/run/docker/docker.sock
24+
volumeMounts:
25+
- mountPath: /var/run/docker
26+
name: docker-socket
27+
- mountPath: /tmp/
28+
name: tmp
1329
resources:
1430
requests:
15-
memory: "2Gi"
16-
cpu: "1.0"
31+
memory: "4Gi"
32+
cpu: "2"
1733
limits:
1834
memory: "4Gi"
19-
cpu: "1.5"
35+
cpu: "2"
36+
- name: docker
37+
image: public.ecr.aws/docker/library/docker:dind
38+
securityContext:
39+
privileged: true
40+
env:
41+
- name: DOCKER_HOST
42+
value: unix:///var/run/docker/docker.sock
43+
volumeMounts:
44+
- mountPath: /var/run/docker
45+
name: docker-socket
46+
- mountPath: /tmp/
47+
name: tmp
48+
resources:
49+
requests:
50+
memory: "4Gi"
51+
cpu: "2"
52+
limits:
53+
memory: "4Gi"
54+
cpu: "2"

src/main/kotlin/eu/openanalytics/shinyproxyoperator/impl/docker/monitoring/CAdvisorConfig.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class CAdvisorConfig(private val dockerClient: DockerClient, private val dockerA
5050
.binds(
5151
HostConfig.Bind.builder()
5252
.from(dockerSocket)
53-
.to("/var/run/docker.sock")
53+
.to("/docker.sock")
5454
.readOnly(true)
5555
.build(),
5656
HostConfig.Bind.builder()
@@ -88,7 +88,7 @@ class CAdvisorConfig(private val dockerClient: DockerClient, private val dockerA
8888
.image(cAdvisorImage)
8989
.hostConfig(hostConfig)
9090
.labels(mapOf("app" to "cadvisor"))
91-
.cmd(listOf("--docker_only=true", "--enable_metrics=cpu,memory,network"))
91+
.cmd(listOf("--docker_only=true", "--docker=unix:///docker.sock", "--enable_metrics=cpu,memory,network"))
9292
.build()
9393

9494
logger.info { "[cAdvisor] Creating new container" }

src/test/kotlin/eu/openanalytics/shinyproxyoperator/impl/docker/helpers/DockerAssertions.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class DockerAssertions(private val base: IntegrationTestBase,
4040

4141
private val objectMapper = ObjectMapper(YAMLFactory()).registerKotlinModule()
4242
private val dockerGID = Config().readConfigValue(null, "SPO_DOCKER_GID") { it }
43+
private val dockerSocket = Config().readConfigValue("/var/run/docker.sock", "SPO_DOCKER_SOCKET") { it }
4344

4445
fun assertRedisContainer() {
4546
val redisContainer = base.inspectContainer(this.base.getContainerByName("sp-redis"))
@@ -120,7 +121,7 @@ class DockerAssertions(private val base: IntegrationTestBase,
120121
assertEquals("sp-shared-network", containerInfo.hostConfig().networkMode())
121122
assertEquals(listOf("sp-network-${shinyProxyInstance.realmId}", "sp-shared-network"), containerInfo.networkSettings().networks().keys.toList())
122123
assertEquals(listOf(
123-
"/var/run/docker.sock:/var/run/docker.sock:ro",
124+
"$dockerSocket:/var/run/docker.sock:ro",
124125
"${dataDir}${containerInfo.name()}/application.yml:/opt/shinyproxy/application.yml:ro",
125126
"${dataDir}${containerInfo.name()}/generated.yml:/opt/shinyproxy/generated.yml:ro",
126127
"${dataDir}${containerInfo.name()}/templates:/opt/shinyproxy/templates:ro",

0 commit comments

Comments
 (0)