diff --git a/molgenis-jenkins/Chart.yaml b/molgenis-jenkins/Chart.yaml index 97d7764..0310b56 100755 --- a/molgenis-jenkins/Chart.yaml +++ b/molgenis-jenkins/Chart.yaml @@ -1,6 +1,6 @@ name: molgenis-jenkins home: https://jenkins.io/ -version: 0.2.3 +version: 0.2.4 appVersion: 2.107 description: Molgenis installation for the jenkins chart. sources: diff --git a/molgenis-jenkins/templates/config.tpl b/molgenis-jenkins/templates/config.tpl index 8286edb..67204ce 100644 --- a/molgenis-jenkins/templates/config.tpl +++ b/molgenis-jenkins/templates/config.tpl @@ -28,23 +28,23 @@ data: kubernetes -{{- if .Values.Agent.Enabled }} +{{- range $podName, $pod := .Values.Pods }} - default + {{ $podName }} 2147483647 0 - + {{- $local := dict "first" true }} - {{- range $key, $value := .Values.Agent.NodeSelector }} + {{- range $key, $value := $pod.NodeSelector }} {{- if not $local.first }},{{- end }} {{- $key }}={{ $value }} {{- $_ := set $local "first" false }} {{- end }} - EXCLUSIVE + $pod.NodeUsageMode -{{- range $index, $volume := .Values.Agent.volumes }} +{{- range $index, $volume := $pod.volumes }} {{- range $key, $value := $volume }}{{- if not (eq $key "type") }} <{{ $key }}>{{ $value }} @@ -53,153 +53,59 @@ data: {{- end }} +{{- range $containerName, $container := $pod.Containers }} - jnlp - {{ .Values.Agent.Image }}:{{ .Values.Agent.ImageTag }} -{{- if .Values.Agent.Privileged }} + {{ $containerName }} + {{ $container.Image }}:{{ $container.ImageTag | default "latest" }} +{{- if $container.Privileged }} true {{- else }} false {{- end }} - {{ .Values.Agent.AlwaysPullImage }} - /home/jenkins - - ${computer.jnlpmac} ${computer.name} - false - {{.Values.Agent.Cpu}} - {{.Values.Agent.Memory}} - {{.Values.Agent.Cpu}} - {{.Values.Agent.Memory}} - - - JENKINS_URL - http://{{ template "jenkins.fullname" . }}:{{.Values.Master.ServicePort}}{{ default "" .Values.Master.JenkinsUriPrefix }} - - - - - - -{{- if .Values.Agent.ImagePullSecret }} - - - {{ .Values.Agent.ImagePullSecret }} - - +{{- if $container.AlwaysPullImage }} + true {{- else }} - -{{- end }} - - -{{- end -}} -{{- if .Values.Pod.Enabled }} - - - {{ .Values.Pod.Label }} - 2147483647 - 0 - - - {{- $local := dict "first" true }} - {{- range $key, $value := .Values.Pod.NodeSelector }} - {{- if not $local.first }},{{- end }} - {{- $key }}={{ $value }} - {{- $_ := set $local "first" false }} - {{- end }} - NORMAL - -{{- range $index, $volume := .Values.Pod.volumes }} - -{{- range $key, $value := $volume }}{{- if not (eq $key "type") }} - <{{ $key }}>{{ $value }} -{{- end }}{{- end }} - -{{- end }} - - - - {{ .Values.Pod.Label }} - {{ .Values.Pod.Image }}:{{ .Values.Pod.ImageTag }} -{{- if .Values.Pod.Privileged }} - true -{{- else }} - false -{{- end }} - {{ .Values.Pod.AlwaysPullImage }} - /home/jenkins - {{ .Values.Pod.Command }} - {{ .Values.Pod.Args }} -{{- if .Values.Pod.TTY }} - true -{{- else }} - false -{{- end }} - {{.Values.Pod.Cpu}} - {{.Values.Pod.Memory}} - {{.Values.Pod.Cpu}} - {{.Values.Pod.Memory}} - - - alpine - spotify/alpine - false false +{{- end }} /home/jenkins - /bin/sh -c - cat + {{ $container.Command | default "cat" }} + {{ $container.Args | default "" }} +{{- if $container.TTY }} true - - - - - - - - 0 - 0 - 0 - 0 - 0 - +{{- else }} + false +{{- end }} +{{- if $container.resources }} +{{- if $container.resources.requests }} + {{ $container.resources.requests.cpu | default "" }} + {{ $container.resources.requests.memory | default "" }} +{{- end }} +{{- if $container.resources.limits }} + {{ $container.resources.limits.cpu | default "" }} + {{ $container.resources.limits.memory | default "" }} +{{- end }} +{{- end }} +{{- end }} - JENKINS_URL - http://{{ template "jenkins.fullname" . }}:{{.Values.Master.ServicePort}}{{ default "" .Values.Master.JenkinsUriPrefix }} + http://{{ template "jenkins.fullname" $ }}:{{$.Values.Master.ServicePort}}{{ default "" $.Values.Master.JenkinsUriPrefix }} - - - PGP_PASSPHRASE - molgenis-pipeline-env-secret - pgpPassphrase - - - PGP_SECRETKEY - keyfile:/root/.m2/key.asc - - - SONAR_TOKEN - molgenis-pipeline-env-secret - sonarToken - - - CODECOV_TOKEN - molgenis-pipeline-env-secret - codecovToken - - - GITHUB_TOKEN - molgenis-pipeline-env-secret - githubToken - +{{- range $index, $envVar := $pod.EnvVars }} + +{{- range $key, $value := $envVar }}{{- if not (eq $key "type") }} + <{{ $key }}>{{ $value }} +{{- end }}{{- end }} + +{{- end }} -{{- if .Values.Pod.ImagePullSecret }} +{{- if $pod.ImagePullSecret }} - {{ .Values.Pod.ImagePullSecret }} + {{ $pod.ImagePullSecret }} {{- else }} @@ -207,7 +113,7 @@ data: {{- end }} -{{- end -}} +{{- end }} https://kubernetes.default false diff --git a/molgenis-jenkins/values.yaml b/molgenis-jenkins/values.yaml index 423693b..17c1bc6 100644 --- a/molgenis-jenkins/values.yaml +++ b/molgenis-jenkins/values.yaml @@ -82,35 +82,50 @@ jenkins: CustomConfigMap: true rbac: install: true - # A second pod template for maven builds - Pod: - Enabled: true - Image: "webhost12.service.rug.nl/molgenis/molgenis-maven" - ImageTag: latest - # ImagePullSecret: jenkins - Label: "molgenis-maven" - Privileged: false - Cpu: "" - Memory: "" - # You may want to change this to true while testing a new image - AlwaysPullImage: false - Command: "/bin/sh -c" - Args: "cat" - TTY: true - # You can define the volumes that you want to mount for this container - # Allowed types are: ConfigMap, EmptyDir, HostPath, Nfs, Pod, Secret - # Configure the attributes as they appear in the corresponding Java class for that type - # https://github.com/jenkinsci/kubernetes-plugin/tree/master/src/main/java/org/csanchez/jenkins/plugins/kubernetes/volumes - volumes: - - type: HostPath - hostPath: "/var/run/docker.sock" - mountPath: "/var/run/docker.sock" - - type: Secret - secretName: molgenis-pipeline-file-secret - mountPath: "/root/.m2" + Pods: + default: + Label: "default" + NodeUsageMode: NORMAL + volumes: + - type: HostPath + hostPath: "/var/run/docker.sock" + mountPath: "/var/run/docker.sock" + - type: Secret + secretName: molgenis-pipeline-file-secret + mountPath: "/root/.m2" + Containers: + maven: + Image: "webhost12.service.rug.nl/molgenis/molgenis-maven" + resources: + requests: + cpu: "1000m" + limits: + memory: "1Gi" + alpine: + Image: "spotify/alpine" + EnvVars: + - type: Secret + key: PGP_PASSPHRASE + secretName: molgenis-pipeline-env-secret + secretKey: pgpPassphrase + - type: KeyValue + key: PGP_SECRETKEY + value: "keyfile:/root/.m2/key.asc" + - type: Secret + key: SONAR_TOKEN + secretName: molgenis-pipeline-env-secret + secretKey: sonarToken + - type: Secret + key: CODECOV_TOKEN + secretName: molgenis-pipeline-env-secret + secretKey: codecovToken + - type: Secret + key: GITHUB_TOKEN + secretName: molgenis-pipeline-env-secret + secretKey: githubToken + # If needed + # ImagePullSecret: jenkins NodeSelector: {} - # Key Value selectors. Ex: - # jenkins-agent: v1 PipelineSecrets: Env: # Set to false to keep existing secret