deploy-templates/templates/job-provisions-configmap-registry.yaml (49 lines of code) (raw):

kind: ConfigMap apiVersion: v1 metadata: name: jenkins-job-provisions-{{ .Values.jenkins.jobProvisioner }} labels: {{- include "jenkins-operator.metaLabels" . | nindent 4 }} data: context: | import groovy.json.* import jenkins.model.Jenkins import javaposse.jobdsl.plugin.* import com.cloudbees.hudson.plugins.folder.* import hudson.model.* import java.util.zip.GZIPInputStream import java.util.zip.GZIPOutputStream String scriptText = new String(Base64.decoder.decode('{{ .Files.Get "JobProvisioner.groovy" | b64enc }}')) String jobName = "{{ .Values.jenkins.jobProvisioner }}" String folderName = "job-provisions" String ciFolderName = "ci" def folder = Jenkins.instance.getItem(folderName) if (folder == null) { folder = Jenkins.instance.createProject(Folder.class, folderName) } def ciFolder = folder.getItem(ciFolderName) if (ciFolder == null) { ciFolder = folder.createProject(Folder.class, ciFolderName) } def job = Jenkins.instance.getItem(folderName).getItem(ciFolderName).getItem(jobName) job ? job.delete() : println("skip delete") def project = ciFolder.getItem(jobName) if (project == null) { project = ciFolder.createProject(FreeStyleProject, jobName) } project.getBuildersList().clear() executeDslScripts = new ExecuteDslScripts() executeDslScripts.setScriptText(scriptText) project.getBuildersList().add(executeDslScripts) def definitionList = [ new StringParameterDefinition("NAME", ""), new StringParameterDefinition("BRANCH", ""), new StringParameterDefinition("GIT_CREDENTIALS_ID", ""), new StringParameterDefinition("REPOSITORY_PATH", ""), new StringParameterDefinition("DEFAULT_BRANCH", ""), new StringParameterDefinition("DEPLOYMENT_MODE", "{{ .Values.global.deploymentMode }}"), new StringParameterDefinition("CRON_SCHEDULE_FOR_CLEANUP_VC_DB", "{{ .Values.registryRegulation.cleanupVersionCandidateDBsCronSchedule }}") ] project.addProperty(new ParametersDefinitionProperty(definitionList)) project.setConcurrentBuild(true) project.save()