Skip to content

Commit

Permalink
ref(15): Start testing wild integration with Jenkins
Browse files Browse the repository at this point in the history
  • Loading branch information
jeanjerome committed Aug 19, 2023
1 parent 65d35fe commit 71acbf9
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 3 deletions.
76 changes: 76 additions & 0 deletions vars/ContainerConfig.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
class ContainerConfig {

static Map getContainerConfig(selectedContainerNames = null) {
def wildPath = getContext(hudson.FilePath) + "./wild-workdir"
def appConfig = readYaml(file: "${wildPath}/config/containers-config.yaml")

if (selectedContainerNames) {
appConfig.container = appConfig.container.findAll { container ->
selectedContainerNames.contains(container.name)
}
}

return appConfig
}

static String generateContainerTemplate(Map appConfig) {
def containerTemplates = appConfig.container.collect { container ->
def envVars = container.envVars.collect { envVar ->
"""
- name: ${envVar.name}
value: "${envVar.value}"
"""
}.join('\n')

def volumeMounts = container.volumeMounts.collect { volumeMount ->
"""
- name: ${volumeMount.name}
mountPath: ${volumeMount.mountPath}
readOnly: ${volumeMount.readOnly}
"""
}.join('\n')

def volumes = container.volumes.collect { volume ->
"""
- name: ${volume.name}
persistentVolumeClaim:
claimName: ${volume.claimName}
"""
}.join('\n')

"""
- name: ${container.name}
image: ${container.image}
command:
- "${container.command}"
tty: ${container.tty}
${envVars ? "env:\n${envVars}" : ''}
resources:
limits:
cpu: ${container.resources.cpu.limit}
memory: ${container.resources.memory.limit}
requests:
cpu: ${container.resources.cpu.request}
memory: ${container.resources.memory.request}
securityContext:
runAsNonRoot: true
runAsUser: ${container.securityContext.runAsUser}
${volumeMounts ? "volumeMounts:\n${volumeMounts}" : ''}
${volumes ? "volumes:\n${volumes}" : ''}
"""
}

def containerTemplate = """
apiVersion: v1
kind: Pod
metadata:
labels:
name: ${appConfig.container.labels.name}
spec:
containers:
${containerTemplates.join('\n')}
"""

return containerTemplate
}
}
5 changes: 2 additions & 3 deletions vars/wildPipeline.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,8 @@ def call() {
}

def runContainerNames = ["bash", "maven"]
def runConfig = readAppConfig(runContainerNames)
//def k8s_containers_run = libraryResource('config/k8s/containers-init.yaml')
def k8s_containers_run = generateContainerTemplate(runConfig)
def runContainerConfig = ContainerConfig.getContainerConfig(runContainerNames)
def k8s_containers_run = ContainerConfig.generateContainerTemplate(runContainerConfig)

podTemplate(
label: pod_run_label,
Expand Down

0 comments on commit 71acbf9

Please sign in to comment.