refactor: Move charts to charts dir
This commit is contained in:
8
charts/molgenis-jenkins/Chart.yaml
Executable file
8
charts/molgenis-jenkins/Chart.yaml
Executable file
@ -0,0 +1,8 @@
|
||||
name: molgenis-jenkins
|
||||
home: https://jenkins.io/
|
||||
version: 0.8.0
|
||||
appVersion: 2.121
|
||||
description: Molgenis installation for the jenkins chart.
|
||||
sources:
|
||||
- https://git.webhosting.rug.nl/molgenis/molgenis-ops-docker-helm.git
|
||||
icon: https://git.webhosting.rug.nl/molgenis/molgenis-ops-docker-helm/raw/master/molgenis-jenkins/catalogIcon-molgenis-jenkins.svg
|
115
charts/molgenis-jenkins/README.md
Normal file
115
charts/molgenis-jenkins/README.md
Normal file
@ -0,0 +1,115 @@
|
||||
# Molgenis Jenkins Helm Chart
|
||||
|
||||
Jenkins master and slave cluster utilizing the Jenkins Kubernetes plugin.
|
||||
Wraps [the kuberenetes jenkins chart](https://github.com/kubernetes/charts/tree/master/stable/jenkins), see documentation there!
|
||||
|
||||
## Chart Details
|
||||
|
||||
This chart will do the following:
|
||||
|
||||
* 1 x Jenkins Master with port 8080 exposed on an external ClusterIP
|
||||
* All using Kubernetes Deployments
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
Usually, you'll be deploying this to the molgenis cluster.
|
||||
In the [Rancher Catalog](https://rancher.molgenis.org:7443/g/catalog), add the latest version of this repository.
|
||||
In the [molgenis cluster management page](https://rancher.molgenis.org:7443/p/c-mhkqb:project-2pf45/apps), choose the
|
||||
catalog, pick the molgenis-jenkins app from the catalog and deploy it.
|
||||
|
||||
## Configuration
|
||||
|
||||
When deploying, you can paste values into the Rancher Answers to override the defaults in this chart.
|
||||
Array values can be added as {value, value, value}.
|
||||
```
|
||||
jenkins.Master.HostName=jenkins.molgenis.org
|
||||
jenkins.Master.AdminPassword=pa$$word
|
||||
jenkins.Persistence.Enabled=false
|
||||
jenkins.Master.InstallPlugins={kubernetes:1.8.4, workflow-aggregator:2.5, workflow-job:2.21, credentials-binding:1.16, git:3.9.1, blueocean:1.6.2, github-oauth:0.29}
|
||||
jenkins.Master.Security.UseGitHub=false
|
||||
## if UseGitHub=true
|
||||
jenkins.Master.Security.GitHub.ClientID=id
|
||||
jenkins.Master.Security.GitHub.ClientSecret=S3cr3t
|
||||
## end UseGitHub=true
|
||||
PipelineSecrets.Env.PGPPassphrase=literal:S3cr3t
|
||||
```
|
||||
|
||||
You can use [all configuration values of the jenkins subchart](https://github.com/kubernetes/charts/tree/master/stable/jenkins).
|
||||
> Because we use jenkins as a sub-chart, you should prefix all value keys with `jenkins`!
|
||||
|
||||
### GitHub Authentication delegation
|
||||
You need to setup a MOLGENIS - Jenkins GitHub OAuth App. You can do this by accessing this url: [add new OAuth app](https://github.com/settings/applications/new).
|
||||
|
||||
### Secrets
|
||||
|
||||
When deployed, the chart creates a couple of kubernetes secrets that get used by jenkins.
|
||||
|
||||
You can override the values at deploy time but otherwise also configure them
|
||||
[in Rancher](https://rancher.molgenis.org:7443/p/c-mhkqb:project-2pf45/secrets) or through kubectl.
|
||||
|
||||
#### Vault
|
||||
|
||||
The vault secret gets mounted in the vault pod so pipeline scripts can retrieve secrets from the vault.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
| ------------------------- | ------------------------------------------ | ---------------------------------------------- |
|
||||
| `secret.vault.token` | Token to log into the hashicorp vault | `xxxx` |
|
||||
| `secret.vault.addr` | Address of the vault | `https:vault-operator.vault-operator.svc:8200` |
|
||||
| `secret.vault.skipVerify` | Skip verification of the https connection | `1` |
|
||||
|
||||
#### GitHub
|
||||
|
||||
Token used by Jenkins to authenticate on GitHub.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
| --------------------- | ------------------------ | ------------------ |
|
||||
| `secret.gitHub.user` | username for the account | `molgenis-jenkins` |
|
||||
| `secret.gitHub.token` | token for the account | `xxxx` |
|
||||
|
||||
#### Gogs
|
||||
|
||||
Token used by Jenkins to authenticate on the [RuG Webhosting Gogs](https://git.webhosting.rug.nl).
|
||||
|
||||
| Parameter | Description | Default |
|
||||
| ------------------- | ------------------------ | --------- |
|
||||
| `secret.gogs.user` | username for the account | `p281392` |
|
||||
| `secret.gogs.token` | token for the account | `xxxx` |
|
||||
|
||||
|
||||
#### Slack
|
||||
The Slack integration is done mostly in the Jenkinsfile of each project. It is sufficient to only add the plugin to the Jenkins configuration in Helm.
|
||||
|
||||
#### Legacy:
|
||||
|
||||
##### Docker Hub
|
||||
|
||||
Account used in pipeline builds to push docker images to `hub.docker.com`.
|
||||
> They should read `secret/gcc/account/dockerhub` from vault instead!
|
||||
|
||||
| Parameter | Description | Default |
|
||||
| --------------------------- | ------------------------ | --------------- |
|
||||
| `secret.dockerHub.user` | username for the account | `molgenisci` |
|
||||
| `secret.dockerHub.password` | password for the account | `xxxx` |
|
||||
|
||||
##### Registry
|
||||
|
||||
Account used in pipeline builds to push docker images to `registry.molgenis.org`.
|
||||
> They should read `secret/ops/account/nexus` from vault instead!
|
||||
|
||||
| Parameter | Description | Default |
|
||||
| --------------------------- | ------------------------ | --------- |
|
||||
| `secret.dockerHub.user` | username for the account | `admin` |
|
||||
| `secret.dockerHub.password` | password for the account | `xxxx` |
|
||||
|
||||
## Command line use
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart.
|
||||
For example,
|
||||
|
||||
```bash
|
||||
$ helm install --name jenkins -f values.yaml molgenis-jenkins
|
||||
```
|
||||
|
||||
> **Tip**: You can use the default [values.yaml](values.yaml)
|
||||
|
1768
charts/molgenis-jenkins/catalogIcon-molgenis-jenkins.svg
Normal file
1768
charts/molgenis-jenkins/catalogIcon-molgenis-jenkins.svg
Normal file
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 133 KiB |
BIN
charts/molgenis-jenkins/charts/jenkins-0.18.0.tgz
Normal file
BIN
charts/molgenis-jenkins/charts/jenkins-0.18.0.tgz
Normal file
Binary file not shown.
6
charts/molgenis-jenkins/requirements.lock
Normal file
6
charts/molgenis-jenkins/requirements.lock
Normal file
@ -0,0 +1,6 @@
|
||||
dependencies:
|
||||
- name: jenkins
|
||||
repository: https://kubernetes-charts.storage.googleapis.com/
|
||||
version: 0.18.0
|
||||
digest: sha256:39f694515489598fa545c9a5a4f1347749e8f2a8d7fae6ccae3e2acae1564685
|
||||
generated: 2018-09-27T11:00:15.795416984+02:00
|
4
charts/molgenis-jenkins/requirements.yaml
Normal file
4
charts/molgenis-jenkins/requirements.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
dependencies:
|
||||
- name: jenkins
|
||||
version: ^0.16
|
||||
repository: https://kubernetes-charts.storage.googleapis.com/
|
8
charts/molgenis-jenkins/resources/README.md
Normal file
8
charts/molgenis-jenkins/resources/README.md
Normal file
@ -0,0 +1,8 @@
|
||||
# Helm in Jenkins
|
||||
|
||||
To be able to run helm inside a jenkins pod, you'll need to
|
||||
* create a role in the namespace where tiller is installed
|
||||
* bind that role to the user that jenkins pods run as
|
||||
|
||||
This directory contains yaml for these resources.
|
||||
See also https://github.com/helm/helm/blob/master/docs/rbac.md
|
@ -0,0 +1,13 @@
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: tiller-jenkins-binding
|
||||
namespace: kube-system
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: tiller-user
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: molgenis-jenkins
|
18
charts/molgenis-jenkins/resources/tiller-user-role.yaml
Normal file
18
charts/molgenis-jenkins/resources/tiller-user-role.yaml
Normal file
@ -0,0 +1,18 @@
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: tiller-user
|
||||
namespace: kube-system
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/portforward
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- list
|
283
charts/molgenis-jenkins/templates/config.tpl
Normal file
283
charts/molgenis-jenkins/templates/config.tpl
Normal file
@ -0,0 +1,283 @@
|
||||
{{- define "override_config_map" }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "jenkins.fullname" . }}
|
||||
data:
|
||||
config.xml: |-
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<hudson>
|
||||
<disabledAdministrativeMonitors/>
|
||||
<version>{{ .Values.Master.ImageTag }}</version>
|
||||
<numExecutors>0</numExecutors>
|
||||
<mode>NORMAL</mode>
|
||||
<useSecurity>{{ .Values.Master.UseSecurity }}</useSecurity>
|
||||
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
|
||||
<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
|
||||
</authorizationStrategy>
|
||||
{{- if .Values.Master.Security.UseGitHub }}
|
||||
<securityRealm class="org.jenkinsci.plugins.GithubSecurityRealm">
|
||||
<githubWebUri>https://github.com</githubWebUri>
|
||||
<githubApiUri>https://api.github.com</githubApiUri>
|
||||
<clientID>{{ .Values.Master.Security.GitHub.ClientID }}</clientID>
|
||||
<clientSecret>{{ .Values.Master.Security.GitHub.ClientSecret }}</clientSecret>
|
||||
<oauthScopes>read:org,user:email</oauthScopes>
|
||||
</securityRealm>
|
||||
{{- else }}
|
||||
<securityRealm class="hudson.security.LegacySecurityRealm"/>
|
||||
{{- end }}
|
||||
<disableRememberMe>false</disableRememberMe>
|
||||
<projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
|
||||
<workspaceDir>${JENKINS_HOME}/workspace/${ITEM_FULLNAME}</workspaceDir>
|
||||
<buildsDir>${ITEM_ROOTDIR}/builds</buildsDir>
|
||||
<markupFormatter class="hudson.markup.EscapedMarkupFormatter"/>
|
||||
<jdks/>
|
||||
<primaryView>dev</primaryView>
|
||||
<viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
|
||||
<myViewsTabBar class="hudson.views.DefaultMyViewsTabBar"/>
|
||||
<clouds>
|
||||
<org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud plugin="kubernetes@{{ template "jenkins.kubernetes-version" . }}">
|
||||
<name>kubernetes</name>
|
||||
<templates>
|
||||
{{- range $podName, $pod := .Values.Pods }}
|
||||
<org.csanchez.jenkins.plugins.kubernetes.PodTemplate>
|
||||
<inheritFrom>{{ $pod.InheritFrom | default "" }}</inheritFrom>
|
||||
<name>{{ $podName }}</name>
|
||||
<instanceCap>2147483647</instanceCap>
|
||||
<idleMinutes>0</idleMinutes>
|
||||
<label>{{ .Label }}</label>
|
||||
<nodeSelector>
|
||||
{{- $local := dict "first" true }}
|
||||
{{- range $key, $value := .NodeSelector }}
|
||||
{{- if not $local.first }},{{- end }}
|
||||
{{- $key }}={{ $value }}
|
||||
{{- $_ := set $local "first" false }}
|
||||
{{- end }}</nodeSelector>
|
||||
<nodeUsageMode>{{ .NodeUsageMode }}</nodeUsageMode>
|
||||
<volumes>
|
||||
{{- range $index, $volume := .volumes }}
|
||||
<org.csanchez.jenkins.plugins.kubernetes.volumes.{{ .type }}Volume>
|
||||
{{- range $key, $value := $volume }}{{- if not (eq $key "type") }}
|
||||
<{{ $key }}>{{ $value }}</{{ $key }}>
|
||||
{{- end }}{{- end }}
|
||||
</org.csanchez.jenkins.plugins.kubernetes.volumes.{{ .type }}Volume>
|
||||
{{- end }}
|
||||
</volumes>
|
||||
<containers>
|
||||
{{- range $containerName, $container := .Containers }}
|
||||
<org.csanchez.jenkins.plugins.kubernetes.ContainerTemplate>
|
||||
<name>{{ $containerName }}</name>
|
||||
<image>{{ .Image }}:{{ .ImageTag | default "latest" }}</image>
|
||||
<ports>
|
||||
{{- range $index, $envVar := .Ports }}
|
||||
<org.csanchez.jenkins.plugins.kubernetes.PortMapping>
|
||||
<name>{{ .name }}</name>
|
||||
<containerPort>{{ .containerPort }}</containerPort>
|
||||
<hostPort>{{ .hostPort }}</hostPort>
|
||||
</org.csanchez.jenkins.plugins.kubernetes.PortMapping>
|
||||
{{- end }}
|
||||
</ports>
|
||||
{{- if .Privileged }}
|
||||
<privileged>true</privileged>
|
||||
{{- else }}
|
||||
<privileged>false</privileged>
|
||||
{{- end }}
|
||||
{{- if .AlwaysPullImage }}
|
||||
<alwaysPullImage>true</alwaysPullImage>
|
||||
{{- else }}
|
||||
<alwaysPullImage>false</alwaysPullImage>
|
||||
{{- end }}
|
||||
<workingDir>{{ .WorkingDir | default "" }}</workingDir>
|
||||
<command>{{ .Command | default "" }}</command>
|
||||
<args>{{ .Args | default "" }}</args>
|
||||
{{- if .TTY }}
|
||||
<ttyEnabled>true</ttyEnabled>
|
||||
{{- else }}
|
||||
<ttyEnabled>false</ttyEnabled>
|
||||
{{- end }}
|
||||
<envVars>
|
||||
{{- range $index, $envVar := .EnvVars }}
|
||||
<org.csanchez.jenkins.plugins.kubernetes.model.{{ .type }}EnvVar>
|
||||
{{- range $key, $value := $envVar }}{{- if not (eq $key "type") }}
|
||||
<{{ $key }}>{{ $value }}</{{ $key }}>
|
||||
{{- end }}{{- end }}
|
||||
</org.csanchez.jenkins.plugins.kubernetes.model.{{ .type }}EnvVar>
|
||||
{{- end }}
|
||||
</envVars>
|
||||
{{- if .resources }}
|
||||
{{- if .resources.requests }}
|
||||
<resourceRequestCpu>{{ .resources.requests.cpu | default "" }}</resourceRequestCpu>
|
||||
<resourceRequestMemory>{{ .resources.requests.memory | default "" }}</resourceRequestMemory>
|
||||
{{- end }}
|
||||
{{- if .resources.limits }}
|
||||
<resourceLimitCpu>{{ .resources.limits.cpu | default "" }}</resourceLimitCpu>
|
||||
<resourceLimitMemory>{{ .resources.limits.memory | default "" }}</resourceLimitMemory>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</org.csanchez.jenkins.plugins.kubernetes.ContainerTemplate>
|
||||
{{- end }}
|
||||
</containers>
|
||||
<envVars>
|
||||
<org.csanchez.jenkins.plugins.kubernetes.model.KeyValueEnvVar>
|
||||
<key>JENKINS_URL</key>
|
||||
<value>http://{{ template "jenkins.fullname" $ }}:{{$.Values.Master.ServicePort}}{{ default "" $.Values.Master.JenkinsUriPrefix }}</value>
|
||||
</org.csanchez.jenkins.plugins.kubernetes.model.KeyValueEnvVar>
|
||||
{{- range $index, $envVar := .EnvVars }}
|
||||
<org.csanchez.jenkins.plugins.kubernetes.model.{{ .type }}EnvVar>
|
||||
{{- range $key, $value := $envVar }}{{- if not (eq $key "type") }}
|
||||
<{{ $key }}>{{ $value }}</{{ $key }}>
|
||||
{{- end }}{{- end }}
|
||||
</org.csanchez.jenkins.plugins.kubernetes.model.{{ .type }}EnvVar>
|
||||
{{- end }}
|
||||
</envVars>
|
||||
<annotations/>
|
||||
{{- if .ImagePullSecret }}
|
||||
<imagePullSecrets>
|
||||
<org.csanchez.jenkins.plugins.kubernetes.PodImagePullSecret>
|
||||
<name>{{ .ImagePullSecret }}</name>
|
||||
</org.csanchez.jenkins.plugins.kubernetes.PodImagePullSecret>
|
||||
</imagePullSecrets>
|
||||
{{- else }}
|
||||
<imagePullSecrets/>
|
||||
{{- end }}
|
||||
<nodeProperties/>
|
||||
</org.csanchez.jenkins.plugins.kubernetes.PodTemplate>
|
||||
{{- end }}
|
||||
</templates>
|
||||
<serverUrl>https://kubernetes.default</serverUrl>
|
||||
<skipTlsVerify>false</skipTlsVerify>
|
||||
<namespace>{{ .Release.Namespace }}</namespace>
|
||||
<jenkinsUrl>http://{{ template "jenkins.fullname" . }}:{{.Values.Master.ServicePort}}{{ default "" .Values.Master.JenkinsUriPrefix }}</jenkinsUrl>
|
||||
<jenkinsTunnel>{{ template "jenkins.fullname" . }}-agent:50000</jenkinsTunnel>
|
||||
<containerCap>50</containerCap>
|
||||
<retentionTimeout>5</retentionTimeout>
|
||||
<connectTimeout>0</connectTimeout>
|
||||
<readTimeout>0</readTimeout>
|
||||
</org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud>
|
||||
</clouds>
|
||||
<quietPeriod>5</quietPeriod>
|
||||
<scmCheckoutRetryCount>0</scmCheckoutRetryCount>
|
||||
<views>
|
||||
<hudson.model.AllView>
|
||||
<owner class="hudson" reference="../../.."/>
|
||||
<name>all</name>
|
||||
<filterExecutors>false</filterExecutors>
|
||||
<filterQueue>false</filterQueue>
|
||||
<properties class="hudson.model.View$PropertyList"/>
|
||||
</hudson.model.AllView>
|
||||
{{- range $viewName, $view := .Values.Master.Views }}
|
||||
<listView>
|
||||
<owner class="hudson" reference="../../.."/>
|
||||
<name>{{ $viewName }}</name>
|
||||
<filterExecutors>false</filterExecutors>
|
||||
<filterQueue>false</filterQueue>
|
||||
<properties class="hudson.model.View$PropertyList"/>
|
||||
<jobNames>
|
||||
<comparator class="hudson.util.CaseInsensitiveComparator" reference="../../../listView/jobNames/comparator"/>
|
||||
{{- range $index, $job := $view }}
|
||||
<string>{{ $job }}</string>
|
||||
{{- end }}
|
||||
</jobNames>
|
||||
<jobFilters/>
|
||||
<columns>
|
||||
<hudson.views.StatusColumn/>
|
||||
<hudson.views.WeatherColumn/>
|
||||
<hudson.views.JobColumn/>
|
||||
<hudson.views.LastSuccessColumn/>
|
||||
<hudson.views.LastFailureColumn/>
|
||||
<hudson.views.LastDurationColumn/>
|
||||
<hudson.views.BuildButtonColumn/>
|
||||
<hudson.plugins.favorite.column.FavoriteColumn plugin="favorite@2.3.2"/>
|
||||
</columns>
|
||||
<recurse>false</recurse>
|
||||
</listView>
|
||||
{{- end }}
|
||||
</views>
|
||||
<primaryView>{{ .Values.Master.DefaultView }}</primaryView>
|
||||
<slaveAgentPort>50000</slaveAgentPort>
|
||||
<disabledAgentProtocols>
|
||||
{{- range .Values.Master.DisabledAgentProtocols }}
|
||||
<string>{{ . }}</string>
|
||||
{{- end }}
|
||||
</disabledAgentProtocols>
|
||||
<label></label>
|
||||
{{- if .Values.Master.CSRF.DefaultCrumbIssuer.Enabled }}
|
||||
<crumbIssuer class="hudson.security.csrf.DefaultCrumbIssuer">
|
||||
{{- if .Values.Master.CSRF.DefaultCrumbIssuer.ProxyCompatability }}
|
||||
<excludeClientIPFromCrumb>true</excludeClientIPFromCrumb>
|
||||
{{- end }}
|
||||
</crumbIssuer>
|
||||
{{- end }}
|
||||
<nodeProperties/>
|
||||
<globalNodeProperties/>
|
||||
<noUsageStatistics>true</noUsageStatistics>
|
||||
</hudson>
|
||||
{{- if .Values.Master.ScriptApproval }}
|
||||
scriptapproval.xml: |-
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<scriptApproval plugin="script-security@1.27">
|
||||
<approvedScriptHashes/>
|
||||
<approvedSignatures>
|
||||
{{- range $key, $val := .Values.Master.ScriptApproval }}
|
||||
<string>{{ $val }}</string>
|
||||
{{- end }}
|
||||
</approvedSignatures>
|
||||
<aclApprovedSignatures/>
|
||||
<approvedClasspathEntries/>
|
||||
<pendingScripts/>
|
||||
<pendingSignatures/>
|
||||
<pendingClasspathEntries/>
|
||||
</scriptApproval>
|
||||
{{- end }}
|
||||
jenkins.CLI.xml: |-
|
||||
<?xml version='1.1' encoding='UTF-8'?>
|
||||
<jenkins.CLI>
|
||||
{{- if .Values.Master.CLI }}
|
||||
<enabled>true</enabled>
|
||||
{{- else }}
|
||||
<enabled>false</enabled>
|
||||
{{- end }}
|
||||
</jenkins.CLI>
|
||||
apply_config.sh: |-
|
||||
mkdir -p /usr/share/jenkins/ref/secrets/;
|
||||
echo "false" > /usr/share/jenkins/ref/secrets/slave-to-master-security-kill-switch;
|
||||
cp -n /var/jenkins_config/config.xml /var/jenkins_home;
|
||||
cp -n /var/jenkins_config/jenkins.CLI.xml /var/jenkins_home;
|
||||
{{- if .Values.Master.InstallPlugins }}
|
||||
# Install missing plugins
|
||||
cp /var/jenkins_config/plugins.txt /var/jenkins_home;
|
||||
rm -rf /usr/share/jenkins/ref/plugins/*.lock
|
||||
/usr/local/bin/install-plugins.sh `echo $(cat /var/jenkins_home/plugins.txt)`;
|
||||
# Copy plugins to shared volume
|
||||
cp -n /usr/share/jenkins/ref/plugins/* /var/jenkins_plugins;
|
||||
{{- end }}
|
||||
{{- if .Values.Master.ScriptApproval }}
|
||||
cp -n /var/jenkins_config/scriptapproval.xml /var/jenkins_home/scriptApproval.xml;
|
||||
{{- end }}
|
||||
{{- if .Values.Master.InitScripts }}
|
||||
mkdir -p /var/jenkins_home/init.groovy.d/;
|
||||
cp -n /var/jenkins_config/*.groovy /var/jenkins_home/init.groovy.d/
|
||||
{{- end }}
|
||||
{{- if .Values.Master.CredentialsXmlSecret }}
|
||||
cp -n /var/jenkins_credentials/credentials.xml /var/jenkins_home;
|
||||
{{- end }}
|
||||
{{- if .Values.Master.SecretsFilesSecret }}
|
||||
cp -n /var/jenkins_secrets/* /usr/share/jenkins/ref/secrets;
|
||||
{{- end }}
|
||||
{{- if .Values.Master.Jobs }}
|
||||
for job in $(ls /var/jenkins_jobs); do
|
||||
mkdir -p /var/jenkins_home/jobs/$job
|
||||
cp -n /var/jenkins_jobs/$job /var/jenkins_home/jobs/$job/config.xml
|
||||
done
|
||||
{{- end }}
|
||||
{{- range $key, $val := .Values.Master.InitScripts }}
|
||||
init{{ $key }}.groovy: |-
|
||||
{{ $val | indent 4 }}
|
||||
{{- end }}
|
||||
plugins.txt: |-
|
||||
{{- if .Values.Master.InstallPlugins }}
|
||||
{{- range $index, $val := .Values.Master.InstallPlugins }}
|
||||
{{ $val | indent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
@ -0,0 +1,16 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
# this is the jenkins id.
|
||||
name: "molgenis-jenkins-dockerhub-secret"
|
||||
labels:
|
||||
# so we know what type it is.
|
||||
"jenkins.io/credentials-type": "usernamePassword"
|
||||
annotations: {
|
||||
# description - can not be a label as spaces are not allowed
|
||||
"jenkins.io/credentials-description" : "(deprecated by vault) Account used in pipeline builds to push docker images to Docker Hub (hub.docker.com)"
|
||||
}
|
||||
type: Opaque
|
||||
data:
|
||||
username: {{ .Values.secret.registry.user | b64enc | quote }}
|
||||
password: {{ .Values.secret.registry.password | b64enc | quote }}
|
@ -0,0 +1,16 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
# this is the jenkins id.
|
||||
name: "molgenis-jenkins-github-secret"
|
||||
labels:
|
||||
# so we know what type it is.
|
||||
"jenkins.io/credentials-type": "usernamePassword"
|
||||
annotations: {
|
||||
# description - can not be a label as spaces are not allowed
|
||||
"jenkins.io/credentials-description" : "Oauth token for the {{.Values.secret.gitHub.user}} GitHub user"
|
||||
}
|
||||
type: Opaque
|
||||
data:
|
||||
username: {{ .Values.secret.gitHub.user | b64enc | quote }}
|
||||
password: {{ .Values.secret.gitHub.token | b64enc | quote }}
|
@ -0,0 +1,16 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
# this is the jenkins id.
|
||||
name: "molgenis-jenkins-gogs-secret"
|
||||
labels:
|
||||
# so we know what type it is.
|
||||
"jenkins.io/credentials-type": "usernamePassword"
|
||||
annotations: {
|
||||
# description - can not be a label as spaces are not allowed
|
||||
"jenkins.io/credentials-description" : "Account used to authenticate against RuG Webhosting Gogs."
|
||||
}
|
||||
type: Opaque
|
||||
data:
|
||||
username: {{ .Values.secret.gogs.user | b64enc | quote }}
|
||||
password: {{ .Values.secret.gogs.token | b64enc | quote }}
|
@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: molgenis-jenkins-registry-secret
|
||||
labels:
|
||||
app: {{ template "jenkins.fullname" . }}
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||
release: "{{ .Release.Name }}"
|
||||
heritage: "{{ .Release.Service }}"
|
||||
annotations: {
|
||||
# description - can not be a label as spaces are not allowed
|
||||
"jenkins.io/credentials-description" : "(deprecated by vault) Account used in pipeline builds to push docker images to registry.molgenis.org."
|
||||
}
|
||||
type: Opaque
|
||||
data:
|
||||
username: {{ .Values.secret.registry.user | b64enc | quote }}
|
||||
password: {{ .Values.secret.registry.password | b64enc | quote }}
|
@ -0,0 +1,14 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: molgenis-pipeline-vault-secret
|
||||
labels:
|
||||
app: {{ template "jenkins.fullname" . }}
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||
release: "{{ .Release.Name }}"
|
||||
heritage: "{{ .Release.Service }}"
|
||||
type: Opaque
|
||||
data:
|
||||
token: {{ .Values.secret.vault.token | b64enc | quote }}
|
||||
addr: {{ .Values.secret.vault.addr | b64enc | quote }}
|
||||
skipVerify: {{ .Values.secret.vault.skipVerify | b64enc | quote }}
|
609
charts/molgenis-jenkins/values.yaml
Normal file
609
charts/molgenis-jenkins/values.yaml
Normal file
@ -0,0 +1,609 @@
|
||||
jenkins:
|
||||
Master:
|
||||
HostName: jenkins.molgenis.org
|
||||
ServiceType: ClusterIP
|
||||
InstallPlugins:
|
||||
- kubernetes:1.12.6
|
||||
- workflow-aggregator:2.5
|
||||
- workflow-job:2.25
|
||||
- credentials-binding:1.16
|
||||
- git:3.9.1
|
||||
- github-branch-source:2.3.6
|
||||
- kubernetes-credentials-provider:0.10
|
||||
- blueocean:1.8.3
|
||||
- github-oauth:0.29
|
||||
- gogs-webhook:1.0.14
|
||||
- github-scm-trait-commit-skip:0.1.1
|
||||
- slack:2.3
|
||||
Security:
|
||||
UseGitHub: false
|
||||
GitHub:
|
||||
ClientID: ""
|
||||
ClienSecret: ""
|
||||
DefaultView: dev
|
||||
Views:
|
||||
dev:
|
||||
- molgenis
|
||||
ops:
|
||||
- molgenis-ops-docker-httpd
|
||||
- molgenis-ops-docker-maven
|
||||
- molgenis-ops-docker-node
|
||||
- molgenis-ops-tools
|
||||
- molgenis-ops-tomcat
|
||||
Jobs: |-
|
||||
molgenis: |-
|
||||
<?xml version='1.1' encoding='UTF-8'?>
|
||||
<jenkins.branch.OrganizationFolder plugin="branch-api@2.0.20">
|
||||
<actions/>
|
||||
<description></description>
|
||||
<properties>
|
||||
<org.jenkinsci.plugins.pipeline.modeldefinition.config.FolderConfig plugin="pipeline-model-definition@1.3.1">
|
||||
<dockerLabel></dockerLabel>
|
||||
<registry plugin="docker-commons@1.13"/>
|
||||
</org.jenkinsci.plugins.pipeline.modeldefinition.config.FolderConfig>
|
||||
<jenkins.branch.NoTriggerOrganizationFolderProperty>
|
||||
<branches>.*</branches>
|
||||
</jenkins.branch.NoTriggerOrganizationFolderProperty>
|
||||
</properties>
|
||||
<folderViews class="jenkins.branch.OrganizationFolderViewHolder">
|
||||
<owner reference="../.."/>
|
||||
</folderViews>
|
||||
<healthMetrics>
|
||||
<com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder@6.5.1">
|
||||
<nonRecursive>false</nonRecursive>
|
||||
</com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
|
||||
</healthMetrics>
|
||||
<icon class="jenkins.branch.MetadataActionFolderIcon">
|
||||
<owner class="jenkins.branch.OrganizationFolder" reference="../.."/>
|
||||
</icon>
|
||||
<orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder@6.5.1">
|
||||
<pruneDeadBranches>true</pruneDeadBranches>
|
||||
<daysToKeep>-1</daysToKeep>
|
||||
<numToKeep>-1</numToKeep>
|
||||
</orphanedItemStrategy>
|
||||
<triggers>
|
||||
<com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger plugin="cloudbees-folder@6.5.1">
|
||||
<spec>H H * * *</spec>
|
||||
<interval>86400000</interval>
|
||||
</com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger>
|
||||
</triggers>
|
||||
<disabled>false</disabled>
|
||||
<navigators>
|
||||
<org.jenkinsci.plugins.github__branch__source.GitHubSCMNavigator plugin="github-branch-source@2.3.6">
|
||||
<repoOwner>molgenis</repoOwner>
|
||||
<credentialsId>molgenis-jenkins-github-secret</credentialsId>
|
||||
<traits>
|
||||
<org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
|
||||
<strategyId>1</strategyId>
|
||||
</org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
|
||||
<org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
|
||||
<strategyId>1</strategyId>
|
||||
</org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
|
||||
<org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
|
||||
<strategyId>1</strategyId>
|
||||
<trust class="org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustPermission"/>
|
||||
</org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
|
||||
<org.jenkinsci.plugins.scm__filter.GitHubCommitSkipTrait plugin="github-scm-trait-commit-skip@0.1.1"/>
|
||||
<jenkins.plugins.git.traits.LocalBranchTrait plugin="git@3.9.1">
|
||||
<extension class="hudson.plugins.git.extensions.impl.LocalBranch">
|
||||
<localBranch>**</localBranch>
|
||||
</extension>
|
||||
</jenkins.plugins.git.traits.LocalBranchTrait>
|
||||
<jenkins.plugins.git.traits.UserIdentityTrait plugin="git@3.9.1">
|
||||
<extension class="hudson.plugins.git.extensions.impl.UserIdentity">
|
||||
<name>MOLGENIS Jenkins</name>
|
||||
<email>molgenis+ci@gmail.com</email>
|
||||
</extension>
|
||||
</jenkins.plugins.git.traits.UserIdentityTrait>
|
||||
</traits>
|
||||
</org.jenkinsci.plugins.github__branch__source.GitHubSCMNavigator>
|
||||
</navigators>
|
||||
<projectFactories>
|
||||
<org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProjectFactory plugin="workflow-multibranch@2.19">
|
||||
<scriptPath>Jenkinsfile</scriptPath>
|
||||
</org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProjectFactory>
|
||||
</projectFactories>
|
||||
<buildStrategies/>
|
||||
</jenkins.branch.OrganizationFolder>
|
||||
molgenis-ops-docker-httpd: |-
|
||||
<?xml version='1.1' encoding='UTF-8'?>
|
||||
<org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject plugin="workflow-multibranch@2.19">
|
||||
<actions/>
|
||||
<description>HTTPD server that can be used for redirection and proxieing</description>
|
||||
<displayName>molgenis-ops-docker-httpd</displayName>
|
||||
<properties>
|
||||
<org.jenkinsci.plugins.pipeline.modeldefinition.config.FolderConfig plugin="pipeline-model-definition@1.3.1">
|
||||
<dockerLabel></dockerLabel>
|
||||
<registry plugin="docker-commons@1.13"/>
|
||||
</org.jenkinsci.plugins.pipeline.modeldefinition.config.FolderConfig>
|
||||
</properties>
|
||||
<folderViews class="jenkins.branch.MultiBranchProjectViewHolder" plugin="branch-api@2.0.20">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</folderViews>
|
||||
<healthMetrics>
|
||||
<com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder@6.5.1">
|
||||
<nonRecursive>false</nonRecursive>
|
||||
</com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
|
||||
</healthMetrics>
|
||||
<icon class="jenkins.branch.MetadataActionFolderIcon" plugin="branch-api@2.0.20">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</icon>
|
||||
<orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder@6.5.1">
|
||||
<pruneDeadBranches>true</pruneDeadBranches>
|
||||
<daysToKeep>-1</daysToKeep>
|
||||
<numToKeep>-1</numToKeep>
|
||||
</orphanedItemStrategy>
|
||||
<triggers/>
|
||||
<disabled>false</disabled>
|
||||
<sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api@2.0.20">
|
||||
<data>
|
||||
<jenkins.branch.BranchSource>
|
||||
<source class="jenkins.plugins.git.GitSCMSource" plugin="git@3.9.1">
|
||||
<id>a756941d-6c9d-4492-bcf9-327041764be6</id>
|
||||
<remote>https://git.webhosting.rug.nl/molgenis/molgenis-ops-docker-httpd.git</remote>
|
||||
<credentialsId>molgenis-jenkins-gogs-secret</credentialsId>
|
||||
<traits>
|
||||
<jenkins.plugins.git.traits.BranchDiscoveryTrait/>
|
||||
<jenkins.plugins.git.traits.LocalBranchTrait plugin="git@3.9.1">
|
||||
<extension class="hudson.plugins.git.extensions.impl.LocalBranch">
|
||||
<localBranch>**</localBranch>
|
||||
</extension>
|
||||
</jenkins.plugins.git.traits.LocalBranchTrait>
|
||||
<jenkins.plugins.git.traits.UserIdentityTrait plugin="git@3.9.1">
|
||||
<extension class="hudson.plugins.git.extensions.impl.UserIdentity">
|
||||
<name>MOLGENIS Jenkins</name>
|
||||
<email>molgenis+ci@gmail.com</email>
|
||||
</extension>
|
||||
</jenkins.plugins.git.traits.UserIdentityTrait>
|
||||
</traits>
|
||||
</source>
|
||||
<strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
|
||||
<properties class="empty-list"/>
|
||||
</strategy>
|
||||
</jenkins.branch.BranchSource>
|
||||
</data>
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</sources>
|
||||
<factory class="org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
<scriptPath>Jenkinsfile</scriptPath>
|
||||
</factory>
|
||||
</org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject>
|
||||
molgenis-ops-docker-node: |-
|
||||
<?xml version='1.1' encoding='UTF-8'?>
|
||||
<org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject plugin="workflow-multibranch@2.19">
|
||||
<actions/>
|
||||
<description>NodeJS build container with Curl</description>
|
||||
<displayName>molgenis-ops-docker-node</displayName>
|
||||
<properties>
|
||||
<org.jenkinsci.plugins.pipeline.modeldefinition.config.FolderConfig plugin="pipeline-model-definition@1.3.1">
|
||||
<dockerLabel></dockerLabel>
|
||||
<registry plugin="docker-commons@1.13"/>
|
||||
</org.jenkinsci.plugins.pipeline.modeldefinition.config.FolderConfig>
|
||||
</properties>
|
||||
<folderViews class="jenkins.branch.MultiBranchProjectViewHolder" plugin="branch-api@2.0.20">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</folderViews>
|
||||
<healthMetrics>
|
||||
<com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder@6.5.1">
|
||||
<nonRecursive>false</nonRecursive>
|
||||
</com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
|
||||
</healthMetrics>
|
||||
<icon class="jenkins.branch.MetadataActionFolderIcon" plugin="branch-api@2.0.20">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</icon>
|
||||
<orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder@6.5.1">
|
||||
<pruneDeadBranches>true</pruneDeadBranches>
|
||||
<daysToKeep>-1</daysToKeep>
|
||||
<numToKeep>-1</numToKeep>
|
||||
</orphanedItemStrategy>
|
||||
<triggers/>
|
||||
<disabled>false</disabled>
|
||||
<sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api@2.0.20">
|
||||
<data>
|
||||
<jenkins.branch.BranchSource>
|
||||
<source class="jenkins.plugins.git.GitSCMSource" plugin="git@3.9.1">
|
||||
<id>a756941d-6c9d-4492-bcf9-327041764be6</id>
|
||||
<remote>https://git.webhosting.rug.nl/molgenis/molgenis-ops-docker-node.git</remote>
|
||||
<credentialsId>molgenis-jenkins-gogs-secret</credentialsId>
|
||||
<traits>
|
||||
<jenkins.plugins.git.traits.BranchDiscoveryTrait/>
|
||||
<jenkins.plugins.git.traits.LocalBranchTrait plugin="git@3.9.1">
|
||||
<extension class="hudson.plugins.git.extensions.impl.LocalBranch">
|
||||
<localBranch>**</localBranch>
|
||||
</extension>
|
||||
</jenkins.plugins.git.traits.LocalBranchTrait>
|
||||
<jenkins.plugins.git.traits.UserIdentityTrait plugin="git@3.9.1">
|
||||
<extension class="hudson.plugins.git.extensions.impl.UserIdentity">
|
||||
<name>MOLGENIS Jenkins</name>
|
||||
<email>molgenis+ci@gmail.com</email>
|
||||
</extension>
|
||||
</jenkins.plugins.git.traits.UserIdentityTrait>
|
||||
</traits>
|
||||
</source>
|
||||
<strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
|
||||
<properties class="empty-list"/>
|
||||
</strategy>
|
||||
</jenkins.branch.BranchSource>
|
||||
</data>
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</sources>
|
||||
<factory class="org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
<scriptPath>Jenkinsfile</scriptPath>
|
||||
</factory>
|
||||
</org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject>
|
||||
molgenis-ops-docker-maven: |-
|
||||
<?xml version='1.1' encoding='UTF-8'?>
|
||||
<org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject plugin="workflow-multibranch@2.19">
|
||||
<actions/>
|
||||
<description>MAVEN build container with RPMbuild and Curl</description>
|
||||
<displayName>molgenis-ops-docker-maven</displayName>
|
||||
<properties>
|
||||
<org.jenkinsci.plugins.pipeline.modeldefinition.config.FolderConfig plugin="pipeline-model-definition@1.3.1">
|
||||
<dockerLabel></dockerLabel>
|
||||
<registry plugin="docker-commons@1.13"/>
|
||||
</org.jenkinsci.plugins.pipeline.modeldefinition.config.FolderConfig>
|
||||
</properties>
|
||||
<folderViews class="jenkins.branch.MultiBranchProjectViewHolder" plugin="branch-api@2.0.20">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</folderViews>
|
||||
<healthMetrics>
|
||||
<com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder@6.5.1">
|
||||
<nonRecursive>false</nonRecursive>
|
||||
</com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
|
||||
</healthMetrics>
|
||||
<icon class="jenkins.branch.MetadataActionFolderIcon" plugin="branch-api@2.0.20">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</icon>
|
||||
<orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder@6.5.1">
|
||||
<pruneDeadBranches>true</pruneDeadBranches>
|
||||
<daysToKeep>-1</daysToKeep>
|
||||
<numToKeep>-1</numToKeep>
|
||||
</orphanedItemStrategy>
|
||||
<triggers/>
|
||||
<disabled>false</disabled>
|
||||
<sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api@2.0.20">
|
||||
<data>
|
||||
<jenkins.branch.BranchSource>
|
||||
<source class="jenkins.plugins.git.GitSCMSource" plugin="git@3.9.1">
|
||||
<id>4702479a-6988-4a85-b4b7-e77fa2d05ffa</id>
|
||||
<remote>https://git.webhosting.rug.nl/molgenis/molgenis-ops-docker-maven.git</remote>
|
||||
<credentialsId>molgenis-jenkins-gogs-secret</credentialsId>
|
||||
<traits>
|
||||
<jenkins.plugins.git.traits.BranchDiscoveryTrait/>
|
||||
<jenkins.plugins.git.traits.LocalBranchTrait plugin="git@3.9.1">
|
||||
<extension class="hudson.plugins.git.extensions.impl.LocalBranch">
|
||||
<localBranch>**</localBranch>
|
||||
</extension>
|
||||
</jenkins.plugins.git.traits.LocalBranchTrait>
|
||||
<jenkins.plugins.git.traits.UserIdentityTrait plugin="git@3.9.1">
|
||||
<extension class="hudson.plugins.git.extensions.impl.UserIdentity">
|
||||
<name>MOLGENIS Jenkins</name>
|
||||
<email>molgenis+ci@gmail.com</email>
|
||||
</extension>
|
||||
</jenkins.plugins.git.traits.UserIdentityTrait>
|
||||
</traits>
|
||||
</source>
|
||||
<strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
|
||||
<properties class="empty-list"/>
|
||||
</strategy>
|
||||
</jenkins.branch.BranchSource>
|
||||
</data>
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</sources>
|
||||
<factory class="org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
<scriptPath>Jenkinsfile</scriptPath>
|
||||
</factory>
|
||||
</org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject>
|
||||
molgenis-ops-tomcat: |-
|
||||
<?xml version='1.1' encoding='UTF-8'?>
|
||||
<org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject plugin="workflow-multibranch@2.19">
|
||||
<actions/>
|
||||
<description>MOLGENIS tomcat package to manage tomcat version on CentOS</description>
|
||||
<displayName>molgenis-ops-tomcat</displayName>
|
||||
<properties>
|
||||
<org.jenkinsci.plugins.pipeline.modeldefinition.config.FolderConfig plugin="pipeline-model-definition@1.3.1">
|
||||
<dockerLabel></dockerLabel>
|
||||
<registry plugin="docker-commons@1.13"/>
|
||||
</org.jenkinsci.plugins.pipeline.modeldefinition.config.FolderConfig>
|
||||
</properties>
|
||||
<folderViews class="jenkins.branch.MultiBranchProjectViewHolder" plugin="branch-api@2.0.20">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</folderViews>
|
||||
<healthMetrics>
|
||||
<com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder@6.5.1">
|
||||
<nonRecursive>false</nonRecursive>
|
||||
</com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
|
||||
</healthMetrics>
|
||||
<icon class="jenkins.branch.MetadataActionFolderIcon" plugin="branch-api@2.0.20">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</icon>
|
||||
<orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder@6.5.1">
|
||||
<pruneDeadBranches>true</pruneDeadBranches>
|
||||
<daysToKeep>-1</daysToKeep>
|
||||
<numToKeep>-1</numToKeep>
|
||||
</orphanedItemStrategy>
|
||||
<triggers/>
|
||||
<disabled>false</disabled>
|
||||
<sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api@2.0.20">
|
||||
<data>
|
||||
<jenkins.branch.BranchSource>
|
||||
<source class="jenkins.plugins.git.GitSCMSource" plugin="git@3.9.1">
|
||||
<id>4702479a-6988-4a85-b4b7-e77fa2d05ffa</id>
|
||||
<remote>https://git.webhosting.rug.nl/molgenis/molgenis-ops-tomcat.git</remote>
|
||||
<credentialsId>molgenis-jenkins-gogs-secret</credentialsId>
|
||||
<traits>
|
||||
<jenkins.plugins.git.traits.BranchDiscoveryTrait/>
|
||||
<jenkins.plugins.git.traits.LocalBranchTrait plugin="git@3.9.1">
|
||||
<extension class="hudson.plugins.git.extensions.impl.LocalBranch">
|
||||
<localBranch>**</localBranch>
|
||||
</extension>
|
||||
</jenkins.plugins.git.traits.LocalBranchTrait>
|
||||
<jenkins.plugins.git.traits.UserIdentityTrait plugin="git@3.9.1">
|
||||
<extension class="hudson.plugins.git.extensions.impl.UserIdentity">
|
||||
<name>MOLGENIS Jenkins</name>
|
||||
<email>molgenis+ci@gmail.com</email>
|
||||
</extension>
|
||||
</jenkins.plugins.git.traits.UserIdentityTrait>
|
||||
</traits>
|
||||
</source>
|
||||
<strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
|
||||
<properties class="empty-list"/>
|
||||
</strategy>
|
||||
</jenkins.branch.BranchSource>
|
||||
</data>
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</sources>
|
||||
<factory class="org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
<scriptPath>Jenkinsfile</scriptPath>
|
||||
</factory>
|
||||
</org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject>
|
||||
molgenis-ops-tools: |-
|
||||
<?xml version='1.1' encoding='UTF-8'?>
|
||||
<org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject plugin="workflow-multibranch@2.19">
|
||||
<actions/>
|
||||
<description>MOLGENIS operations tools-package to configure firewall, apache, sudoers, etc.</description>
|
||||
<displayName>molgenis-ops-tools</displayName>
|
||||
<properties>
|
||||
<org.jenkinsci.plugins.pipeline.modeldefinition.config.FolderConfig plugin="pipeline-model-definition@1.3.1">
|
||||
<dockerLabel></dockerLabel>
|
||||
<registry plugin="docker-commons@1.13"/>
|
||||
</org.jenkinsci.plugins.pipeline.modeldefinition.config.FolderConfig>
|
||||
</properties>
|
||||
<folderViews class="jenkins.branch.MultiBranchProjectViewHolder" plugin="branch-api@2.0.20">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</folderViews>
|
||||
<healthMetrics>
|
||||
<com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder@6.5.1">
|
||||
<nonRecursive>false</nonRecursive>
|
||||
</com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
|
||||
</healthMetrics>
|
||||
<icon class="jenkins.branch.MetadataActionFolderIcon" plugin="branch-api@2.0.20">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</icon>
|
||||
<orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder@6.5.1">
|
||||
<pruneDeadBranches>true</pruneDeadBranches>
|
||||
<daysToKeep>-1</daysToKeep>
|
||||
<numToKeep>-1</numToKeep>
|
||||
</orphanedItemStrategy>
|
||||
<triggers/>
|
||||
<disabled>false</disabled>
|
||||
<sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api@2.0.20">
|
||||
<data>
|
||||
<jenkins.branch.BranchSource>
|
||||
<source class="jenkins.plugins.git.GitSCMSource" plugin="git@3.9.1">
|
||||
<id>4702479a-6988-4a85-b4b7-e77fa2d05ffa</id>
|
||||
<remote>https://git.webhosting.rug.nl/molgenis/molgenis-ops-tools.git</remote>
|
||||
<credentialsId>molgenis-jenkins-gogs-secret</credentialsId>
|
||||
<traits>
|
||||
<jenkins.plugins.git.traits.BranchDiscoveryTrait/>
|
||||
<jenkins.plugins.git.traits.LocalBranchTrait plugin="git@3.9.1">
|
||||
<extension class="hudson.plugins.git.extensions.impl.LocalBranch">
|
||||
<localBranch>**</localBranch>
|
||||
</extension>
|
||||
</jenkins.plugins.git.traits.LocalBranchTrait>
|
||||
<jenkins.plugins.git.traits.UserIdentityTrait plugin="git@3.9.1">
|
||||
<extension class="hudson.plugins.git.extensions.impl.UserIdentity">
|
||||
<name>MOLGENIS Jenkins</name>
|
||||
<email>molgenis+ci@gmail.com</email>
|
||||
</extension>
|
||||
</jenkins.plugins.git.traits.UserIdentityTrait>
|
||||
</traits>
|
||||
</source>
|
||||
<strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
|
||||
<properties class="empty-list"/>
|
||||
</strategy>
|
||||
</jenkins.branch.BranchSource>
|
||||
</data>
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
</sources>
|
||||
<factory class="org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory">
|
||||
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||
<scriptPath>Jenkinsfile</scriptPath>
|
||||
</factory>
|
||||
</org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject>
|
||||
# Kubernetes secret that contains a 'credentials.xml' for Jenkins
|
||||
# CredentialsXmlSecret: jenkins-credentials
|
||||
# Kubernetes secret that contains files to be put in the Jenkins 'secrets' directory,
|
||||
# useful to manage encryption keys used for credentials.xml for instance (such as
|
||||
# master.key and hudson.util.Secret)
|
||||
# SecretsFilesSecret: jenkins-secrets
|
||||
CustomConfigMap: true
|
||||
rbac:
|
||||
install: true
|
||||
Pods:
|
||||
molgenis:
|
||||
Label: molgenis
|
||||
NodeUsageMode: NORMAL
|
||||
volumes:
|
||||
- type: HostPath
|
||||
hostPath: "/var/run/docker.sock"
|
||||
mountPath: "/var/run/docker.sock"
|
||||
Containers:
|
||||
maven:
|
||||
Image: "registry.webhosting.rug.nl/molgenis/maven"
|
||||
ImageTag: lts
|
||||
AlwaysPullImage: true
|
||||
Command: cat
|
||||
WorkingDir: /home/jenkins
|
||||
TTY: true
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: "4Gi"
|
||||
EnvVars:
|
||||
- type: KeyValue
|
||||
key: MAVEN_OPTS
|
||||
value: "-Duser.home=/home/jenkins"
|
||||
- type: KeyValue
|
||||
key: MAVEN_CONFIG
|
||||
value: "/home/jenkins/.m2"
|
||||
alpine:
|
||||
Image: "spotify/alpine"
|
||||
Command: cat
|
||||
WorkingDir: /home/jenkins
|
||||
TTY: true
|
||||
vault:
|
||||
Image: "vault"
|
||||
Command: cat
|
||||
WorkingDir: /home/jenkins
|
||||
TTY: true
|
||||
EnvVars:
|
||||
- type: Secret
|
||||
key: VAULT_TOKEN
|
||||
secretName: molgenis-pipeline-vault-secret
|
||||
secretKey: token
|
||||
- type: Secret
|
||||
key: VAULT_SKIP_VERIFY
|
||||
secretName: molgenis-pipeline-vault-secret
|
||||
secretKey: skipVerify
|
||||
- type: Secret
|
||||
key: VAULT_ADDR
|
||||
secretName: molgenis-pipeline-vault-secret
|
||||
secretKey: addr
|
||||
helm:
|
||||
Image: "lachlanevenson/k8s-helm"
|
||||
ImageTag: "v2.10.0"
|
||||
Command: cat
|
||||
WorkingDir: /home/jenkins
|
||||
TTY: true
|
||||
NodeSelector: {}
|
||||
node:
|
||||
Label: node-carbon
|
||||
NodeUsageMode: EXCLUSIVE
|
||||
Containers:
|
||||
node:
|
||||
Image: "registry.webhosting.rug.nl/molgenis/node"
|
||||
ImageTag: lts
|
||||
AlwaysPullImage: true
|
||||
Command: cat
|
||||
WorkingDir: /home/jenkins
|
||||
TTY: true
|
||||
vault:
|
||||
Image: "vault"
|
||||
Command: cat
|
||||
WorkingDir: /home/jenkins
|
||||
TTY: true
|
||||
EnvVars:
|
||||
- type: Secret
|
||||
key: VAULT_TOKEN
|
||||
secretName: molgenis-pipeline-vault-secret
|
||||
secretKey: token
|
||||
- type: Secret
|
||||
key: VAULT_SKIP_VERIFY
|
||||
secretName: molgenis-pipeline-vault-secret
|
||||
secretKey: skipVerify
|
||||
- type: Secret
|
||||
key: VAULT_ADDR
|
||||
secretName: molgenis-pipeline-vault-secret
|
||||
secretKey: addr
|
||||
NodeSelector: {}
|
||||
molgenis-it:
|
||||
InheritFrom: molgenis
|
||||
Label: molgenis-it
|
||||
NodeUsageMode: EXCLUSIVE
|
||||
Containers:
|
||||
elasticsearch:
|
||||
Image: docker.elastic.co/elasticsearch/elasticsearch
|
||||
ImageTag: 5.5.3
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
memory: "1Gi"
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: "1500Mi"
|
||||
EnvVars:
|
||||
- type: KeyValue
|
||||
key: ES_JAVA_OPTS
|
||||
value: "-Xms512m -Xmx512m"
|
||||
- type: KeyValue
|
||||
key: cluster.name
|
||||
value: molgenis
|
||||
- type: KeyValue
|
||||
key: bootstrap.memory_lock
|
||||
value: "true"
|
||||
- type: KeyValue
|
||||
key: xpack.security.enabled
|
||||
value: "false"
|
||||
- type: KeyValue
|
||||
key: discovery.type
|
||||
value: single-node
|
||||
postgres:
|
||||
Image: postgres
|
||||
ImageTag: 9.6-alpine
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
memory: "250Mi"
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: "250Mi"
|
||||
EnvVars:
|
||||
- type: KeyValue
|
||||
key: POSTGRES_USER
|
||||
value: molgenis
|
||||
- type: KeyValue
|
||||
key: POSTGRES_PASSWORD
|
||||
value: molgenis
|
||||
- type: KeyValue
|
||||
key: POSTGRES_DB
|
||||
value: molgenis
|
||||
opencpu:
|
||||
Image: molgenis/opencpu
|
||||
AlwaysPullImage: true
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
memory: "256Mi"
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: "512Mi"
|
||||
NodeSelector: {}
|
||||
|
||||
#secret contains configuration for the kubernetes secrets that jenkins can access
|
||||
secret:
|
||||
# vault configures the vault secret
|
||||
vault:
|
||||
token: xxxx
|
||||
addr: "https://vault-operator.vault-operator.svc:8200"
|
||||
skipVerify: "1"
|
||||
# githubToken contains access token for jenkins bot account on github.com
|
||||
gitHub:
|
||||
user: "molgenis-jenkins"
|
||||
token: xxxx
|
||||
# gogs contains access token for jenkins bot account on RuG GoGs
|
||||
gogs:
|
||||
user: p281392
|
||||
token: xxxx
|
||||
# registry contains credentials for registry.molgenis.org
|
||||
registry:
|
||||
user: admin
|
||||
password: xxxx
|
||||
# dockerHubPassword contains password for hub.docker.com
|
||||
dockerHub:
|
||||
user: molgenisci
|
||||
password: xxxx
|
Reference in New Issue
Block a user