blob: 754a01c286fcc4c257fd134d7e9cc9a5972ff745 [file] [log] [blame]
Giorgi Lekveishvili35982662024-04-05 13:05:40 +04001# Default values for jenkins.
2# This is a YAML-formatted file.
3# Declare name/value pairs to be passed into your templates.
4# name: value
5
6## Overrides for generated resource names
7# See templates/_helpers.tpl
8# -- Override the resource name prefix
9# @default -- `Chart.Name`
10nameOverride:
11# -- Override the full resource names
12# @default -- `jenkins-(release-name)` or `jenkins` if the release-name is `jenkins`
13fullnameOverride:
14# -- Override the deployment namespace
15# @default -- `Release.Namespace`
16namespaceOverride:
17
18# For FQDN resolving of the controller service. Change this value to match your existing configuration.
19# ref: https://github.com/kubernetes/dns/blob/master/docs/specification.md
20# -- Override the cluster name for FQDN resolving
21clusterZone: "cluster.local"
22
23# -- The URL of the Kubernetes API server
24kubernetesURL: "https://kubernetes.default"
25
26# -- The Jenkins credentials to access the Kubernetes API server. For the default cluster it is not needed.
27credentialsId:
28
29# -- Enables rendering of the helm.sh/chart label to the annotations
30renderHelmLabels: true
31
32controller:
33 # -- Used for label app.kubernetes.io/component
34 componentName: "jenkins-controller"
35 image:
36 # -- Controller image registry
37 registry: "docker.io"
38 # -- Controller image repository
39 repository: "jenkins/jenkins"
40
41 # -- Controller image tag override; i.e., tag: "2.440.1-jdk17"
42 tag:
43
44 # -- Controller image tag label
45 tagLabel: jdk17
46 # -- Controller image pull policy
47 pullPolicy: "Always"
48 # -- Controller image pull secret
49 imagePullSecretName:
50 # -- Lifecycle specification for controller-container
51 lifecycle: {}
52 # postStart:
53 # exec:
54 # command:
55 # - "uname"
56 # - "-a"
57
58 # -- Disable use of remember me
59 disableRememberMe: false
60
61 # -- Set Number of executors
62 numExecutors: 0
63
64 # -- Sets the executor mode of the Jenkins node. Possible values are "NORMAL" or "EXCLUSIVE"
65 executorMode: "NORMAL"
66
67 # -- Append Jenkins labels to the controller
68 customJenkinsLabels: []
69
70 hostNetworking: false
71
72 # When enabling LDAP or another non-Jenkins identity source, the built-in admin account will no longer exist.
73 # If you disable the non-Jenkins identity store and instead use the Jenkins internal one,
74 # you should revert controller.admin.username to your preferred admin user:
75 admin:
76
77 # -- Admin username created as a secret if `controller.admin.createSecret` is true
78 username: "admin"
79 # -- Admin password created as a secret if `controller.admin.createSecret` is true
80 # @default -- <random password>
81 password:
82
83 # -- The key in the existing admin secret containing the username
84 userKey: jenkins-admin-user
85 # -- The key in the existing admin secret containing the password
86 passwordKey: jenkins-admin-password
87
88 # The default configuration uses this secret to configure an admin user
89 # If you don't need that user or use a different security realm, then you can disable it
90 # -- Create secret for admin user
91 createSecret: true
92
93 # -- The name of an existing secret containing the admin credentials
94 existingSecret: ""
95 # -- Email address for the administrator of the Jenkins instance
96 jenkinsAdminEmail:
97
98 # This value should not be changed unless you use your custom image of jenkins or any derived from.
99 # If you want to use Cloudbees Jenkins Distribution docker, you should set jenkinsHome: "/var/cloudbees-jenkins-distribution"
100 # -- Custom Jenkins home path
101 jenkinsHome: "/var/jenkins_home"
102
103 # This value should not be changed unless you use your custom image of jenkins or any derived from.
104 # If you want to use Cloudbees Jenkins Distribution docker, you should set jenkinsRef: "/usr/share/cloudbees-jenkins-distribution/ref"
105 # -- Custom Jenkins reference path
106 jenkinsRef: "/usr/share/jenkins/ref"
107
108 # Path to the jenkins war file which is used by jenkins-plugin-cli.
109 jenkinsWar: "/usr/share/jenkins/jenkins.war"
110 # Override the default arguments passed to the war
111 # overrideArgs:
112 # - --httpPort=8080
113
114 # -- Resource allocation (Requests and Limits)
115 resources:
116 requests:
117 cpu: "50m"
118 memory: "256Mi"
119 limits:
120 cpu: "2000m"
121 memory: "4096Mi"
122
123 # Share process namespace to allow sidecar containers to interact with processes in other containers in the same pod
124 shareProcessNamespace: false
125
126 # Overrides the init container default values
127 # -- Resources allocation (Requests and Limits) for Init Container
128 initContainerResources: {}
129 # initContainerResources:
130 # requests:
131 # cpu: "50m"
132 # memory: "256Mi"
133 # limits:
134 # cpu: "2000m"
135 # memory: "4096Mi"
136 # -- Environment variable sources for Init Container
137 initContainerEnvFrom: []
138
139 # useful for i.e., http_proxy
140 # -- Environment variables for Init Container
141 initContainerEnv: []
142 # initContainerEnv:
143 # - name: http_proxy
144 # value: "http://192.168.64.1:3128"
145
146 # -- Environment variable sources for Jenkins Container
147 containerEnvFrom: []
148
149 # -- Environment variables for Jenkins Container
150 containerEnv: []
151 # - name: http_proxy
152 # value: "http://192.168.64.1:3128"
153
154 # Set min/max heap here if needed with "-Xms512m -Xmx512m"
155 # -- Append to `JAVA_OPTS` env var
156 javaOpts:
157 # -- Append to `JENKINS_OPTS` env var
158 jenkinsOpts:
159
160 # If you are using the ingress definitions provided by this chart via the `controller.ingress` block,
161 # the configured hostname will be the ingress hostname starting with `https://`
162 # or `http://` depending on the `tls` configuration.
163 # The Protocol can be overwritten by specifying `controller.jenkinsUrlProtocol`.
164 # -- Set protocol for Jenkins URL; `https` if `controller.ingress.tls`, `http` otherwise
165 jenkinsUrlProtocol:
166
167 # -- Set Jenkins URL if you are not using the ingress definitions provided by the chart
168 jenkinsUrl:
169
170 # If you set this prefix and use ingress controller, then you might want to set the ingress path below
171 # I.e., "/jenkins"
172 # -- Root URI Jenkins will be served on
173 jenkinsUriPrefix:
174
175 # -- Enable pod security context (must be `true` if podSecurityContextOverride, runAsUser or fsGroup are set)
176 usePodSecurityContext: true
177
178 # Note that `runAsUser`, `fsGroup`, and `securityContextCapabilities` are
179 # being deprecated and replaced by `podSecurityContextOverride`.
180 # Set runAsUser to 1000 to let Jenkins run as non-root user 'jenkins', which exists in 'jenkins/jenkins' docker image.
181 # When configuring runAsUser to a different value than 0 also set fsGroup to the same value:
182 # -- Deprecated in favor of `controller.podSecurityContextOverride`. uid that jenkins runs with.
183 runAsUser: 1000
184
185 # -- Deprecated in favor of `controller.podSecurityContextOverride`. uid that will be used for persistent volume.
186 fsGroup: 1000
187
188 # If you have PodSecurityPolicies that require dropping of capabilities as suggested by CIS K8s benchmark, put them here
189 # securityContextCapabilities:
190 # drop:
191 # - NET_RAW
192 securityContextCapabilities: {}
193
194 # In the case of mounting an ext4 filesystem, it might be desirable to use `supplementalGroups` instead of `fsGroup` in
195 # the `securityContext` block: https://github.com/kubernetes/kubernetes/issues/67014#issuecomment-589915496
196 # podSecurityContextOverride:
197 # runAsUser: 1000
198 # runAsNonRoot: true
199 # supplementalGroups: [1000]
200 # capabilities: {}
201 # -- Completely overwrites the contents of the pod security context, ignoring the values provided for `runAsUser`, `fsGroup`, and `securityContextCapabilities`
202 podSecurityContextOverride: ~
203
204 # -- Allow controlling the securityContext for the jenkins container
205 containerSecurityContext:
206 runAsUser: 1000
207 runAsGroup: 1000
208 readOnlyRootFilesystem: true
209 allowPrivilegeEscalation: false
210
211 # For minikube, set this to NodePort, elsewhere uses LoadBalancer
212 # Use ClusterIP if your setup includes ingress controller
213 # -- k8s service type
214 serviceType: ClusterIP
215
216 # -- k8s service clusterIP. Only used if serviceType is ClusterIP
217 clusterIp:
218 # -- k8s service port
219 servicePort: 8080
220 # -- k8s target port
221 targetPort: 8080
222 # -- k8s node port. Only used if serviceType is NodePort
223 nodePort:
224
225 # Use Local to preserve the client source IP and avoids a second hop for LoadBalancer and NodePort type services,
226 # but risks potentially imbalanced traffic spreading.
227 serviceExternalTrafficPolicy:
228
229 # -- Jenkins controller service annotations
230 serviceAnnotations: {}
231 # -- Jenkins controller custom labels for the StatefulSet
232 statefulSetLabels: {}
233 # foo: bar
234 # bar: foo
235 # -- Labels for the Jenkins controller-service
236 serviceLabels: {}
237 # service.beta.kubernetes.io/aws-load-balancer-backend-protocol: https
238
239 # Put labels on Jenkins controller pod
240 # -- Custom Pod labels (an object with `label-key: label-value` pairs)
241 podLabels: {}
242
243 # Enable Kubernetes Startup, Liveness and Readiness Probes
244 # if Startup Probe is supported, enable it too
245 # ~ 2 minutes to allow Jenkins to restart when upgrading plugins. Set ReadinessTimeout to be shorter than LivenessTimeout.
246 # ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
247 # -- Enable Kubernetes Probes configuration configured in `controller.probes`
248 healthProbes: true
249
250 probes:
251 startupProbe:
252 # -- Set the failure threshold for the startup probe
253 failureThreshold: 12
254 httpGet:
255 # -- Set the Pod's HTTP path for the startup probe
256 path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'
257 # -- Set the Pod's HTTP port to use for the startup probe
258 port: http
259 # -- Set the time interval between two startup probes executions in seconds
260 periodSeconds: 10
261 # -- Set the timeout for the startup probe in seconds
262 timeoutSeconds: 5
263
264 livenessProbe:
265 # -- Set the failure threshold for the liveness probe
266 failureThreshold: 5
267 httpGet:
268 # -- Set the Pod's HTTP path for the liveness probe
269 path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'
270 # -- Set the Pod's HTTP port to use for the liveness probe
271 port: http
272 # -- Set the time interval between two liveness probes executions in seconds
273 periodSeconds: 10
274 # -- Set the timeout for the liveness probe in seconds
275 timeoutSeconds: 5
276
277 # If Startup Probe is not supported on your Kubernetes cluster, you might want to use "initialDelaySeconds" instead.
278 # It delays the initial liveness probe while Jenkins is starting
279 # -- Set the initial delay for the liveness probe in seconds
280 initialDelaySeconds:
281
282 readinessProbe:
283 # -- Set the failure threshold for the readiness probe
284 failureThreshold: 3
285 httpGet:
286 # -- Set the Pod's HTTP path for the liveness probe
287 path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'
288 # -- Set the Pod's HTTP port to use for the readiness probe
289 port: http
290 # -- Set the time interval between two readiness probes executions in seconds
291 periodSeconds: 10
292 # -- Set the timeout for the readiness probe in seconds
293 timeoutSeconds: 5
294
295 # If Startup Probe is not supported on your Kubernetes cluster, you might want to use "initialDelaySeconds" instead.
296 # It delays the initial readiness probe while Jenkins is starting
297 # -- Set the initial delay for the readiness probe in seconds
298 initialDelaySeconds:
299
300 # PodDisruptionBudget config
301 podDisruptionBudget:
302 # ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
303
304 # -- Enable Kubernetes Pod Disruption Budget configuration
305 enabled: false
306
307 # For Kubernetes v1.5+, use 'policy/v1beta1'
308 # For Kubernetes v1.21+, use 'policy/v1'
309 # -- Policy API version
310 apiVersion: "policy/v1beta1"
311
312 annotations: {}
313 labels: {}
314 # -- Number of pods that can be unavailable. Either an absolute number or a percentage
315 maxUnavailable: "0"
316
317 # -- Create Agent listener service
318 agentListenerEnabled: true
319 # -- Listening port for agents
320 agentListenerPort: 50000
321 # -- Host port to listen for agents
322 agentListenerHostPort:
323 # -- Node port to listen for agents
324 agentListenerNodePort:
325
326 # ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-policies
327 # -- Traffic Policy of for the agentListener service
328 agentListenerExternalTrafficPolicy:
329 # -- Allowed inbound IP for the agentListener service
330 agentListenerLoadBalancerSourceRanges:
331 - 0.0.0.0/0
332 # -- Disabled agent protocols
333 disabledAgentProtocols:
334 - JNLP-connect
335 - JNLP2-connect
336 csrf:
337 defaultCrumbIssuer:
338 # -- Enable the default CSRF Crumb issuer
339 enabled: true
340 # -- Enable proxy compatibility
341 proxyCompatability: true
342
343 # Kubernetes service type for the JNLP agent service
344 # agentListenerServiceType is the Kubernetes Service type for the JNLP agent service,
345 # either 'LoadBalancer', 'NodePort', or 'ClusterIP'
346 # Note if you set this to 'LoadBalancer', you *must* define annotations to secure it. By default,
347 # this will be an external load balancer and allowing inbound 0.0.0.0/0, a HUGE
348 # security risk: https://github.com/kubernetes/charts/issues/1341
349 # -- Defines how to expose the agentListener service
350 agentListenerServiceType: "ClusterIP"
351
352 # -- Annotations for the agentListener service
353 agentListenerServiceAnnotations: {}
354
355 # Optionally, assign an IP to the LoadBalancer agentListenerService LoadBalancer
356 # GKE users: only regional static IPs will work for Service Load balancer.
357 # -- Static IP for the agentListener LoadBalancer
358 agentListenerLoadBalancerIP:
359
360 # -- Whether legacy remoting security should be enabled
361 legacyRemotingSecurityEnabled: false
362
363 # Example of a 'LoadBalancer'-type agent listener with annotations securing it
364 # agentListenerServiceType: LoadBalancer
365 # agentListenerServiceAnnotations:
366 # service.beta.kubernetes.io/aws-load-balancer-internal: "True"
367 # service.beta.kubernetes.io/load-balancer-source-ranges: "172.0.0.0/8, 10.0.0.0/8"
368
369 # LoadBalancerSourcesRange is a list of allowed CIDR values, which are combined with ServicePort to
370 # set allowed inbound rules on the security group assigned to the controller load balancer
371 # -- Allowed inbound IP addresses
372 loadBalancerSourceRanges:
373 - 0.0.0.0/0
374
375 # -- Optionally assign a known public LB IP
376 loadBalancerIP:
377
378 # Optionally configure a JMX port. This requires additional javaOpts, for example,
379 # javaOpts: >
380 # -Dcom.sun.management.jmxremote.port=4000
381 # -Dcom.sun.management.jmxremote.authenticate=false
382 # -Dcom.sun.management.jmxremote.ssl=false
383 # jmxPort: 4000
384 # -- Open a port, for JMX stats
385 jmxPort:
386
387 # -- Optionally configure other ports to expose in the controller container
388 extraPorts: []
389 # - name: BuildInfoProxy
390 # port: 9000
391 # targetPort: 9010 (Optional: Use to explicitly set targetPort if different from port)
392
393 # Plugins will be installed during Jenkins controller start
394 # -- List of Jenkins plugins to install. If you don't want to install plugins, set it to `false`
395 installPlugins:
396 - kubernetes:4203.v1dd44f5b_1cf9
397 - workflow-aggregator:596.v8c21c963d92d
398 - git:5.2.1
gio4b50c8f2024-07-09 15:54:41 +0400399 - configuration-as-code:1810.v9b_c30a_249a_4c
Giorgi Lekveishvili35982662024-04-05 13:05:40 +0400400
401 # If set to false, Jenkins will download the minimum required version of all dependencies.
402 # -- Download the minimum required version or latest version of all dependencies
403 installLatestPlugins: true
404
405 # -- Set to true to download the latest version of any plugin that is requested to have the latest version
406 installLatestSpecifiedPlugins: false
407
408 # -- List of plugins to install in addition to those listed in controller.installPlugins
409 additionalPlugins: []
410
411 # Without this; whenever the controller gets restarted (Evicted, etc.) it will fetch plugin updates that have the potential to cause breakage.
412 # Note that for this to work, `persistence.enabled` needs to be set to `true`
413 # -- Initialize only on first installation. Ensures plugins do not get updated inadvertently. Requires `persistence.enabled` to be set to `true`
414 initializeOnce: false
415
416 # Enable to always override the installed plugins with the values of 'controller.installPlugins' on upgrade or redeployment.
417 # -- Overwrite installed plugins on start
418 overwritePlugins: false
419
420 # Configures if plugins bundled with `controller.image` should be overwritten with the values of 'controller.installPlugins' on upgrade or redeployment.
421 # -- Overwrite plugins that are already installed in the controller image
422 overwritePluginsFromImage: true
423
424 # Configures the restrictions for naming projects. Set this key to null or empty to skip it in the default config.
425 projectNamingStrategy: standard
426
427 # Useful with ghprb plugin. The OWASP plugin is not installed by default, please update controller.installPlugins.
428 # -- Enable HTML parsing using OWASP Markup Formatter Plugin (antisamy-markup-formatter)
429 enableRawHtmlMarkupFormatter: false
430
431 # This is ignored if enableRawHtmlMarkupFormatter is true
432 # -- Yaml of the markup formatter to use
433 markupFormatter: plainText
434
435 # Used to approve a list of groovy functions in pipelines used the script-security plugin. Can be viewed under /scriptApproval
436 # -- List of groovy functions to approve
437 scriptApproval: []
438 # - "method groovy.json.JsonSlurperClassic parseText java.lang.String"
439 # - "new groovy.json.JsonSlurperClassic"
440
441 # -- Map of groovy init scripts to be executed during Jenkins controller start
442 initScripts: {}
443 # test: |-
444 # print 'adding global pipeline libraries, register properties, bootstrap jobs...'
445 # -- Name of the existing ConfigMap that contains init scripts
446 initConfigMap:
447
448 # 'name' is a name of an existing secret in the same namespace as jenkins,
449 # 'keyName' is the name of one of the keys inside the current secret.
450 # the 'name' and 'keyName' are concatenated with a '-' in between, so for example:
451 # an existing secret "secret-credentials" and a key inside it named "github-password" should be used in JCasC as ${secret-credentials-github-password}
452 # 'name' and 'keyName' must be lowercase RFC 1123 label must consist of lower case alphanumeric characters or '-',
453 # and must start and end with an alphanumeric character (e.g. 'my-name', or '123-abc')
454 # existingSecret existing secret "secret-credentials" and a key inside it named "github-username" should be used in JCasC as ${github-username}
455 # When using existingSecret no need to specify the keyName under additionalExistingSecrets.
456 existingSecret:
457
458 # -- List of additional existing secrets to mount
459 additionalExistingSecrets: []
460 # ref: https://github.com/jenkinsci/configuration-as-code-plugin/blob/master/docs/features/secrets.adoc#kubernetes-secrets
461 # additionalExistingSecrets:
462 # - name: secret-name-1
463 # keyName: username
464 # - name: secret-name-1
465 # keyName: password
466
467 # -- List of additional secrets to create and mount
468 additionalSecrets: []
469 # ref: https://github.com/jenkinsci/configuration-as-code-plugin/blob/master/docs/features/secrets.adoc#kubernetes-secrets
470 # additionalSecrets:
471 # - name: nameOfSecret
472 # value: secretText
473
474 # Generate SecretClaim resources to create Kubernetes secrets from HashiCorp Vault using kube-vault-controller.
475 # 'name' is the name of the secret that will be created in Kubernetes. The Jenkins fullname is prepended to this value.
476 # 'path' is the fully qualified path to the secret in Vault
477 # 'type' is an optional Kubernetes secret type. The default is 'Opaque'
478 # 'renew' is an optional secret renewal time in seconds
479 # -- List of `SecretClaim` resources to create
480 secretClaims: []
481 # - name: secretName # required
482 # path: testPath # required
483 # type: kubernetes.io/tls # optional
484 # renew: 60 # optional
485
486 # -- Name of default cloud configuration.
487 cloudName: "kubernetes"
488
489 # Below is the implementation of Jenkins Configuration as Code. Add a key under configScripts for each configuration area,
490 # where each corresponds to a plugin or section of the UI. Each key (prior to | character) is just a label, and can be any value.
491 # Keys are only used to give the section a meaningful name. The only restriction is they may only contain RFC 1123 \ DNS label
492 # characters: lowercase letters, numbers, and hyphens. The keys become the name of a configuration yaml file on the controller in
493 # /var/jenkins_home/casc_configs (by default) and will be processed by the Configuration as Code Plugin. The lines after each |
494 # become the content of the configuration yaml file. The first line after this is a JCasC root element, e.g., jenkins, credentials,
495 # etc. Best reference is https://<jenkins_url>/configuration-as-code/reference. The example below creates a welcome message:
496 JCasC:
497 # -- Enables default Jenkins configuration via configuration as code plugin
498 defaultConfig: true
499
500 # If true, the init container deletes all the plugin config files and Jenkins Config as Code overwrites any existing configuration
501 # -- Whether Jenkins Config as Code should overwrite any existing configuration
502 overwriteConfiguration: false
503 # -- Remote URLs for configuration files.
504 configUrls: []
505 # - https://acme.org/jenkins.yaml
506 # -- List of Jenkins Config as Code scripts
507 configScripts: {}
508 # welcome-message: |
509 # jenkins:
510 # systemMessage: Welcome to our CI\CD server. This Jenkins is configured and managed 'as code'.
511
512 # Allows adding to the top-level security JCasC section. For legacy purposes, by default, the chart includes apiToken configurations
513 # -- Jenkins Config as Code security-section
514 security:
515 apiToken:
516 creationOfLegacyTokenEnabled: false
517 tokenGenerationOnCreationEnabled: false
518 usageStatisticsEnabled: true
519
520 # Ignored if securityRealm is defined in controller.JCasC.configScripts
521 # -- Jenkins Config as Code Security Realm-section
522 securityRealm: |-
523 local:
524 allowsSignup: false
525 enableCaptcha: false
526 users:
527 - id: "${chart-admin-username}"
528 name: "Jenkins Admin"
529 password: "${chart-admin-password}"
530
531 # Ignored if authorizationStrategy is defined in controller.JCasC.configScripts
532 # -- Jenkins Config as Code Authorization Strategy-section
533 authorizationStrategy: |-
534 loggedInUsersCanDoAnything:
535 allowAnonymousRead: false
536 # -- Custom init-container specification in raw-yaml format
537 customInitContainers: []
538 # - name: custom-init
539 # image: "alpine:3"
540 # imagePullPolicy: Always
541 # command: [ "uname", "-a" ]
542
543 sidecars:
544 configAutoReload:
545 # If enabled: true, Jenkins Configuration as Code will be reloaded on-the-fly without a reboot.
546 # If false or not-specified, JCasC changes will cause a reboot and will only be applied at the subsequent start-up.
547 # Auto-reload uses the http://<jenkins_url>/reload-configuration-as-code endpoint to reapply config when changes to
548 # the configScripts are detected.
549 # -- Enables Jenkins Config as Code auto-reload
550 enabled: true
551 image:
552 # -- Registry for the image that triggers the reload
553 registry: docker.io
554 # -- Repository of the image that triggers the reload
555 repository: kiwigrid/k8s-sidecar
556 # -- Tag for the image that triggers the reload
557 tag: 1.26.1
558 imagePullPolicy: IfNotPresent
559 resources: {}
560 # limits:
561 # cpu: 100m
562 # memory: 100Mi
563 # requests:
564 # cpu: 50m
565 # memory: 50Mi
566
567 # -- The scheme to use when connecting to the Jenkins configuration as code endpoint
568 scheme: http
569 # -- Skip TLS verification when connecting to the Jenkins configuration as code endpoint
570 skipTlsVerify: false
571
572 # -- How many connection-related errors to retry on
573 reqRetryConnect: 10
574 # -- How many seconds to wait before updating config-maps/secrets (sets METHOD=SLEEP on the sidecar)
575 sleepTime:
576
577 # -- Environment variable sources for the Jenkins Config as Code auto-reload container
578 envFrom: []
579 # -- Environment variables for the Jenkins Config as Code auto-reload container
580 env: {}
581 # - name: REQ_TIMEOUT
582 # value: "30"
583
584 # SSH port value can be set to any unused TCP port. The default, 1044, is a non-standard SSH port that has been chosen at random.
585 # This is only used to reload JCasC config from the sidecar container running in the Jenkins controller pod.
586 # This TCP port will not be open in the pod (unless you specifically configure this), so Jenkins will not be
587 # accessible via SSH from outside the pod. Note if you use non-root pod privileges (runAsUser & fsGroup),
588 # this must be > 1024:
589 sshTcpPort: 1044
590 # folder in the pod that should hold the collected dashboards:
591 folder: "/var/jenkins_home/casc_configs"
592
593 # If specified, the sidecar will search for JCasC config-maps inside this namespace.
594 # Otherwise, the namespace in which the sidecar is running will be used.
595 # It's also possible to specify ALL to search in all namespaces:
596 # searchNamespace:
597 # -- Enable container security context
598 containerSecurityContext:
599 readOnlyRootFilesystem: true
600 allowPrivilegeEscalation: false
601
602 # -- Configures additional sidecar container(s) for the Jenkins controller
603 additionalSidecarContainers: []
604 ## The example below runs the client for https://smee.io as sidecar container next to Jenkins,
605 ## that allows triggering build behind a secure firewall.
606 ## https://jenkins.io/blog/2019/01/07/webhook-firewalls/#triggering-builds-with-webhooks-behind-a-secure-firewall
607 ##
608 ## Note: To use it you should go to https://smee.io/new and update the url to the generated one.
609 # - name: smee
610 # image: docker.io/twalter/smee-client:1.0.2
611 # args: ["--port", "{{ .Values.controller.servicePort }}", "--path", "/github-webhook/", "--url", "https://smee.io/new"]
612 # resources:
613 # limits:
614 # cpu: 50m
615 # memory: 128Mi
616 # requests:
617 # cpu: 10m
618 # memory: 32Mi
619
620 # -- Name of the Kubernetes scheduler to use
621 schedulerName: ""
622
623 # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
624 # -- Node labels for pod assignment
625 nodeSelector: {}
626
627 # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature
628 # -- Toleration labels for pod assignment
629 tolerations: []
630 # -- Set TerminationGracePeriodSeconds
631 terminationGracePeriodSeconds:
632 # -- Set the termination message path
633 terminationMessagePath:
634 # -- Set the termination message policy
635 terminationMessagePolicy:
636
637 # -- Affinity settings
638 affinity: {}
639
640 # Leverage a priorityClass to ensure your pods survive resource shortages
641 # ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
642 # -- The name of a `priorityClass` to apply to the controller pod
643 priorityClassName:
644
645 # -- Annotations for controller pod
646 podAnnotations: {}
647 # -- Annotations for controller StatefulSet
648 statefulSetAnnotations: {}
649
650 # ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
651 # -- Update strategy for StatefulSet
652 updateStrategy: {}
653
654 ingress:
655 # -- Enables ingress
656 enabled: false
657
658 # Override for the default paths that map requests to the backend
659 # -- Override for the default Ingress paths
660 paths: []
661 # - backend:
662 # serviceName: ssl-redirect
663 # servicePort: use-annotation
664 # - backend:
665 # serviceName: >-
666 # {{ template "jenkins.fullname" . }}
667 # # Don't use string here, use only integer value!
668 # servicePort: 8080
669
670 # For Kubernetes v1.14+, use 'networking.k8s.io/v1beta1'
671 # For Kubernetes v1.19+, use 'networking.k8s.io/v1'
672 # -- Ingress API version
673 apiVersion: "extensions/v1beta1"
674 # -- Ingress labels
675 labels: {}
676 # -- Ingress annotations
677 annotations: {}
678 # kubernetes.io/ingress.class: nginx
679 # kubernetes.io/tls-acme: "true"
680 # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
681 # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
682 # ingressClassName: nginx
683
684 # Set this path to jenkinsUriPrefix above or use annotations to rewrite path
685 # -- Ingress path
686 path:
687
688 # configures the hostname e.g. jenkins.example.com
689 # -- Ingress hostname
690 hostName:
691 # -- Hostname to serve assets from
692 resourceRootUrl:
693 # -- Ingress TLS configuration
694 tls: []
695 # - secretName: jenkins.cluster.local
696 # hosts:
697 # - jenkins.cluster.local
698
699 # often you want to have your controller all locked down and private,
700 # but you still want to get webhooks from your SCM
701 # A secondary ingress will let you expose different urls
702 # with a different configuration
703 secondaryingress:
704 enabled: false
705 # paths you want forwarded to the backend
706 # ex /github-webhook
707 paths: []
708 # For Kubernetes v1.14+, use 'networking.k8s.io/v1beta1'
709 # For Kubernetes v1.19+, use 'networking.k8s.io/v1'
710 apiVersion: "extensions/v1beta1"
711 labels: {}
712 annotations: {}
713 # kubernetes.io/ingress.class: nginx
714 # kubernetes.io/tls-acme: "true"
715 # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
716 # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
717 # ingressClassName: nginx
718 # configures the hostname e.g., jenkins-external.example.com
719 hostName:
720 tls:
721 # - secretName: jenkins-external.example.com
722 # hosts:
723 # - jenkins-external.example.com
724
725 # If you're running on GKE and need to configure a backendconfig
726 # to finish ingress setup, use the following values.
727 # Docs: https://cloud.google.com/kubernetes-engine/docs/concepts/backendconfig
728 backendconfig:
729 # -- Enables backendconfig
730 enabled: false
731 # -- backendconfig API version
732 apiVersion: "extensions/v1beta1"
733 # -- backendconfig name
734 name:
735 # -- backendconfig labels
736 labels: {}
737 # -- backendconfig annotations
738 annotations: {}
739 # -- backendconfig spec
740 spec: {}
741
742 # Openshift route
743 route:
744 # -- Enables openshift route
745 enabled: false
746 # -- Route labels
747 labels: {}
748 # -- Route annotations
749 annotations: {}
750 # -- Route path
751 path:
752
753 # -- Allows for adding entries to Pod /etc/hosts
754 hostAliases: []
755 # ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
756 # hostAliases:
757 # - ip: 192.168.50.50
758 # hostnames:
759 # - something.local
760 # - ip: 10.0.50.50
761 # hostnames:
762 # - other.local
763
764 # Expose Prometheus metrics
765 prometheus:
766 # If enabled, add the prometheus plugin to the list of plugins to install
767 # https://plugins.jenkins.io/prometheus
768
769 # -- Enables prometheus service monitor
770 enabled: false
771 # -- Additional labels to add to the service monitor object
772 serviceMonitorAdditionalLabels: {}
773 # -- Set a custom namespace where to deploy ServiceMonitor resource
774 serviceMonitorNamespace:
775 # -- How often prometheus should scrape metrics
776 scrapeInterval: 60s
777
778 # Defaults to the default endpoint used by the prometheus plugin
779 # -- The endpoint prometheus should get metrics from
780 scrapeEndpoint: /prometheus
781
782 # See here: https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
783 # The `groups` root object is added by default, add the rule entries
784 # -- Array of prometheus alerting rules
785 alertingrules: []
786 # -- Additional labels to add to the PrometheusRule object
787 alertingRulesAdditionalLabels: {}
788 # -- Set a custom namespace where to deploy PrometheusRule resource
789 prometheusRuleNamespace: ""
790
791 # RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds
792 # relabelings for a few standard Kubernetes fields. The original scrape job’s name
793 # is available via the __tmp_prometheus_job_name label.
794 # More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
795 relabelings: []
796 # MetricRelabelConfigs to apply to samples before ingestion.
797 metricRelabelings: []
798
799 googlePodMonitor:
800 # If enabled, It creates Google Managed Prometheus scraping config
801 enabled: false
802 # Set a custom namespace where to deploy PodMonitoring resource
803 # serviceMonitorNamespace: ""
804 scrapeInterval: 60s
805 # This is the default endpoint used by the prometheus plugin
806 scrapeEndpoint: /prometheus
807
808 # -- Can be used to disable rendering controller test resources when using helm template
809 testEnabled: true
810
811 httpsKeyStore:
812 # -- Enables HTTPS keystore on jenkins controller
813 enable: false
814 # -- Name of the secret that already has ssl keystore
815 jenkinsHttpsJksSecretName: ""
816 # -- Name of the key in the secret that already has ssl keystore
817 jenkinsHttpsJksSecretKey: "jenkins-jks-file"
818 # -- Name of the secret that contains the JKS password, if it is not in the same secret as the JKS file
819 jenkinsHttpsJksPasswordSecretName: ""
820 # -- Name of the key in the secret that contains the JKS password
821 jenkinsHttpsJksPasswordSecretKey: "https-jks-password"
822 disableSecretMount: false
823
824 # When HTTPS keystore is enabled, servicePort and targetPort will be used as HTTPS port
825 # -- HTTP Port that Jenkins should listen to along with HTTPS, it also serves as the liveness and readiness probes port.
826 httpPort: 8081
827 # -- Path of HTTPS keystore file
828 path: "/var/jenkins_keystore"
829 # -- Jenkins keystore filename which will appear under controller.httpsKeyStore.path
830 fileName: "keystore.jks"
831 # -- Jenkins keystore password
832 password: "password"
833
834 # -- Base64 encoded Keystore content. Keystore must be converted to base64 then being pasted here
835 jenkinsKeyStoreBase64Encoded:
836 # Convert keystore.jks files content to base64 > $ cat keystore.jks | base64
837# /u3+7QAAAAIAAAABAAAAAQANamVua2luc2NpLmNvbQAAAW2r/b1ZAAAFATCCBP0wDgYKKwYBBAEq
838# AhEBAQUABIIE6QbCqasvoHS0pSwYqSvdydMCB9t+VNfwhFIiiuAelJfO5sSe2SebJbtwHgLcRz1Z
839# gMtWgOSFdl3bWSzA7vrW2LED52h+jXLYSWvZzuDuh8hYO85m10ikF6QR+dTi4jra0whIFDvq3pxe
840# TnESxEsN+DvbZM3jA3qsjQJSeISNpDjO099dqQvHpnCn18lyk7J4TWJ8sOQQb1EM2zDAfAOSqA/x
841# QuPEFl74DlY+5DIk6EBvpmWhaMSvXzWZACGA0sYqa157dq7O0AqmuLG/EI5EkHETO4CrtBW+yLcy
842# 2dUCXOMA+j+NjM1BjrQkYE5vtSfNO6lFZcISyKo5pTFlcA7ut0Fx2nZ8GhHTn32CpeWwNcZBn1gR
843# pZVt6DxVVkhTAkMLhR4rL2wGIi/1WRs23ZOLGKtyDNvDHnQyDiQEoJGy9nAthA8aNHa3cfdF10vB
844# Drb19vtpFHmpvKEEhpk2EBRF4fTi644Fuhu2Ied6118AlaPvEea+n6G4vBz+8RWuVCmZjLU+7h8l
845# Hy3/WdUPoIL5eW7Kz+hS+sRTFzfu9C48dMkQH3a6f3wSY+mufizNF9U298r98TnYy+PfDJK0bstG
846# Ph6yPWx8DGXKQBwrhWJWXI6JwZDeC5Ny+l8p1SypTmAjpIaSW3ge+KgcL6Wtt1R5hUV1ajVwVSUi
847# HF/FachKqPqyLJFZTGjNrxnmNYpt8P1d5JTvJfmfr55Su/P9n7kcyWp7zMcb2Q5nlXt4tWogOHLI
848# OzEWKCacbFfVHE+PpdrcvCVZMDzFogIq5EqGTOZe2poPpBVE+1y9mf5+TXBegy5HToLWvmfmJNTO
849# NCDuBjgLs2tdw2yMPm4YEr57PnMX5gGTC3f2ZihXCIJDCRCdQ9sVBOjIQbOCzxFXkVITo0BAZhCi
850# Yz61wt3Ud8e//zhXWCkCsSV+IZCxxPzhEFd+RFVjW0Nm9hsb2FgAhkXCjsGROgoleYgaZJWvQaAg
851# UyBzMmKDPKTllBHyE3Gy1ehBNGPgEBChf17/9M+j8pcm1OmlM434ctWQ4qW7RU56//yq1soFY0Te
852# fu2ei03a6m68fYuW6s7XEEK58QisJWRAvEbpwu/eyqfs7PsQ+zSgJHyk2rO95IxdMtEESb2GRuoi
853# Bs+AHNdYFTAi+GBWw9dvEgqQ0Mpv0//6bBE/Fb4d7b7f56uUNnnE7mFnjGmGQN+MvC62pfwfvJTT
854# EkT1iZ9kjM9FprTFWXT4UmO3XTvesGeE50sV9YPm71X4DCQwc4KE8vyuwj0s6oMNAUACW2ClU9QQ
855# y0tRpaF1tzs4N42Q5zl0TzWxbCCjAtC3u6xf+c8MCGrr7DzNhm42LOQiHTa4MwX4x96q7235oiAU
856# iQqSI/hyF5yLpWw4etyUvsx2/0/0wkuTU1FozbLoCWJEWcPS7QadMrRRISxHf0YobIeQyz34regl
857# t1qSQ3dCU9D6AHLgX6kqllx4X0fnFq7LtfN7fA2itW26v+kAT2QFZ3qZhINGfofCja/pITC1uNAZ
858# gsJaTMcQ600krj/ynoxnjT+n1gmeqThac6/Mi3YlVeRtaxI2InL82ZuD+w/dfY9OpPssQjy3xiQa
859# jPuaMWXRxz/sS9syOoGVH7XBwKrWpQcpchozWJt40QV5DslJkclcr8aC2AGlzuJMTdEgz1eqV0+H
860# bAXG9HRHN/0eJTn1/QAAAAEABVguNTA5AAADjzCCA4swggJzAhRGqVxH4HTLYPGO4rzHcCPeGDKn
861# xTANBgkqhkiG9w0BAQsFADCBgTELMAkGA1UEBhMCY2ExEDAOBgNVBAgMB29udGFyaW8xEDAOBgNV
862# BAcMB3Rvcm9udG8xFDASBgNVBAoMC2plbmtpbnN0ZXN0MRkwFwYDVQQDDBBqZW5raW5zdGVzdC5p
863# bmZvMR0wGwYJKoZIhvcNAQkBFg50ZXN0QHRlc3QuaW5mbzAeFw0xOTEwMDgxNTI5NTVaFw0xOTEx
864# MDcxNTI5NTVaMIGBMQswCQYDVQQGEwJjYTEQMA4GA1UECAwHb250YXJpbzEQMA4GA1UEBwwHdG9y
865# b250bzEUMBIGA1UECgwLamVua2luc3Rlc3QxGTAXBgNVBAMMEGplbmtpbnN0ZXN0LmluZm8xHTAb
866# BgkqhkiG9w0BCQEWDnRlc3RAdGVzdC5pbmZvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
867# AQEA02q352JTHGvROMBhSHvSv+vnoOTDKSTz2aLQn0tYrIRqRo+8bfmMjXuhkwZPSnCpvUGNAJ+w
868# Jrt/dqMoYUjCBkjylD/qHmnXN5EwS1cMg1Djh65gi5JJLFJ7eNcoSsr/0AJ+TweIal1jJSP3t3PF
869# 9Uv21gm6xdm7HnNK66WpUUXLDTKaIs/jtagVY1bLOo9oEVeLN4nT2CYWztpMvdCyEDUzgEdDbmrP
870# F5nKUPK5hrFqo1Dc5rUI4ZshL3Lpv398aMxv6n2adQvuL++URMEbXXBhxOrT6rCtYzbcR5fkwS9i
871# d3Br45CoWOQro02JAepoU0MQKY5+xQ4Bq9Q7tB9BAwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAe
872# 4xc+mSvKkrKBHg9/zpkWgZUiOp4ENJCi8H4tea/PCM439v6y/kfjT/okOokFvX8N5aa1OSz2Vsrl
873# m8kjIc6hiA7bKzT6lb0EyjUShFFZ5jmGVP4S7/hviDvgB5yEQxOPpumkdRP513YnEGj/o9Pazi5h
874# /MwpRxxazoda9r45kqQpyG+XoM4pB+Fd3JzMc4FUGxfVPxJU4jLawnJJiZ3vqiSyaB0YyUL+Er1Q
875# 6NnqtR4gEBF0ZVlQmkycFvD4EC2boP943dLqNUvop+4R3SM1QMM6P5u8iTXtHd/VN4MwMyy1wtog
876# hYAzODo1Jt59pcqqKJEas0C/lFJEB3frw4ImNx5fNlJYOpx+ijfQs9m39CevDq0=
877
878agent:
879 # -- Enable Kubernetes plugin jnlp-agent podTemplate
880 enabled: true
881 # -- The name of the pod template to use for providing default values
882 defaultsProviderTemplate: ""
883
884 # For connecting to the Jenkins controller
885 # -- Overrides the Kubernetes Jenkins URL
886 jenkinsUrl:
887
888 # connects to the specified host and port, instead of connecting directly to the Jenkins controller
889 # -- Overrides the Kubernetes Jenkins tunnel
890 jenkinsTunnel:
891 # -- The connection timeout in seconds for connections to Kubernetes API. The minimum value is 5
892 kubernetesConnectTimeout: 5
893 # -- The read timeout in seconds for connections to Kubernetes API. The minimum value is 15
894 kubernetesReadTimeout: 15
895 # -- The maximum concurrent connections to Kubernetes API
896 maxRequestsPerHostStr: "32"
897 # -- Time in minutes after which the Kubernetes cloud plugin will clean up an idle worker that has not already terminated
898 retentionTimeout: 5
899 # -- Seconds to wait for pod to be running
900 waitForPodSec: 600
901 # -- Namespace in which the Kubernetes agents should be launched
902 namespace:
903 # -- Custom Pod labels (an object with `label-key: label-value` pairs)
904 podLabels: {}
905 # -- Custom registry used to pull the agent jnlp image from
906 jnlpregistry:
907 image:
908 # -- Repository to pull the agent jnlp image from
909 repository: "jenkins/inbound-agent"
910 # -- Tag of the image to pull
911 tag: "3206.vb_15dcf73f6a_9-3"
912 # -- Configure working directory for default agent
913 workingDir: "/home/jenkins/agent"
914 nodeUsageMode: "NORMAL"
915 # -- Append Jenkins labels to the agent
916 customJenkinsLabels: []
917 # -- Name of the secret to be used to pull the image
918 imagePullSecretName:
919 componentName: "jenkins-agent"
920 # -- Enables agent communication via websockets
921 websocket: false
922 directConnection: false
923 # -- Agent privileged container
924 privileged: false
925 # -- Configure container user
926 runAsUser:
927 # -- Configure container group
928 runAsGroup:
929 # -- Enables the agent to use the host network
930 hostNetworking: false
931 # -- Resources allocation (Requests and Limits)
932 resources:
933 requests:
934 cpu: "512m"
935 memory: "512Mi"
936 # ephemeralStorage:
937 limits:
938 cpu: "512m"
939 memory: "512Mi"
940 # ephemeralStorage:
941 livenessProbe: {}
942# execArgs: "cat /tmp/healthy"
943# failureThreshold: 3
944# initialDelaySeconds: 0
945# periodSeconds: 10
946# successThreshold: 1
947# timeoutSeconds: 1
948
949 # You may want to change this to true while testing a new image
950 # -- Always pull agent container image before build
951 alwaysPullImage: false
952 # When using Pod Security Admission in the Agents namespace with the restricted Pod Security Standard,
953 # the jnlp container cannot be scheduled without overriding its container definition with a securityContext.
954 # This option allows to automatically inject in the jnlp container a securityContext
955 # that is suitable for the use of the restricted Pod Security Standard.
956 # -- Set a restricted securityContext on jnlp containers
957 restrictedPssSecurityContext: false
958 # Controls how agent pods are retained after the Jenkins build completes
959 # Possible values: Always, Never, OnFailure
960 podRetention: "Never"
961 # Disable if you do not want the Yaml the agent pod template to show up
962 # in the job Console Output. This can be helpful for either security reasons
963 # or simply to clean up the output to make it easier to read.
964 showRawYaml: true
965
966 # You can define the volumes that you want to mount for this container
967 # Allowed types are: ConfigMap, EmptyDir, EphemeralVolume, HostPath, Nfs, PVC, Secret
968 # Configure the attributes as they appear in the corresponding Java class for that type
969 # https://github.com/jenkinsci/kubernetes-plugin/tree/master/src/main/java/org/csanchez/jenkins/plugins/kubernetes/volumes
970 # -- Additional volumes
971 volumes: []
972 # - type: ConfigMap
973 # configMapName: myconfigmap
974 # mountPath: /var/myapp/myconfigmap
975 # - type: EmptyDir
976 # mountPath: /var/myapp/myemptydir
977 # memory: false
978 # - type: EphemeralVolume
979 # mountPath: /var/myapp/myephemeralvolume
980 # accessModes: ReadWriteOnce
981 # requestsSize: 10Gi
982 # storageClassName: mystorageclass
983 # - type: HostPath
984 # hostPath: /var/lib/containers
985 # mountPath: /var/myapp/myhostpath
986 # - type: Nfs
987 # mountPath: /var/myapp/mynfs
988 # readOnly: false
989 # serverAddress: "192.0.2.0"
990 # serverPath: /var/lib/containers
991 # - type: PVC
992 # claimName: mypvc
993 # mountPath: /var/myapp/mypvc
994 # readOnly: false
995 # - type: Secret
996 # defaultMode: "600"
997 # mountPath: /var/myapp/mysecret
998 # secretName: mysecret
999 # Pod-wide environment, these vars are visible to any container in the agent pod
1000
1001 # You can define the workspaceVolume that you want to mount for this container
1002 # Allowed types are: DynamicPVC, EmptyDir, EphemeralVolume, HostPath, Nfs, PVC
1003 # Configure the attributes as they appear in the corresponding Java class for that type
1004 # https://github.com/jenkinsci/kubernetes-plugin/tree/master/src/main/java/org/csanchez/jenkins/plugins/kubernetes/volumes/workspace
1005 # -- Workspace volume (defaults to EmptyDir)
1006 workspaceVolume: {}
1007 ## DynamicPVC example
1008 # - type: DynamicPVC
1009 # configMapName: myconfigmap
1010 ## EmptyDir example
1011 # - type: EmptyDir
1012 # memory: false
1013 ## EphemeralVolume example
1014 # - type: EphemeralVolume
1015 # accessModes: ReadWriteOnce
1016 # requestsSize: 10Gi
1017 # storageClassName: mystorageclass
1018 ## HostPath example
1019 # - type: HostPath
1020 # hostPath: /var/lib/containers
1021 ## NFS example
1022 # - type: Nfs
1023 # readOnly: false
1024 # serverAddress: "192.0.2.0"
1025 # serverPath: /var/lib/containers
1026 ## PVC example
1027 # - type: PVC
1028 # claimName: mypvc
1029 # readOnly: false
1030
1031 # Pod-wide environment, these vars are visible to any container in the agent pod
1032 # -- Environment variables for the agent Pod
1033 envVars: []
1034 # - name: PATH
1035 # value: /usr/local/bin
1036 # -- Mount a secret as environment variable
1037 secretEnvVars: []
1038 # - key: PATH
1039 # optional: false # default: false
1040 # secretKey: MY-K8S-PATH
1041 # secretName: my-k8s-secret
1042
1043 # -- Node labels for pod assignment
1044 nodeSelector: {}
1045 # Key Value selectors. Ex:
1046 # nodeSelector
1047 # jenkins-agent: v1
1048
1049 # -- Command to execute when side container starts
1050 command:
1051 # -- Arguments passed to command to execute
1052 args: "${computer.jnlpmac} ${computer.name}"
1053 # -- Side container name
1054 sideContainerName: "jnlp"
1055
1056 # Doesn't allocate pseudo TTY by default
1057 # -- Allocate pseudo tty to the side container
1058 TTYEnabled: false
1059 # -- Max number of agents to launch
1060 containerCap: 10
1061 # -- Agent Pod base name
1062 podName: "default"
1063
1064 # -- Allows the Pod to remain active for reuse until the configured number of minutes has passed since the last step was executed on it
1065 idleMinutes: 0
1066
1067
1068 # The raw yaml of a Pod API Object, for example, this allows usage of toleration for agent pods.
1069 # https://github.com/jenkinsci/kubernetes-plugin#using-yaml-to-define-pod-templates
1070 # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1071 # -- The raw yaml of a Pod API Object to merge into the agent spec
1072 yamlTemplate: ""
1073 # yamlTemplate: |-
1074 # apiVersion: v1
1075 # kind: Pod
1076 # spec:
1077 # tolerations:
1078 # - key: "key"
1079 # operator: "Equal"
1080 # value: "value"
1081
1082 # -- Defines how the raw yaml field gets merged with yaml definitions from inherited pod templates. Possible values: "merge" or "override"
1083 yamlMergeStrategy: "override"
1084 # -- Timeout in seconds for an agent to be online
1085 connectTimeout: 100
1086 # -- Annotations to apply to the pod
1087 annotations: {}
1088
1089 # Containers specified here are added to all agents. Set key empty to remove container from additional agents.
1090 # -- Add additional containers to the agents
1091 additionalContainers: []
1092 # - sideContainerName: dind
1093 # image:
1094 # repository: docker
1095 # tag: dind
1096 # command: dockerd-entrypoint.sh
1097 # args: ""
1098 # privileged: true
1099 # resources:
1100 # requests:
1101 # cpu: 500m
1102 # memory: 1Gi
1103 # limits:
1104 # cpu: 1
1105 # memory: 2Gi
1106
1107 # Useful when configuring agents only with the podTemplates value, since the default podTemplate populated by values mentioned above will be excluded in the rendered template.
1108 # -- Disable the default Jenkins Agent configuration
1109 disableDefaultAgent: false
1110
1111 # Below is the implementation of custom pod templates for the default configured kubernetes cloud.
1112 # Add a key under podTemplates for each pod template. Each key (prior to | character) is just a label, and can be any value.
1113 # Keys are only used to give the pod template a meaningful name. The only restriction is they may only contain RFC 1123 \ DNS label
1114 # characters: lowercase letters, numbers, and hyphens. Each pod template can contain multiple containers.
1115 # For this pod templates configuration to be loaded, the following values must be set:
1116 # controller.JCasC.defaultConfig: true
1117 # Best reference is https://<jenkins_url>/configuration-as-code/reference#Cloud-kubernetes. The example below creates a python pod template.
1118 # -- Configures extra pod templates for the default kubernetes cloud
1119 podTemplates: {}
1120 # python: |
1121 # - name: python
1122 # label: jenkins-python
1123 # serviceAccount: jenkins
1124 # containers:
1125 # - name: python
1126 # image: python:3
1127 # command: "/bin/sh -c"
1128 # args: "cat"
1129 # ttyEnabled: true
1130 # privileged: true
1131 # resourceRequestCpu: "400m"
1132 # resourceRequestMemory: "512Mi"
1133 # resourceLimitCpu: "1"
1134 # resourceLimitMemory: "1024Mi"
1135
1136# Inherits all values from `agent` so you only need to specify values which differ
1137# -- Configure additional
1138additionalAgents: {}
1139# maven:
1140# podName: maven
1141# customJenkinsLabels: maven
1142# # An example of overriding the jnlp container
1143# # sideContainerName: jnlp
1144# image:
1145# repository: jenkins/jnlp-agent-maven
1146# tag: latest
1147# python:
1148# podName: python
1149# customJenkinsLabels: python
1150# sideContainerName: python
1151# image:
1152# repository: python
1153# tag: "3"
1154# command: "/bin/sh -c"
1155# args: "cat"
1156# TTYEnabled: true
1157
1158# Here you can add additional clouds
1159# They inherit all values from the default cloud (including the main agent), so
1160# you only need to specify values which differ. If you want to override
1161# default additionalAgents with the additionalClouds.additionalAgents set
1162# additionalAgentsOverride to `true`.
1163additionalClouds: {}
1164# remote-cloud-1:
1165# kubernetesURL: https://api.remote-cloud.com
1166# additionalAgentsOverride: true
1167# additionalAgents:
1168# maven-2:
1169# podName: maven-2
1170# customJenkinsLabels: maven
1171# # An example of overriding the jnlp container
1172# # sideContainerName: jnlp
1173# image:
1174# repository: jenkins/jnlp-agent-maven
1175# tag: latest
1176# namespace: my-other-maven-namespace
1177# remote-cloud-2:
1178# kubernetesURL: https://api.remote-cloud.com
1179
1180persistence:
1181 # -- Enable the use of a Jenkins PVC
1182 enabled: true
1183
1184 # A manually managed Persistent Volume and Claim
1185 # Requires persistence.enabled: true
1186 # If defined, PVC must be created manually before volume will be bound
1187 # -- Provide the name of a PVC
1188 existingClaim:
1189
1190 # jenkins data Persistent Volume Storage Class
1191 # If defined, storageClassName: <storageClass>
1192 # If set to "-", storageClassName: "", which disables dynamic provisioning
1193 # If undefined (the default) or set to null, no storageClassName spec is
1194 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS & OpenStack)
1195 # -- Storage class for the PVC
1196 storageClass:
1197 # -- Annotations for the PVC
1198 annotations: {}
1199 # -- Labels for the PVC
1200 labels: {}
1201 # -- The PVC access mode
1202 accessMode: "ReadWriteOnce"
1203 # -- The size of the PVC
1204 size: "8Gi"
1205
1206 # ref: https://kubernetes.io/docs/concepts/storage/volume-pvc-datasource/
1207 # -- Existing data source to clone PVC from
1208 dataSource: {}
1209 # name: PVC-NAME
1210 # kind: PersistentVolumeClaim
1211
1212 # -- SubPath for jenkins-home mount
1213 subPath:
1214 # -- Additional volumes
1215 volumes: []
1216 # - name: nothing
1217 # emptyDir: {}
1218
1219 # -- Additional mounts
1220 mounts: []
1221 # - mountPath: /var/nothing
1222 # name: nothing
1223 # readOnly: true
1224
1225networkPolicy:
1226 # -- Enable the creation of NetworkPolicy resources
1227 enabled: false
1228
1229 # For Kubernetes v1.4, v1.5 and v1.6, use 'extensions/v1beta1'
1230 # For Kubernetes v1.7, use 'networking.k8s.io/v1'
1231 # -- NetworkPolicy ApiVersion
1232 apiVersion: networking.k8s.io/v1
1233 # You can allow agents to connect from both within the cluster (from within specific/all namespaces) AND/OR from a given external IP range
1234 internalAgents:
1235 # -- Allow internal agents (from the same cluster) to connect to controller. Agent pods will be filtered based on PodLabels
1236 allowed: true
1237 # -- A map of labels (keys/values) that agent pods must have to be able to connect to controller
1238 podLabels: {}
1239 # -- A map of labels (keys/values) that agents namespaces must have to be able to connect to controller
1240 namespaceLabels: {}
1241 # project: myproject
1242 externalAgents:
1243 # -- The IP range from which external agents are allowed to connect to controller, i.e., 172.17.0.0/16
1244 ipCIDR:
1245 # -- A list of IP sub-ranges to be excluded from the allowlisted IP range
1246 except: []
1247 # - 172.17.1.0/24
1248
1249## Install Default RBAC roles and bindings
1250rbac:
1251 # -- Whether RBAC resources are created
1252 create: true
1253 # -- Whether the Jenkins service account should be able to read Kubernetes secrets
1254 readSecrets: false
1255
1256serviceAccount:
1257 # -- Configures if a ServiceAccount with this name should be created
1258 create: true
1259
1260 # The name of the ServiceAccount is autogenerated by default
1261 # -- The name of the ServiceAccount to be used by access-controlled resources
1262 name:
1263 # -- Configures annotations for the ServiceAccount
1264 annotations: {}
1265 # -- Configures extra labels for the ServiceAccount
1266 extraLabels: {}
1267 # -- Controller ServiceAccount image pull secret
1268 imagePullSecretName:
1269
1270
1271serviceAccountAgent:
1272 # -- Configures if an agent ServiceAccount should be created
1273 create: false
1274
1275 # If not set and create is true, a name is generated using the fullname template
1276 # -- The name of the agent ServiceAccount to be used by access-controlled resources
1277 name:
1278 # -- Configures annotations for the agent ServiceAccount
1279 annotations: {}
1280 # -- Configures extra labels for the agent ServiceAccount
1281 extraLabels: {}
1282 # -- Agent ServiceAccount image pull secret
1283 imagePullSecretName:
1284
1285# -- Checks if any deprecated values are used
1286checkDeprecation: true
1287
1288awsSecurityGroupPolicies:
1289 enabled: false
1290 policies:
1291 - name: ""
1292 securityGroupIds: []
1293 podSelector: {}
1294
1295# Here you can configure unit tests values when executing the helm unittest in the CONTRIBUTING.md
1296helmtest:
1297 # A testing framework for bash
1298 bats:
1299 # Bash Automated Testing System (BATS)
1300 image:
1301 # -- Registry of the image used to test the framework
1302 registry: "docker.io"
1303 # -- Repository of the image used to test the framework
1304 repository: "bats/bats"
1305 # -- Tag of the image to test the framework
1306 tag: "1.11.0"