| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388 |
- # Default values for jenkins.
- # This is a YAML-formatted file.
- # Declare name/value pairs to be passed into your templates.
- # name: value
- ## Overrides for generated resource names
- # See templates/_helpers.tpl
- # -- Override the resource name prefix
- # @default -- `Chart.Name`
- nameOverride:
- # -- Override the full resource names
- # @default -- `jenkins-(release-name)` or `jenkins` if the release-name is `jenkins`
- fullnameOverride:
- # -- Override the deployment namespace
- # @default -- `Release.Namespace`
- namespaceOverride:
- # For FQDN resolving of the controller service. Change this value to match your existing configuration.
- # ref: https://github.com/kubernetes/dns/blob/master/docs/specification.md
- # -- Override the cluster name for FQDN resolving
- clusterZone: "cluster.local"
- # -- The URL of the Kubernetes API server
- kubernetesURL: "https://kubernetes.default"
- # -- The Jenkins credentials to access the Kubernetes API server. For the default cluster it is not needed.
- credentialsId:
- # -- Enables rendering of the helm.sh/chart label to the annotations
- renderHelmLabels: true
- # -- Configures extra labels for the agent all objects
- extraLabels: {}
- controller:
- # -- Used for label app.kubernetes.io/component
- componentName: "jenkins-controller"
- image:
- # -- Controller image registry
- registry: "docker.io"
- # -- Controller image repository
- repository: "jenkins/jenkins"
- # -- Controller image tag override; i.e., tag: "2.440.1-jdk21"
- tag:
- # -- Controller image tag label
- tagLabel: jdk21
- # -- Controller image pull policy
- pullPolicy: "Always"
- # -- Controller image pull secret
- imagePullSecretName:
- # -- Lifecycle specification for controller-container
- lifecycle: {}
- # postStart:
- # exec:
- # command:
- # - "uname"
- # - "-a"
- # -- Disable use of remember me
- disableRememberMe: false
- # -- Set Number of executors
- numExecutors: 0
- # -- Sets the executor mode of the Jenkins node. Possible values are "NORMAL" or "EXCLUSIVE"
- executorMode: "NORMAL"
- # -- Append Jenkins labels to the controller
- customJenkinsLabels: []
- hostNetworking: false
- # When enabling LDAP or another non-Jenkins identity source, the built-in admin account will no longer exist.
- # If you disable the non-Jenkins identity store and instead use the Jenkins internal one,
- # you should revert controller.admin.username to your preferred admin user:
- admin:
- # -- Admin username created as a secret if `controller.admin.createSecret` is true
- username: "admin"
- # -- Admin password created as a secret if `controller.admin.createSecret` is true
- # @default -- <random password>
- password: "Rey-1176"
- # -- The key in the existing admin secret containing the username
- userKey: jenkins-admin-user
- # -- The key in the existing admin secret containing the password
- passwordKey: jenkins-admin-password
- # The default configuration uses this secret to configure an admin user
- # If you don't need that user or use a different security realm, then you can disable it
- # -- Create secret for admin user
- createSecret: true
- # -- The name of an existing secret containing the admin credentials
- existingSecret: ""
- # -- Email address for the administrator of the Jenkins instance
- jenkinsAdminEmail:
- # This value should not be changed unless you use your custom image of jenkins or any derived from.
- # If you want to use Cloudbees Jenkins Distribution docker, you should set jenkinsHome: "/var/cloudbees-jenkins-distribution"
- # -- Custom Jenkins home path
- jenkinsHome: "/var/jenkins_home"
- # This value should not be changed unless you use your custom image of jenkins or any derived from.
- # If you want to use Cloudbees Jenkins Distribution docker, you should set jenkinsRef: "/usr/share/cloudbees-jenkins-distribution/ref"
- # -- Custom Jenkins reference path
- jenkinsRef: "/usr/share/jenkins/ref"
- # Path to the jenkins war file which is used by jenkins-plugin-cli.
- jenkinsWar: "/usr/share/jenkins/jenkins.war"
- # Override the default arguments passed to the war
- # overrideArgs:
- # - --httpPort=8080
- # -- Resource allocation (Requests and Limits)
- resources:
- requests:
- cpu: "50m"
- memory: "256Mi"
- limits:
- cpu: "2000m"
- memory: "4096Mi"
- # Share process namespace to allow sidecar containers to interact with processes in other containers in the same pod
- shareProcessNamespace: false
- # Service links might cause issue if running in a namespace with a large amount of services
- # that might cause a slow startup when plugins are copied from ref to volume
- # Set to true to keep previous behavior
- # See https://github.com/kubernetes/kubernetes/issues/121787
- enableServiceLinks: false
- # Overrides the init container default values
- # -- Resources allocation (Requests and Limits) for Init Container
- initContainerResources: {}
- # initContainerResources:
- # requests:
- # cpu: "50m"
- # memory: "256Mi"
- # limits:
- # cpu: "2000m"
- # memory: "4096Mi"
- # -- Environment variable sources for Init Container
- initContainerEnvFrom: []
- # useful for i.e., http_proxy
- # -- Environment variables for Init Container
- initContainerEnv: []
- # initContainerEnv:
- # - name: http_proxy
- # value: "http://192.168.64.1:3128"
- # -- Environment variable sources for Jenkins Container
- containerEnvFrom: []
- # -- Environment variables for Jenkins Container
- containerEnv: []
- # - name: http_proxy
- # value: "http://192.168.64.1:3128"
- # Set min/max heap here if needed with "-Xms512m -Xmx512m"
- # -- Append to `JAVA_OPTS` env var
- javaOpts:
- # -- Append to `JENKINS_OPTS` env var
- jenkinsOpts:
- # If you are using the ingress definitions provided by this chart via the `controller.ingress` block,
- # the configured hostname will be the ingress hostname starting with `https://`
- # or `http://` depending on the `tls` configuration.
- # The Protocol can be overwritten by specifying `controller.jenkinsUrlProtocol`.
- # -- Set protocol for Jenkins URL; `https` if `controller.ingress.tls`, `http` otherwise
- jenkinsUrlProtocol:
- # -- Set Jenkins URL if you are not using the ingress definitions provided by the chart
- jenkinsUrl:
- # If you set this prefix and use ingress controller, then you might want to set the ingress path below
- # I.e., "/jenkins"
- # -- Root URI Jenkins will be served on
- jenkinsUriPrefix:
- # -- Enable pod security context (must be `true` if podSecurityContextOverride, runAsUser or fsGroup are set)
- usePodSecurityContext: true
- # Note that `runAsUser`, `fsGroup`, and `securityContextCapabilities` are
- # being deprecated and replaced by `podSecurityContextOverride`.
- # Set runAsUser to 1000 to let Jenkins run as non-root user 'jenkins', which exists in 'jenkins/jenkins' docker image.
- # When configuring runAsUser to a different value than 0 also set fsGroup to the same value:
- # -- Deprecated in favor of `controller.podSecurityContextOverride`. uid that jenkins runs with.
- runAsUser: 1000
- # -- Deprecated in favor of `controller.podSecurityContextOverride`. uid that will be used for persistent volume.
- fsGroup: 1000
- # If you have PodSecurityPolicies that require dropping of capabilities as suggested by CIS K8s benchmark, put them here
- # securityContextCapabilities:
- # drop:
- # - NET_RAW
- securityContextCapabilities: {}
- # In the case of mounting an ext4 filesystem, it might be desirable to use `supplementalGroups` instead of `fsGroup` in
- # the `securityContext` block: https://github.com/kubernetes/kubernetes/issues/67014#issuecomment-589915496
- # podSecurityContextOverride:
- # runAsUser: 1000
- # runAsNonRoot: true
- # supplementalGroups: [1000]
- # capabilities: {}
- # -- Completely overwrites the contents of the pod security context, ignoring the values provided for `runAsUser`, `fsGroup`, and `securityContextCapabilities`
- podSecurityContextOverride: ~
- # -- Allow controlling the securityContext for the jenkins container
- containerSecurityContext:
- runAsUser: 1000
- runAsGroup: 1000
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- # -- enable or disable the controller k8s service
- serviceEnabled: true
- # For minikube, set this to NodePort, elsewhere uses LoadBalancer
- # Use ClusterIP if your setup includes ingress controller
- # -- k8s service type
- serviceType: NodePort
- # -- k8s service clusterIP. Only used if serviceType is ClusterIP
- clusterIp:
- # -- k8s service port
- servicePort: 8080
- # -- k8s target port
- targetPort: 8080
- # -- k8s node port. Only used if serviceType is NodePort
- nodePort: 32000
- # Use Local to preserve the client source IP and avoids a second hop for LoadBalancer and NodePort type services,
- # but risks potentially imbalanced traffic spreading.
- serviceExternalTrafficPolicy:
- # If enabled, the controller is available through its service before its pods reports ready. Makes startup screen and
- # auto-reload on restart feature possible.
- publishNotReadyAddresses:
- # -- Jenkins controller service annotations
- serviceAnnotations: {}
- # -- Jenkins controller custom labels for the StatefulSet
- statefulSetLabels: {}
- # foo: bar
- # bar: foo
- # -- Labels for the Jenkins controller-service
- serviceLabels: {}
- # service.beta.kubernetes.io/aws-load-balancer-backend-protocol: https
- # Put labels on Jenkins controller pod
- # -- Custom Pod labels (an object with `label-key: label-value` pairs)
- podLabels: {}
- # Enable Kubernetes Startup, Liveness and Readiness Probes
- # if Startup Probe is supported, enable it too
- # ~ 2 minutes to allow Jenkins to restart when upgrading plugins. Set ReadinessTimeout to be shorter than LivenessTimeout.
- # ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes
- # -- Enable Kubernetes Probes configuration configured in `controller.probes`
- healthProbes: true
- probes:
- startupProbe:
- # -- Set the failure threshold for the startup probe
- failureThreshold: 12
- httpGet:
- # -- Set the Pod's HTTP path for the startup probe
- path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'
- # -- Set the Pod's HTTP port to use for the startup probe
- port: http
- # -- Set the time interval between two startup probes executions in seconds
- periodSeconds: 10
- # -- Set the timeout for the startup probe in seconds
- timeoutSeconds: 5
- livenessProbe:
- # -- Set the failure threshold for the liveness probe
- failureThreshold: 5
- httpGet:
- # -- Set the Pod's HTTP path for the liveness probe
- path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'
- # -- Set the Pod's HTTP port to use for the liveness probe
- port: http
- # -- Set the time interval between two liveness probes executions in seconds
- periodSeconds: 10
- # -- Set the timeout for the liveness probe in seconds
- timeoutSeconds: 5
- # If Startup Probe is not supported on your Kubernetes cluster, you might want to use "initialDelaySeconds" instead.
- # It delays the initial liveness probe while Jenkins is starting
- # -- Set the initial delay for the liveness probe in seconds
- initialDelaySeconds:
- readinessProbe:
- # -- Set the failure threshold for the readiness probe
- failureThreshold: 3
- httpGet:
- # -- Set the Pod's HTTP path for the liveness probe
- path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'
- # -- Set the Pod's HTTP port to use for the readiness probe
- port: http
- # -- Set the time interval between two readiness probes executions in seconds
- periodSeconds: 10
- # -- Set the timeout for the readiness probe in seconds
- timeoutSeconds: 5
- # If Startup Probe is not supported on your Kubernetes cluster, you might want to use "initialDelaySeconds" instead.
- # It delays the initial readiness probe while Jenkins is starting
- # -- Set the initial delay for the readiness probe in seconds
- initialDelaySeconds:
- # PodDisruptionBudget config
- podDisruptionBudget:
- # ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
- # -- Enable Kubernetes Pod Disruption Budget configuration
- enabled: false
- # For Kubernetes v1.5+, use 'policy/v1beta1'
- # For Kubernetes v1.21+, use 'policy/v1'
- # -- Policy API version
- apiVersion: "policy/v1beta1"
- annotations: {}
- labels: {}
- # -- Number of pods that can be unavailable. Either an absolute number or a percentage
- maxUnavailable: "0"
- # -- Create Agent listener service
- agentListenerEnabled: true
- # -- Listening port for agents
- agentListenerPort: 50000
- # -- Host port to listen for agents
- agentListenerHostPort:
- # -- Node port to listen for agents
- agentListenerNodePort:
- # ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-policies
- # -- Traffic Policy of for the agentListener service
- agentListenerExternalTrafficPolicy:
- # -- Allowed inbound IP for the agentListener service
- agentListenerLoadBalancerSourceRanges:
- - 0.0.0.0/0
- # -- Disabled agent protocols
- disabledAgentProtocols:
- - JNLP-connect
- - JNLP2-connect
- csrf:
- defaultCrumbIssuer:
- # -- Enable the default CSRF Crumb issuer
- enabled: true
- # -- Enable proxy compatibility
- proxyCompatability: true
- # Kubernetes service type for the JNLP agent service
- # agentListenerServiceType is the Kubernetes Service type for the JNLP agent service,
- # either 'LoadBalancer', 'NodePort', or 'ClusterIP'
- # Note if you set this to 'LoadBalancer', you *must* define annotations to secure it. By default,
- # this will be an external load balancer and allowing inbound 0.0.0.0/0, a HUGE
- # security risk: https://github.com/kubernetes/charts/issues/1341
- # -- Defines how to expose the agentListener service
- agentListenerServiceType: "ClusterIP"
- # -- Annotations for the agentListener service
- agentListenerServiceAnnotations: {}
- # Optionally, assign an IP to the LoadBalancer agentListenerService LoadBalancer
- # GKE users: only regional static IPs will work for Service Load balancer.
- # -- Static IP for the agentListener LoadBalancer
- agentListenerLoadBalancerIP:
- # -- Whether legacy remoting security should be enabled
- legacyRemotingSecurityEnabled: false
- # Example of a 'LoadBalancer'-type agent listener with annotations securing it
- # agentListenerServiceType: LoadBalancer
- # agentListenerServiceAnnotations:
- # service.beta.kubernetes.io/aws-load-balancer-internal: "True"
- # service.beta.kubernetes.io/load-balancer-source-ranges: "172.0.0.0/8, 10.0.0.0/8"
- # LoadBalancerSourcesRange is a list of allowed CIDR values, which are combined with ServicePort to
- # set allowed inbound rules on the security group assigned to the controller load balancer
- # -- Allowed inbound IP addresses
- loadBalancerSourceRanges:
- - 0.0.0.0/0
- # -- Optionally assign a known public LB IP
- loadBalancerIP:
- # Optionally configure a JMX port. This requires additional javaOpts, for example,
- # javaOpts: >
- # -Dcom.sun.management.jmxremote.port=4000
- # -Dcom.sun.management.jmxremote.authenticate=false
- # -Dcom.sun.management.jmxremote.ssl=false
- # jmxPort: 4000
- # -- Open a port, for JMX stats
- jmxPort:
- # -- Optionally configure other ports to expose in the controller container
- extraPorts: []
- # - name: BuildInfoProxy
- # port: 9000
- # targetPort: 9010 (Optional: Use to explicitly set targetPort if different from port)
- # Plugins will be installed during Jenkins controller start
- # -- List of Jenkins plugins to install. If you don't want to install plugins, set it to `false`
- installPlugins:
- - kubernetes:4358.vcfd9c5a_0a_f51
- - workflow-aggregator:608.v67378e9d3db_1
- - git:5.7.0
- - configuration-as-code:1985.vdda_32d0c4ea_b_
- - blueocean:1.27.21
- - ansicolor:1.0.6
- # If set to false, Jenkins will download the minimum required version of all dependencies.
- # -- Download the minimum required version or latest version of all dependencies
- installLatestPlugins: true
- # -- Set to true to download the latest version of any plugin that is requested to have the latest version
- installLatestSpecifiedPlugins: true
- # -- List of plugins to install in addition to those listed in controller.installPlugins
- additionalPlugins: []
- # Without this; whenever the controller gets restarted (Evicted, etc.) it will fetch plugin updates that have the potential to cause breakage.
- # Note that for this to work, `persistence.enabled` needs to be set to `true`
- # -- Initialize only on first installation. Ensures plugins do not get updated inadvertently. Requires `persistence.enabled` to be set to `true`
- initializeOnce: false
- # Enable to always override the installed plugins with the values of 'controller.installPlugins' on upgrade or redeployment.
- # -- Overwrite installed plugins on start
- overwritePlugins: false
- # Configures if plugins bundled with `controller.image` should be overwritten with the values of 'controller.installPlugins' on upgrade or redeployment.
- # -- Overwrite plugins that are already installed in the controller image
- overwritePluginsFromImage: true
- # Configures the restrictions for naming projects. Set this key to null or empty to skip it in the default config.
- projectNamingStrategy: standard
- # Useful with ghprb plugin. The OWASP plugin is not installed by default, please update controller.installPlugins.
- # -- Enable HTML parsing using OWASP Markup Formatter Plugin (antisamy-markup-formatter)
- enableRawHtmlMarkupFormatter: false
- # This is ignored if enableRawHtmlMarkupFormatter is true
- # -- Yaml of the markup formatter to use
- markupFormatter: plainText
- # Used to approve a list of groovy functions in pipelines used the script-security plugin. Can be viewed under /scriptApproval
- # -- List of groovy functions to approve
- scriptApproval: []
- # - "method groovy.json.JsonSlurperClassic parseText java.lang.String"
- # - "new groovy.json.JsonSlurperClassic"
- # -- Map of groovy init scripts to be executed during Jenkins controller start
- initScripts: {}
- # test: |-
- # print 'adding global pipeline libraries, register properties, bootstrap jobs...'
- # -- Name of the existing ConfigMap that contains init scripts
- initConfigMap:
- # 'name' is a name of an existing secret in the same namespace as jenkins,
- # 'keyName' is the name of one of the keys inside the current secret.
- # the 'name' and 'keyName' are concatenated with a '-' in between, so for example:
- # an existing secret "secret-credentials" and a key inside it named "github-password" should be used in JCasC as ${secret-credentials-github-password}
- # 'name' and 'keyName' must be lowercase RFC 1123 label must consist of lower case alphanumeric characters or '-',
- # and must start and end with an alphanumeric character (e.g. 'my-name', or '123-abc')
- # existingSecret existing secret "secret-credentials" and a key inside it named "github-username" should be used in JCasC as ${github-username}
- # When using existingSecret no need to specify the keyName under additionalExistingSecrets.
- existingSecret:
- # -- List of additional existing secrets to mount
- additionalExistingSecrets: []
- # ref: https://github.com/jenkinsci/configuration-as-code-plugin/blob/master/docs/features/secrets.adoc#kubernetes-secrets
- # additionalExistingSecrets:
- # - name: secret-name-1
- # keyName: username
- # - name: secret-name-1
- # keyName: password
- # -- List of additional secrets to create and mount
- additionalSecrets: []
- # ref: https://github.com/jenkinsci/configuration-as-code-plugin/blob/master/docs/features/secrets.adoc#kubernetes-secrets
- # additionalSecrets:
- # - name: nameOfSecret
- # value: secretText
- # Generate SecretClaim resources to create Kubernetes secrets from HashiCorp Vault using kube-vault-controller.
- # 'name' is the name of the secret that will be created in Kubernetes. The Jenkins fullname is prepended to this value.
- # 'path' is the fully qualified path to the secret in Vault
- # 'type' is an optional Kubernetes secret type. The default is 'Opaque'
- # 'renew' is an optional secret renewal time in seconds
- # -- List of `SecretClaim` resources to create
- secretClaims: []
- # - name: secretName # required
- # path: testPath # required
- # type: kubernetes.io/tls # optional
- # renew: 60 # optional
- # -- Name of default cloud configuration.
- cloudName: "kubernetes"
- # Below is the implementation of Jenkins Configuration as Code. Add a key under configScripts for each configuration area,
- # 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.
- # Keys are only used to give the section a meaningful name. The only restriction is they may only contain RFC 1123 \ DNS label
- # characters: lowercase letters, numbers, and hyphens. The keys become the name of a configuration yaml file on the controller in
- # /var/jenkins_home/casc_configs (by default) and will be processed by the Configuration as Code Plugin. The lines after each |
- # become the content of the configuration yaml file. The first line after this is a JCasC root element, e.g., jenkins, credentials,
- # etc. Best reference is https://<jenkins_url>/configuration-as-code/reference. The example below creates a welcome message:
- JCasC:
- # -- Enables default Jenkins configuration via configuration as code plugin
- defaultConfig: true
- # If true, the init container deletes all the plugin config files and Jenkins Config as Code overwrites any existing configuration
- # -- Whether Jenkins Config as Code should overwrite any existing configuration
- overwriteConfiguration: false
- # -- Remote URLs for configuration files.
- configUrls: []
- # - https://acme.org/jenkins.yaml
- # -- List of Jenkins Config as Code scripts
- configScripts: {}
- # welcome-message: |
- # jenkins:
- # systemMessage: Welcome to our CI\CD server. This Jenkins is configured and managed 'as code'.
- # Allows adding to the top-level security JCasC section. For legacy purposes, by default, the chart includes apiToken configurations
- # -- Jenkins Config as Code security-section
- security:
- apiToken:
- creationOfLegacyTokenEnabled: false
- tokenGenerationOnCreationEnabled: false
- usageStatisticsEnabled: true
- # Ignored if securityRealm is defined in controller.JCasC.configScripts
- # -- Jenkins Config as Code Security Realm-section
- securityRealm: |-
- local:
- allowsSignup: false
- enableCaptcha: false
- users:
- - id: "${chart-admin-username}"
- name: "Jenkins Admin"
- password: "${chart-admin-password}"
- # Ignored if authorizationStrategy is defined in controller.JCasC.configScripts
- # -- Jenkins Config as Code Authorization Strategy-section
- authorizationStrategy: |-
- loggedInUsersCanDoAnything:
- allowAnonymousRead: false
- # -- Annotations for the JCasC ConfigMap
- configMapAnnotations: {}
- # -- Custom init-container specification in raw-yaml format
- customInitContainers: []
- # - name: custom-init
- # image: "alpine:3"
- # imagePullPolicy: Always
- # command: [ "uname", "-a" ]
- sidecars:
- configAutoReload:
- # If enabled: true, Jenkins Configuration as Code will be reloaded on-the-fly without a reboot.
- # If false or not-specified, JCasC changes will cause a reboot and will only be applied at the subsequent start-up.
- # Auto-reload uses the http://<jenkins_url>/reload-configuration-as-code endpoint to reapply config when changes to
- # the configScripts are detected.
- # -- Enable Jenkins Config as Code auto-reload
- enabled: true
- image:
- # -- Registry for the image that triggers the reload
- registry: docker.io
- # -- Repository of the image that triggers the reload
- repository: kiwigrid/k8s-sidecar
- # -- Tag for the image that triggers the reload
- tag: 1.30.7
- imagePullPolicy: IfNotPresent
- resources:
- {}
- # limits:
- # cpu: 100m
- # memory: 100Mi
- # requests:
- # cpu: 50m
- # memory: 50Mi
- # -- Enables additional volume mounts for the config auto-reload container
- additionalVolumeMounts:
- []
- # - name: auto-reload-config
- # mountPath: /var/config/logger
- # - name: auto-reload-logs
- # mountPath: /var/log/auto_reload
- # -- Config auto-reload logging settings
- logging:
- # See default settings https://github.com/kiwigrid/k8s-sidecar/blob/master/src/logger.py
- configuration:
- # -- Enables custom log config utilizing using the settings below.
- override: false
- logLevel: INFO
- formatter: JSON
- logToConsole: true
- logToFile: false
- maxBytes: 1024
- backupCount: 3
- # -- The scheme to use when connecting to the Jenkins configuration as code endpoint
- scheme: http
- # -- Skip TLS verification when connecting to the Jenkins configuration as code endpoint
- skipTlsVerify: false
- # -- How many connection-related errors to retry on
- reqRetryConnect: 10
- # -- How many seconds to wait before updating config-maps/secrets (sets METHOD=SLEEP on the sidecar)
- sleepTime:
- # -- Environment variable sources for the Jenkins Config as Code auto-reload container
- envFrom: []
- # -- Environment variables for the Jenkins Config as Code auto-reload container
- env: []
- # - name: REQ_TIMEOUT
- # value: "30"
- # 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.
- # This is only used to reload JCasC config from the sidecar container running in the Jenkins controller pod.
- # This TCP port will not be open in the pod (unless you specifically configure this), so Jenkins will not be
- # accessible via SSH from outside the pod. Note if you use non-root pod privileges (runAsUser & fsGroup),
- # this must be > 1024:
- sshTcpPort: 1044
- # folder in the pod that should hold the collected dashboards:
- folder: "/var/jenkins_home/casc_configs"
- # If specified, the sidecar will search for JCasC config-maps inside this namespace.
- # Otherwise, the namespace in which the sidecar is running will be used.
- # It's also possible to specify ALL to search in all namespaces:
- # searchNamespace:
- # -- Enable container security context
- containerSecurityContext:
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- # -- Configures additional sidecar container(s) for the Jenkins controller
- additionalSidecarContainers: []
- ## The example below runs the client for https://smee.io as sidecar container next to Jenkins,
- ## that allows triggering build behind a secure firewall.
- ## https://jenkins.io/blog/2019/01/07/webhook-firewalls/#triggering-builds-with-webhooks-behind-a-secure-firewall
- ##
- ## Note: To use it you should go to https://smee.io/new and update the url to the generated one.
- # - name: smee
- # image: docker.io/twalter/smee-client:1.0.2
- # args: ["--port", "{{ .Values.controller.servicePort }}", "--path", "/github-webhook/", "--url", "https://smee.io/new"]
- # resources:
- # limits:
- # cpu: 50m
- # memory: 128Mi
- # requests:
- # cpu: 10m
- # memory: 32Mi
- # -- Name of the Kubernetes scheduler to use
- schedulerName: ""
- # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
- # -- Node labels for pod assignment
- nodeSelector: {}
- # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature
- # -- Toleration labels for pod assignment
- tolerations: []
- # -- Set TerminationGracePeriodSeconds
- terminationGracePeriodSeconds:
- # -- Set the termination message path
- terminationMessagePath:
- # -- Set the termination message policy
- terminationMessagePolicy:
- # -- Affinity settings
- affinity: {}
- # Leverage a priorityClass to ensure your pods survive resource shortages
- # ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
- # -- The name of a `priorityClass` to apply to the controller pod
- priorityClassName:
- # -- Annotations for controller pod
- podAnnotations: {}
- # -- Annotations for controller StatefulSet
- statefulSetAnnotations: {}
- # ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
- # -- Update strategy for StatefulSet
- updateStrategy: {}
- # -- Topology spread constraints
- topologySpreadConstraints: {}
- ingress:
- # -- Enables ingress
- enabled: false
- # Override for the default paths that map requests to the backend
- # -- Override for the default Ingress paths
- paths: []
- # - backend:
- # serviceName: ssl-redirect
- # servicePort: use-annotation
- # - backend:
- # serviceName: >-
- # {{ template "jenkins.fullname" . }}
- # # Don't use string here, use only integer value!
- # servicePort: 8080
- # For Kubernetes v1.14+, use 'networking.k8s.io/v1beta1'
- # For Kubernetes v1.19+, use 'networking.k8s.io/v1'
- # -- Ingress API version
- apiVersion: "extensions/v1beta1"
- # -- Ingress labels
- labels: {}
- # -- Ingress annotations
- annotations:
- {}
- # kubernetes.io/ingress.class: nginx
- # kubernetes.io/tls-acme: "true"
- # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
- # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
- # ingressClassName: nginx
- # Set this path to jenkinsUriPrefix above or use annotations to rewrite path
- # -- Ingress path
- path:
- # configures the hostname e.g. jenkins.example.com
- # -- Ingress hostname
- hostName:
- # -- Hostname to serve assets from
- resourceRootUrl:
- # -- Ingress TLS configuration
- tls: []
- # - secretName: jenkins.cluster.local
- # hosts:
- # - jenkins.cluster.local
- # often you want to have your controller all locked down and private,
- # but you still want to get webhooks from your SCM
- # A secondary ingress will let you expose different urls
- # with a different configuration
- secondaryingress:
- enabled: false
- # paths you want forwarded to the backend
- # ex /github-webhook
- paths: []
- # For Kubernetes v1.14+, use 'networking.k8s.io/v1beta1'
- # For Kubernetes v1.19+, use 'networking.k8s.io/v1'
- apiVersion: "extensions/v1beta1"
- labels: {}
- annotations: {}
- # kubernetes.io/ingress.class: nginx
- # kubernetes.io/tls-acme: "true"
- # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
- # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
- # ingressClassName: nginx
- # configures the hostname e.g., jenkins-external.example.com
- hostName:
- tls:
- # - secretName: jenkins-external.example.com
- # hosts:
- # - jenkins-external.example.com
- # If you're running on GKE and need to configure a backendconfig
- # to finish ingress setup, use the following values.
- # Docs: https://cloud.google.com/kubernetes-engine/docs/concepts/backendconfig
- backendconfig:
- # -- Enables backendconfig
- enabled: false
- # -- backendconfig API version
- apiVersion: "extensions/v1beta1"
- # -- backendconfig name
- name:
- # -- backendconfig labels
- labels: {}
- # -- backendconfig annotations
- annotations: {}
- # -- backendconfig spec
- spec: {}
- # Openshift route
- route:
- # -- Enables openshift route
- enabled: false
- # -- Route labels
- labels: {}
- # -- Route annotations
- annotations: {}
- # -- Route path
- path:
- # -- Allows for adding entries to Pod /etc/hosts
- hostAliases: []
- # ref: https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
- # hostAliases:
- # - ip: 192.168.50.50
- # hostnames:
- # - something.local
- # - ip: 10.0.50.50
- # hostnames:
- # - other.local
- # Expose Prometheus metrics
- prometheus:
- # If enabled, add the prometheus plugin to the list of plugins to install
- # https://plugins.jenkins.io/prometheus
- # -- Enables prometheus service monitor
- enabled: false
- # -- Additional labels to add to the service monitor object
- serviceMonitorAdditionalLabels: {}
- # -- Set a custom namespace where to deploy ServiceMonitor resource
- serviceMonitorNamespace:
- # -- How often prometheus should scrape metrics
- scrapeInterval: 60s
- # Defaults to the default endpoint used by the prometheus plugin
- # -- The endpoint prometheus should get metrics from
- scrapeEndpoint: /prometheus
- # See here: https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
- # The `groups` root object is added by default, add the rule entries
- # -- Array of prometheus alerting rules
- alertingrules: []
- # -- Additional labels to add to the PrometheusRule object
- alertingRulesAdditionalLabels: {}
- # -- Set a custom namespace where to deploy PrometheusRule resource
- prometheusRuleNamespace: ""
- # RelabelConfigs to apply to samples before scraping. Prometheus Operator automatically adds
- # relabelings for a few standard Kubernetes fields. The original scrape job’s name
- # is available via the __tmp_prometheus_job_name label.
- # More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
- relabelings: []
- # MetricRelabelConfigs to apply to samples before ingestion.
- metricRelabelings: []
- googlePodMonitor:
- # If enabled, It creates Google Managed Prometheus scraping config
- enabled: false
- # Set a custom namespace where to deploy PodMonitoring resource
- # serviceMonitorNamespace: ""
- scrapeInterval: 60s
- # This is the default endpoint used by the prometheus plugin
- scrapeEndpoint: /prometheus
- # -- Can be used to disable rendering controller test resources when using helm template
- testEnabled: true
- httpsKeyStore:
- # -- Enables HTTPS keystore on jenkins controller
- enable: false
- # -- Name of the secret that already has SSL keystore
- jenkinsHttpsJksSecretName: ""
- # -- Name of the key in the secret that already has SSL keystore
- jenkinsHttpsJksSecretKey: "jenkins-jks-file"
- # -- Name of the secret that contains the JKS password, if it is not in the same secret as the JKS file
- jenkinsHttpsJksPasswordSecretName: ""
- # -- Name of the key in the secret that contains the JKS password
- jenkinsHttpsJksPasswordSecretKey: "https-jks-password"
- disableSecretMount: false
- # When HTTPS keystore is enabled, servicePort and targetPort will be used as HTTPS port
- # -- HTTP Port that Jenkins should listen to along with HTTPS, it also serves as the liveness and readiness probes port.
- httpPort: 8081
- # -- Path of HTTPS keystore file
- path: "/var/jenkins_keystore"
- # -- Jenkins keystore filename which will appear under controller.httpsKeyStore.path
- fileName: "keystore.jks"
- # -- Jenkins keystore password
- password: "password"
- # -- Base64 encoded Keystore content. Keystore must be converted to base64 then being pasted here
- jenkinsKeyStoreBase64Encoded:
- # Convert keystore.jks files content to base64 > $ cat keystore.jks | base64
- # /u3+7QAAAAIAAAABAAAAAQANamVua2luc2NpLmNvbQAAAW2r/b1ZAAAFATCCBP0wDgYKKwYBBAEq
- # AhEBAQUABIIE6QbCqasvoHS0pSwYqSvdydMCB9t+VNfwhFIiiuAelJfO5sSe2SebJbtwHgLcRz1Z
- # gMtWgOSFdl3bWSzA7vrW2LED52h+jXLYSWvZzuDuh8hYO85m10ikF6QR+dTi4jra0whIFDvq3pxe
- # TnESxEsN+DvbZM3jA3qsjQJSeISNpDjO099dqQvHpnCn18lyk7J4TWJ8sOQQb1EM2zDAfAOSqA/x
- # QuPEFl74DlY+5DIk6EBvpmWhaMSvXzWZACGA0sYqa157dq7O0AqmuLG/EI5EkHETO4CrtBW+yLcy
- # 2dUCXOMA+j+NjM1BjrQkYE5vtSfNO6lFZcISyKo5pTFlcA7ut0Fx2nZ8GhHTn32CpeWwNcZBn1gR
- # pZVt6DxVVkhTAkMLhR4rL2wGIi/1WRs23ZOLGKtyDNvDHnQyDiQEoJGy9nAthA8aNHa3cfdF10vB
- # Drb19vtpFHmpvKEEhpk2EBRF4fTi644Fuhu2Ied6118AlaPvEea+n6G4vBz+8RWuVCmZjLU+7h8l
- # Hy3/WdUPoIL5eW7Kz+hS+sRTFzfu9C48dMkQH3a6f3wSY+mufizNF9U298r98TnYy+PfDJK0bstG
- # Ph6yPWx8DGXKQBwrhWJWXI6JwZDeC5Ny+l8p1SypTmAjpIaSW3ge+KgcL6Wtt1R5hUV1ajVwVSUi
- # HF/FachKqPqyLJFZTGjNrxnmNYpt8P1d5JTvJfmfr55Su/P9n7kcyWp7zMcb2Q5nlXt4tWogOHLI
- # OzEWKCacbFfVHE+PpdrcvCVZMDzFogIq5EqGTOZe2poPpBVE+1y9mf5+TXBegy5HToLWvmfmJNTO
- # NCDuBjgLs2tdw2yMPm4YEr57PnMX5gGTC3f2ZihXCIJDCRCdQ9sVBOjIQbOCzxFXkVITo0BAZhCi
- # Yz61wt3Ud8e//zhXWCkCsSV+IZCxxPzhEFd+RFVjW0Nm9hsb2FgAhkXCjsGROgoleYgaZJWvQaAg
- # UyBzMmKDPKTllBHyE3Gy1ehBNGPgEBChf17/9M+j8pcm1OmlM434ctWQ4qW7RU56//yq1soFY0Te
- # fu2ei03a6m68fYuW6s7XEEK58QisJWRAvEbpwu/eyqfs7PsQ+zSgJHyk2rO95IxdMtEESb2GRuoi
- # Bs+AHNdYFTAi+GBWw9dvEgqQ0Mpv0//6bBE/Fb4d7b7f56uUNnnE7mFnjGmGQN+MvC62pfwfvJTT
- # EkT1iZ9kjM9FprTFWXT4UmO3XTvesGeE50sV9YPm71X4DCQwc4KE8vyuwj0s6oMNAUACW2ClU9QQ
- # y0tRpaF1tzs4N42Q5zl0TzWxbCCjAtC3u6xf+c8MCGrr7DzNhm42LOQiHTa4MwX4x96q7235oiAU
- # iQqSI/hyF5yLpWw4etyUvsx2/0/0wkuTU1FozbLoCWJEWcPS7QadMrRRISxHf0YobIeQyz34regl
- # t1qSQ3dCU9D6AHLgX6kqllx4X0fnFq7LtfN7fA2itW26v+kAT2QFZ3qZhINGfofCja/pITC1uNAZ
- # gsJaTMcQ600krj/ynoxnjT+n1gmeqThac6/Mi3YlVeRtaxI2InL82ZuD+w/dfY9OpPssQjy3xiQa
- # jPuaMWXRxz/sS9syOoGVH7XBwKrWpQcpchozWJt40QV5DslJkclcr8aC2AGlzuJMTdEgz1eqV0+H
- # bAXG9HRHN/0eJTn1/QAAAAEABVguNTA5AAADjzCCA4swggJzAhRGqVxH4HTLYPGO4rzHcCPeGDKn
- # xTANBgkqhkiG9w0BAQsFADCBgTELMAkGA1UEBhMCY2ExEDAOBgNVBAgMB29udGFyaW8xEDAOBgNV
- # BAcMB3Rvcm9udG8xFDASBgNVBAoMC2plbmtpbnN0ZXN0MRkwFwYDVQQDDBBqZW5raW5zdGVzdC5p
- # bmZvMR0wGwYJKoZIhvcNAQkBFg50ZXN0QHRlc3QuaW5mbzAeFw0xOTEwMDgxNTI5NTVaFw0xOTEx
- # MDcxNTI5NTVaMIGBMQswCQYDVQQGEwJjYTEQMA4GA1UECAwHb250YXJpbzEQMA4GA1UEBwwHdG9y
- # b250bzEUMBIGA1UECgwLamVua2luc3Rlc3QxGTAXBgNVBAMMEGplbmtpbnN0ZXN0LmluZm8xHTAb
- # BgkqhkiG9w0BCQEWDnRlc3RAdGVzdC5pbmZvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
- # AQEA02q352JTHGvROMBhSHvSv+vnoOTDKSTz2aLQn0tYrIRqRo+8bfmMjXuhkwZPSnCpvUGNAJ+w
- # Jrt/dqMoYUjCBkjylD/qHmnXN5EwS1cMg1Djh65gi5JJLFJ7eNcoSsr/0AJ+TweIal1jJSP3t3PF
- # 9Uv21gm6xdm7HnNK66WpUUXLDTKaIs/jtagVY1bLOo9oEVeLN4nT2CYWztpMvdCyEDUzgEdDbmrP
- # F5nKUPK5hrFqo1Dc5rUI4ZshL3Lpv398aMxv6n2adQvuL++URMEbXXBhxOrT6rCtYzbcR5fkwS9i
- # d3Br45CoWOQro02JAepoU0MQKY5+xQ4Bq9Q7tB9BAwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAe
- # 4xc+mSvKkrKBHg9/zpkWgZUiOp4ENJCi8H4tea/PCM439v6y/kfjT/okOokFvX8N5aa1OSz2Vsrl
- # m8kjIc6hiA7bKzT6lb0EyjUShFFZ5jmGVP4S7/hviDvgB5yEQxOPpumkdRP513YnEGj/o9Pazi5h
- # /MwpRxxazoda9r45kqQpyG+XoM4pB+Fd3JzMc4FUGxfVPxJU4jLawnJJiZ3vqiSyaB0YyUL+Er1Q
- # 6NnqtR4gEBF0ZVlQmkycFvD4EC2boP943dLqNUvop+4R3SM1QMM6P5u8iTXtHd/VN4MwMyy1wtog
- # hYAzODo1Jt59pcqqKJEas0C/lFJEB3frw4ImNx5fNlJYOpx+ijfQs9m39CevDq0=
- agent:
- # -- Enable Kubernetes plugin jnlp-agent podTemplate
- enabled: true
- # -- The name of the pod template to use for providing default values
- defaultsProviderTemplate: ""
- # Useful for not including a serviceAccount in the template if `false`
- # -- Use `serviceAccountAgent.name` as the default value for defaults template `serviceAccount`
- useDefaultServiceAccount: true
- # -- Override the default service account
- # @default -- `serviceAccountAgent.name` if `agent.useDefaultServiceAccount` is `true`
- serviceAccount:
- # For connecting to the Jenkins controller
- # -- Overrides the Kubernetes Jenkins URL
- jenkinsUrl:
- # connects to the specified host and port, instead of connecting directly to the Jenkins controller
- # -- Overrides the Kubernetes Jenkins tunnel
- jenkinsTunnel:
- # -- Disables the verification of the controller certificate on remote connection. This flag correspond to the "Disable https certificate check" flag in kubernetes plugin UI
- skipTlsVerify: false
- # -- Enable the possibility to restrict the usage of this agent to specific folder. This flag correspond to the "Restrict pipeline support to authorized folders" flag in kubernetes plugin UI
- usageRestricted: false
- # -- The connection timeout in seconds for connections to Kubernetes API. The minimum value is 5
- kubernetesConnectTimeout: 5
- # -- The read timeout in seconds for connections to Kubernetes API. The minimum value is 15
- kubernetesReadTimeout: 15
- # -- The maximum concurrent connections to Kubernetes API
- maxRequestsPerHostStr: "32"
- # -- Time in minutes after which the Kubernetes cloud plugin will clean up an idle worker that has not already terminated
- retentionTimeout: 5
- # -- Seconds to wait for pod to be running
- waitForPodSec: 600
- # -- Namespace in which the Kubernetes agents should be launched
- namespace:
- # -- Custom Pod labels (an object with `label-key: label-value` pairs)
- podLabels: {}
- # -- Custom registry used to pull the agent jnlp image from
- jnlpregistry:
- image:
- # -- Registry to pull the agent jnlp image from
- registry: ""
- # -- Repository to pull the agent jnlp image from
- repository: "jenkins/inbound-agent"
- # -- Tag of the image to pull
- tag: "3327.v868139a_d00e0-6"
- # -- Configure working directory for default agent
- workingDir: "/home/jenkins/agent"
- nodeUsageMode: "NORMAL"
- # -- Append Jenkins labels to the agent
- customJenkinsLabels: []
- # -- Name of the secret to be used to pull the image
- imagePullSecretName:
- componentName: "jenkins-agent"
- # -- Enables agent communication via websockets
- websocket: false
- directConnection: false
- # -- Agent privileged container
- privileged: false
- # -- Configure container user
- runAsUser:
- # -- Configure container group
- runAsGroup:
- # -- Enables the agent to use the host network
- hostNetworking: false
- # -- Resources allocation (Requests and Limits)
- resources:
- requests:
- cpu: "512m"
- memory: "512Mi"
- # ephemeralStorage:
- limits:
- cpu: "512m"
- memory: "512Mi"
- # ephemeralStorage:
- livenessProbe: {}
- # execArgs: "cat /tmp/healthy"
- # failureThreshold: 3
- # initialDelaySeconds: 0
- # periodSeconds: 10
- # successThreshold: 1
- # timeoutSeconds: 1
- # You may want to change this to true while testing a new image
- # -- Always pull agent container image before build
- alwaysPullImage: false
- # When using Pod Security Admission in the Agents namespace with the restricted Pod Security Standard,
- # the jnlp container cannot be scheduled without overriding its container definition with a securityContext.
- # This option allows to automatically inject in the jnlp container a securityContext
- # that is suitable for the use of the restricted Pod Security Standard.
- # -- Set a restricted securityContext on jnlp containers
- restrictedPssSecurityContext: false
- # Controls how agent pods are retained after the Jenkins build completes
- # Possible values: Always, Never, OnFailure
- podRetention: "Never"
- # Disable if you do not want the Yaml the agent pod template to show up
- # in the job Console Output. This can be helpful for either security reasons
- # or simply to clean up the output to make it easier to read.
- showRawYaml: true
- # You can define the volumes that you want to mount for this container
- # Allowed types are: ConfigMap, EmptyDir, EphemeralVolume, HostPath, Nfs, PVC, Secret
- # Configure the attributes as they appear in the corresponding Java class for that type
- # https://github.com/jenkinsci/kubernetes-plugin/tree/master/src/main/java/org/csanchez/jenkins/plugins/kubernetes/volumes
- # -- Additional volumes
- volumes: []
- # - type: ConfigMap
- # configMapName: myconfigmap
- # mountPath: /var/myapp/myconfigmap
- # - type: EmptyDir
- # mountPath: /var/myapp/myemptydir
- # memory: false
- # - type: EphemeralVolume
- # mountPath: /var/myapp/myephemeralvolume
- # accessModes: ReadWriteOnce
- # requestsSize: 10Gi
- # storageClassName: mystorageclass
- # - type: HostPath
- # hostPath: /var/lib/containers
- # mountPath: /var/myapp/myhostpath
- # - type: Nfs
- # mountPath: /var/myapp/mynfs
- # readOnly: false
- # serverAddress: "192.0.2.0"
- # serverPath: /var/lib/containers
- # - type: PVC
- # claimName: mypvc
- # mountPath: /var/myapp/mypvc
- # readOnly: false
- # - type: Secret
- # defaultMode: "600"
- # mountPath: /var/myapp/mysecret
- # secretName: mysecret
- # Pod-wide environment, these vars are visible to any container in the agent pod
- # You can define the workspaceVolume that you want to mount for this container
- # Allowed types are: DynamicPVC, EmptyDir, EphemeralVolume, HostPath, Nfs, PVC
- # Configure the attributes as they appear in the corresponding Java class for that type
- # https://github.com/jenkinsci/kubernetes-plugin/tree/master/src/main/java/org/csanchez/jenkins/plugins/kubernetes/volumes/workspace
- # -- Workspace volume (defaults to EmptyDir)
- workspaceVolume: {}
- ## DynamicPVC example
- # - type: DynamicPVC
- # configMapName: myconfigmap
- ## EmptyDir example
- # - type: EmptyDir
- # memory: false
- ## EphemeralVolume example
- # - type: EphemeralVolume
- # accessModes: ReadWriteOnce
- # requestsSize: 10Gi
- # storageClassName: mystorageclass
- ## HostPath example
- # - type: HostPath
- # hostPath: /var/lib/containers
- ## NFS example
- # - type: Nfs
- # readOnly: false
- # serverAddress: "192.0.2.0"
- # serverPath: /var/lib/containers
- ## PVC example
- # - type: PVC
- # claimName: mypvc
- # readOnly: false
- # Pod-wide environment, these vars are visible to any container in the agent pod
- # -- Environment variables for the agent Pod
- envVars: []
- # - name: PATH
- # value: /usr/local/bin
- # -- Mount a secret as environment variable
- secretEnvVars: []
- # - key: PATH
- # optional: false # default: false
- # secretKey: MY-K8S-PATH
- # secretName: my-k8s-secret
- # -- Node labels for pod assignment
- nodeSelector: {}
- # Key Value selectors. Ex:
- # nodeSelector
- # jenkins-agent: v1
- # -- Command to execute when side container starts
- command:
- # -- Arguments passed to command to execute
- args: "${computer.jnlpmac} ${computer.name}"
- # -- Side container name
- sideContainerName: "jnlp"
- # Doesn't allocate pseudo TTY by default
- # -- Allocate pseudo tty to the side container
- TTYEnabled: false
- # -- Max number of agents to launch for a whole cluster.
- containerCap: 10
- # -- Max number of agents to launch for this type of agent
- instanceCap: 2147483647
- # -- Agent Pod base name
- podName: "default"
- # Enables garbage collection of orphan pods for this Kubernetes cloud. (beta)
- garbageCollection:
- # -- When enabled, Jenkins will periodically check for orphan pods that have not been touched for the given timeout period and delete them.
- enabled: false
- # -- Namespaces to look at for garbage collection, in addition to the default namespace defined for the cloud. One namespace per line.
- namespaces: ""
- # namespaces: |-
- # namespaceOne
- # namespaceTwo
- # -- Timeout value for orphaned pods
- timeout: 300
- # -- Allows the Pod to remain active for reuse until the configured number of minutes has passed since the last step was executed on it
- idleMinutes: 0
- # The raw yaml of a Pod API Object, for example, this allows usage of toleration for agent pods.
- # https://github.com/jenkinsci/kubernetes-plugin#using-yaml-to-define-pod-templates
- # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
- # -- The raw yaml of a Pod API Object to merge into the agent spec
- yamlTemplate: ""
- # yamlTemplate: |-
- # apiVersion: v1
- # kind: Pod
- # spec:
- # tolerations:
- # - key: "key"
- # operator: "Equal"
- # value: "value"
- # -- Defines how the raw yaml field gets merged with yaml definitions from inherited pod templates. Possible values: "merge" or "override"
- yamlMergeStrategy: "override"
- # -- Controls whether the defined yaml merge strategy will be inherited if another defined pod template is configured to inherit from the current one
- inheritYamlMergeStrategy: false
- # -- Timeout in seconds for an agent to be online
- connectTimeout: 100
- # -- Annotations to apply to the pod
- annotations: {}
- # Containers specified here are added to all agents. Set key empty to remove container from additional agents.
- # -- Add additional containers to the agents
- additionalContainers: []
- # - sideContainerName: dind
- # image:
- # repository: docker
- # tag: dind
- # command: dockerd-entrypoint.sh
- # args: ""
- # privileged: true
- # resources:
- # requests:
- # cpu: 500m
- # memory: 1Gi
- # limits:
- # cpu: 1
- # memory: 2Gi
- # 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.
- # -- Disable the default Jenkins Agent configuration
- disableDefaultAgent: false
- # Below is the implementation of custom pod templates for the default configured kubernetes cloud.
- # Add a key under podTemplates for each pod template. Each key (prior to | character) is just a label, and can be any value.
- # Keys are only used to give the pod template a meaningful name. The only restriction is they may only contain RFC 1123 \ DNS label
- # characters: lowercase letters, numbers, and hyphens. Each pod template can contain multiple containers.
- # For this pod templates configuration to be loaded, the following values must be set:
- # controller.JCasC.defaultConfig: true
- # Best reference is https://<jenkins_url>/configuration-as-code/reference#Cloud-kubernetes. The example below creates a python pod template.
- # -- Configures extra pod templates for the default kubernetes cloud
- podTemplates: {}
- # python: |
- # - name: python
- # label: jenkins-python
- # serviceAccount: jenkins
- # containers:
- # - name: python
- # image: python:3
- # command: "/bin/sh -c"
- # args: "cat"
- # ttyEnabled: true
- # privileged: true
- # resourceRequestCpu: "400m"
- # resourceRequestMemory: "512Mi"
- # resourceLimitCpu: "1"
- # resourceLimitMemory: "1024Mi"
- # Inherits all values from `agent` so you only need to specify values which differ
- # -- Configure additional
- additionalAgents: {}
- # maven:
- # podName: maven
- # customJenkinsLabels: maven
- # # An example of overriding the jnlp container
- # # sideContainerName: jnlp
- # image:
- # repository: jenkins/jnlp-agent-maven
- # tag: latest
- # python:
- # podName: python
- # customJenkinsLabels: python
- # sideContainerName: python
- # image:
- # repository: python
- # tag: "3"
- # command: "/bin/sh -c"
- # args: "cat"
- # TTYEnabled: true
- # Here you can add additional clouds
- # They inherit all values from the default cloud (including the main agent), so
- # you only need to specify values which differ. If you want to override
- # default additionalAgents with the additionalClouds.additionalAgents set
- # additionalAgentsOverride to `true`.
- additionalClouds: {}
- # remote-cloud-1:
- # kubernetesURL: https://api.remote-cloud.com
- # additionalAgentsOverride: true
- # additionalAgents:
- # maven-2:
- # podName: maven-2
- # customJenkinsLabels: maven
- # # An example of overriding the jnlp container
- # # sideContainerName: jnlp
- # image:
- # repository: jenkins/jnlp-agent-maven
- # tag: latest
- # namespace: my-other-maven-namespace
- # remote-cloud-2:
- # kubernetesURL: https://api.remote-cloud.com
- persistence:
- # -- Enable the use of a Jenkins PVC
- enabled: true
- # A manually managed Persistent Volume and Claim
- # Requires persistence.enabled: true
- # If defined, PVC must be created manually before volume will be bound
- # -- Provide the name of a PVC
- existingClaim: pvc-jenkins
- # jenkins data Persistent Volume Storage Class
- # If defined, storageClassName: <storageClass>
- # If set to "-", storageClassName: "", which disables dynamic provisioning
- # If undefined (the default) or set to null, no storageClassName spec is
- # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS & OpenStack)
- # -- Storage class for the PVC
- storageClass:
- # -- Annotations for the PVC
- annotations: {}
- # -- Labels for the PVC
- labels: {}
- # -- The PVC access mode
- accessMode: "ReadWriteOnce"
- # -- The size of the PVC
- size: "8Gi"
- # ref: https://kubernetes.io/docs/concepts/storage/volume-pvc-datasource/
- # -- Existing data source to clone PVC from
- dataSource: {}
- # name: PVC-NAME
- # kind: PersistentVolumeClaim
- # -- SubPath for jenkins-home mount
- subPath:
- # -- Additional volumes
- volumes: []
- # - name: nothing
- # emptyDir: {}
- # -- Additional mounts
- mounts: []
- # - mountPath: /var/nothing
- # name: nothing
- # readOnly: true
- networkPolicy:
- # -- Enable the creation of NetworkPolicy resources
- enabled: false
- # For Kubernetes v1.4, v1.5 and v1.6, use 'extensions/v1beta1'
- # For Kubernetes v1.7, use 'networking.k8s.io/v1'
- # -- NetworkPolicy ApiVersion
- apiVersion: networking.k8s.io/v1
- # You can allow agents to connect from both within the cluster (from within specific/all namespaces) AND/OR from a given external IP range
- internalAgents:
- # -- Allow internal agents (from the same cluster) to connect to controller. Agent pods will be filtered based on PodLabels
- allowed: true
- # -- A map of labels (keys/values) that agent pods must have to be able to connect to controller
- podLabels: {}
- # -- A map of labels (keys/values) that agents namespaces must have to be able to connect to controller
- namespaceLabels:
- {}
- # project: myproject
- externalAgents:
- # -- The IP range from which external agents are allowed to connect to controller, i.e., 172.17.0.0/16
- ipCIDR:
- # -- A list of IP sub-ranges to be excluded from the allowlisted IP range
- except:
- []
- # - 172.17.1.0/24
- ## Install Default RBAC roles and bindings
- rbac:
- # -- Whether RBAC resources are created
- create: true
- # -- Whether the Jenkins service account should be able to read Kubernetes secrets
- readSecrets: false
- # -- Whether the Jenkins service account should be able to use the OpenShift "nonroot" Security Context Constraints
- useOpenShiftNonRootSCC: false
- serviceAccount:
- # -- Configures if a ServiceAccount with this name should be created
- create: true
- # The name of the ServiceAccount is autogenerated by default
- # -- The name of the ServiceAccount to be used by access-controlled resources
- name:
- # -- Configures annotations for the ServiceAccount
- annotations: {}
- # -- Configures extra labels for the ServiceAccount
- extraLabels: {}
- # -- Controller ServiceAccount image pull secret
- imagePullSecretName:
- # -- Auto-mount ServiceAccount token
- automountServiceAccountToken: true
- serviceAccountAgent:
- # -- Configures if an agent ServiceAccount should be created
- create: false
- # If not set and create is true, a name is generated using the fullname template
- # -- The name of the agent ServiceAccount to be used by access-controlled resources
- name:
- # -- Configures annotations for the agent ServiceAccount
- annotations: {}
- # -- Configures extra labels for the agent ServiceAccount
- extraLabels: {}
- # -- Agent ServiceAccount image pull secret
- imagePullSecretName:
- # -- Auto-mount ServiceAccount token
- automountServiceAccountToken: true
- # -- Checks if any deprecated values are used
- checkDeprecation: true
- awsSecurityGroupPolicies:
- enabled: false
- policies:
- - name: ""
- securityGroupIds: []
- podSelector: {}
- # Here you can configure unit tests values when executing the helm unittest in the CONTRIBUTING.md
- helmtest:
- # A testing framework for bash
- bats:
- # Bash Automated Testing System (BATS)
- image:
- # -- Registry of the image used to test the framework
- registry: "docker.io"
- # -- Repository of the image used to test the framework
- repository: "bats/bats"
- # -- Tag of the image to test the framework
- tag: "1.12.0"
|