blob: 82be6fc36e1b039b7eea9a756a769a075b2ec5b1 [file] [log] [blame]
garciadeblas8d8cd992024-05-21 16:04:14 +02001#######################################################################################
2# Copyright ETSI Contributors and Others.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13# implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16#######################################################################################
17
18# Default values for gitea.
19# This is a YAML-formatted file.
20# Declare variables to be passed into your templates.
21## @section Global
22#
23## @param global.imageRegistry global image registry override
24## @param global.imagePullSecrets global image pull secrets override; can be extended by `imagePullSecrets`
25## @param global.storageClass global storage class override
26## @param global.hostAliases global hostAliases which will be added to the pod's hosts files
27global:
28 imageRegistry: ""
29 ## E.g.
30 ## imagePullSecrets:
31 ## - myRegistryKeySecretName
32 ##
33 imagePullSecrets: []
34 storageClass: ""
35 hostAliases: []
36 # - ip: 192.168.137.2
37 # hostnames:
38 # - example.com
39
40## @param replicaCount number of replicas for the statefulset
41replicaCount: 1
42
43## @param clusterDomain cluster domain
44clusterDomain: cluster.local
45
46## @section Image
47## @param image.registry image registry, e.g. gcr.io,docker.io
48## @param image.repository Image to start for this pod
49## @param image.tag Visit: [Image tag](https://hub.docker.com/r/gitea/gitea/tags?page=1&ordering=last_updated). Defaults to `appVersion` within Chart.yaml.
50## @param image.pullPolicy Image pull policy
51## @param image.rootless Wether or not to pull the rootless version of Gitea, only works on Gitea 1.14.x or higher
52image:
53 registry: ""
54 repository: gitea/gitea
55 # Overrides the image tag whose default is the chart appVersion.
56 tag: ""
57 pullPolicy: Always
58 rootless: false # only possible when running 1.14 or later
59
60## @param imagePullSecrets Secret to use for pulling the image
61imagePullSecrets: []
62
63## @section Security
64# Security context is only usable with rootless image due to image design
65## @param podSecurityContext.fsGroup Set the shared file system group for all containers in the pod.
66podSecurityContext:
67 fsGroup: 1000
68
69## @param containerSecurityContext Security context
70containerSecurityContext: {}
71# allowPrivilegeEscalation: false
72# capabilities:
73# drop:
74# - ALL
75# # Add the SYS_CHROOT capability for root and rootless images if you intend to
76# # run pods on nodes that use the container runtime cri-o. Otherwise, you will
77# # get an error message from the SSH server that it is not possible to read from
78# # the repository.
79# # https://gitea.com/gitea/helm-chart/issues/161
80# add:
81# - SYS_CHROOT
82# privileged: false
83# readOnlyRootFilesystem: true
84# runAsGroup: 1000
85# runAsNonRoot: true
86# runAsUser: 1000
87
88## @deprecated The securityContext variable has been split two:
89## - containerSecurityContext
90## - podSecurityContext.
91## @param securityContext Run init and Gitea containers as a specific securityContext
92securityContext: {}
93
94## @section Service
95service:
96 ## @param service.http.type Kubernetes service type for web traffic
97 ## @param service.http.port Port number for web traffic
98 ## @param service.http.clusterIP ClusterIP setting for http autosetup for statefulset is None
99 ## @param service.http.loadBalancerIP LoadBalancer IP setting
100 ## @param service.http.nodePort NodePort for http service
101 ## @param service.http.externalTrafficPolicy If `service.http.type` is `NodePort` or `LoadBalancer`, set this to `Local` to enable source IP preservation
102 ## @param service.http.externalIPs External IPs for service
103 ## @param service.http.ipFamilyPolicy HTTP service dual-stack policy
104 ## @param service.http.ipFamilies HTTP service dual-stack familiy selection,for dual-stack parameters see official kubernetes [dual-stack concept documentation](https://kubernetes.io/docs/concepts/services-networking/dual-stack/).
105 ## @param service.http.loadBalancerSourceRanges Source range filter for http loadbalancer
106 ## @param service.http.annotations HTTP service annotations
107 http:
108 type: ClusterIP
109 port: 3000
110 clusterIP: None
111 loadBalancerIP:
112 nodePort:
113 externalTrafficPolicy:
114 externalIPs:
115 ipFamilyPolicy:
116 ipFamilies:
117 loadBalancerSourceRanges: []
118 annotations: {}
119 ## @param service.ssh.type Kubernetes service type for ssh traffic
120 ## @param service.ssh.port Port number for ssh traffic
121 ## @param service.ssh.clusterIP ClusterIP setting for ssh autosetup for statefulset is None
122 ## @param service.ssh.loadBalancerIP LoadBalancer IP setting
123 ## @param service.ssh.nodePort NodePort for ssh service
124 ## @param service.ssh.externalTrafficPolicy If `service.ssh.type` is `NodePort` or `LoadBalancer`, set this to `Local` to enable source IP preservation
125 ## @param service.ssh.externalIPs External IPs for service
126 ## @param service.ssh.ipFamilyPolicy SSH service dual-stack policy
127 ## @param service.ssh.ipFamilies SSH service dual-stack familiy selection,for dual-stack parameters see official kubernetes [dual-stack concept documentation](https://kubernetes.io/docs/concepts/services-networking/dual-stack/).
128 ## @param service.ssh.hostPort HostPort for ssh service
129 ## @param service.ssh.loadBalancerSourceRanges Source range filter for ssh loadbalancer
130 ## @param service.ssh.annotations SSH service annotations
131 ssh:
132 type: ClusterIP
133 port: 22
134 clusterIP: None
135 loadBalancerIP:
136 nodePort:
137 externalTrafficPolicy:
138 externalIPs:
139 ipFamilyPolicy:
140 ipFamilies:
141 hostPort:
142 loadBalancerSourceRanges: []
143 annotations: {}
144
145
146## @section Ingress
147## @param ingress.enabled Enable ingress
148## @param ingress.className Ingress class name
149## @param ingress.annotations Ingress annotations
150## @param ingress.hosts[0].host Default Ingress host
151## @param ingress.hosts[0].paths[0].path Default Ingress path
152## @param ingress.hosts[0].paths[0].pathType Ingress path type
153## @param ingress.tls Ingress tls settings
154## @extra ingress.apiVersion Specify APIVersion of ingress object. Mostly would only be used for argocd.
155ingress:
156 enabled: false
157 # className: nginx
158 className:
159 annotations: {}
160 # kubernetes.io/ingress.class: nginx
161 # kubernetes.io/tls-acme: "true"
162 hosts:
163 - host: git.example.com
164 paths:
165 - path: /
166 pathType: Prefix
167 tls: []
168 # - secretName: chart-example-tls
169 # hosts:
170 # - git.example.com
171 # Mostly for argocd or any other CI that uses `helm template | kubectl apply` or similar
172 # If helm doesn't correctly detect your ingress API version you can set it here.
173 # apiVersion: networking.k8s.io/v1
174
175## @section StatefulSet
176#
177## @param resources Kubernetes resources
178resources: {}
179 # We usually recommend not to specify default resources and to leave this as a conscious
180 # choice for the user. This also increases chances charts run on environments with little
181 # resources, such as Minikube. If you do want to specify resources, uncomment the following
182 # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
183 # limits:
184 # cpu: 100m
185 # memory: 128Mi
186 # requests:
187 # cpu: 100m
188 # memory: 128Mi
189
190## Use an alternate scheduler, e.g. "stork".
191## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
192##
193## @param schedulerName Use an alternate scheduler, e.g. "stork"
194schedulerName: ""
195
196## @param nodeSelector NodeSelector for the statefulset
197nodeSelector: {}
198
199## @param tolerations Tolerations for the statefulset
200tolerations: []
201
202## @param affinity Affinity for the statefulset
203affinity: {}
204
205## @param dnsConfig dnsConfig for the statefulset
206dnsConfig: {}
207
208## @param statefulset.env Additional environment variables to pass to containers
209## @param statefulset.terminationGracePeriodSeconds How long to wait until forcefully kill the pod
210## @param statefulset.labels Labels for the statefulset
211## @param statefulset.annotations Annotations for the Gitea StatefulSet to be created
212statefulset:
213 env: []
214 # - name: VARIABLE
215 # value: my-value
216 terminationGracePeriodSeconds: 60
217 labels: {}
218 annotations: {}
219
220## @section Persistence
221#
222## @param persistence.enabled Enable persistent storage
223## @param persistence.existingClaim Use an existing claim to store repository information
224## @param persistence.size Size for persistence to store repo information
225## @param persistence.accessModes AccessMode for persistence
226## @param persistence.labels Labels for the persistence volume claim to be created
227## @param persistence.annotations Annotations for the persistence volume claim to be created
228## @param persistence.storageClass Name of the storage class to use
229## @param persistence.subPath Subdirectory of the volume to mount at
230persistence:
231 enabled: true
232 existingClaim:
233 size: 10Gi
234 accessModes:
235 - ReadWriteOnce
236 labels: {}
237 annotations: {}
238 storageClass:
239 subPath:
240
241## @param extraVolumes Additional volumes to mount to the Gitea statefulset
242extraVolumes: []
243# - name: postgres-ssl-vol
244# secret:
245# secretName: gitea-postgres-ssl
246
247## @param extraContainerVolumeMounts Mounts that are only mapped into the Gitea runtime/main container, to e.g. override custom templates.
248extraContainerVolumeMounts: []
249
250## @param extraInitVolumeMounts Mounts that are only mapped into the init-containers. Can be used for additional preconfiguration.
251extraInitVolumeMounts: []
252
253## @deprecated The extraVolumeMounts variable has been split two:
254## - extraContainerVolumeMounts
255## - extraInitVolumeMounts
256## As an example, can be used to mount a client cert when connecting to an external Postgres server.
257## @param extraVolumeMounts **DEPRECATED** Additional volume mounts for init containers and the Gitea main container
258extraVolumeMounts: []
259# - name: postgres-ssl-vol
260# readOnly: true
261# mountPath: "/pg-ssl"
262
263## @section Init
264## @param initPreScript Bash shell script copied verbatim to the start of the init-container.
265initPreScript: ""
266#
267# initPreScript: |
268# mkdir -p /data/git/.postgresql
269# cp /pg-ssl/* /data/git/.postgresql/
270# chown -R git:git /data/git/.postgresql/
271# chmod 400 /data/git/.postgresql/postgresql.key
272
273# Configure commit/action signing prerequisites
274## @section Signing
275#
276## @param signing.enabled Enable commit/action signing
277## @param signing.gpgHome GPG home directory
278## @param signing.privateKey Inline private gpg key for signed Gitea actions
279## @param signing.existingSecret Use an existing secret to store the value of `signing.privateKey`
280signing:
281 enabled: false
282 gpgHome: /data/git/.gnupg
283 privateKey: ""
284 # privateKey: |-
285 # -----BEGIN PGP PRIVATE KEY BLOCK-----
286 # ...
287 # -----END PGP PRIVATE KEY BLOCK-----
288 existingSecret: ""
289
290## @section Gitea
291#
292gitea:
293 ## @param gitea.admin.username Username for the Gitea admin user
294 ## @param gitea.admin.existingSecret Use an existing secret to store admin user credentials
295 ## @param gitea.admin.password Password for the Gitea admin user
296 ## @param gitea.admin.email Email for the Gitea admin user
297 admin:
298 #existingSecret: gitea-admin-secret
299 existingSecret:
300 username: gitea_admin
301 password: r8sA8CPHD9!bt6d
302 email: "gitea@local.domain"
303
304 ## @param gitea.metrics.enabled Enable Gitea metrics
305 ## @param gitea.metrics.serviceMonitor.enabled Enable Gitea metrics service monitor
306 metrics:
307 enabled: false
308 serviceMonitor:
309 enabled: false
310 # additionalLabels:
311 # prometheus-release: prom1
312
313 ## @param gitea.ldap LDAP configuration
314 ldap: []
315 # - name: "LDAP 1"
316 # existingSecret:
317 # securityProtocol:
318 # host:
319 # port:
320 # userSearchBase:
321 # userFilter:
322 # adminFilter:
323 # emailAttribute:
324 # bindDn:
325 # bindPassword:
326 # usernameAttribute:
327 # publicSSHKeyAttribute:
328
329 # Either specify inline `key` and `secret` or refer to them via `existingSecret`
330 ## @param gitea.oauth OAuth configuration
331 oauth: []
332 # - name: 'OAuth 1'
333 # provider:
334 # key:
335 # secret:
336 # existingSecret:
337 # autoDiscoverUrl:
338 # useCustomUrls:
339 # customAuthUrl:
340 # customTokenUrl:
341 # customProfileUrl:
342 # customEmailUrl:
343
344 ## @param gitea.config Configuration for the Gitea server,ref: [config-cheat-sheet](https://docs.gitea.io/en-us/config-cheat-sheet/)
345 config: {}
346 # APP_NAME: "Gitea: Git with a cup of tea"
347 # RUN_MODE: dev
348 #
349 # server:
350 # SSH_PORT: 22
351 #
352 # security:
353 # PASSWORD_COMPLEXITY: spec
354
355 ## @param gitea.additionalConfigSources Additional configuration from secret or configmap
356 additionalConfigSources: []
357 # - secret:
358 # secretName: gitea-app-ini-oauth
359 # - configMap:
360 # name: gitea-app-ini-plaintext
361
362 ## @param gitea.additionalConfigFromEnvs Additional configuration sources from environment variables
363 additionalConfigFromEnvs: []
364
365 ## @param gitea.podAnnotations Annotations for the Gitea pod
366 podAnnotations: {}
367
368 ## @section LivenessProbe
369 #
370 ## @param gitea.livenessProbe.enabled Enable liveness probe
371 ## @param gitea.livenessProbe.tcpSocket.port Port to probe for liveness
372 ## @param gitea.livenessProbe.initialDelaySeconds Initial delay before liveness probe is initiated
373 ## @param gitea.livenessProbe.timeoutSeconds Timeout for liveness probe
374 ## @param gitea.livenessProbe.periodSeconds Period for liveness probe
375 ## @param gitea.livenessProbe.successThreshold Success threshold for liveness probe
376 ## @param gitea.livenessProbe.failureThreshold Failure threshold for liveness probe
377 # Modify the liveness probe for your needs or completely disable it by commenting out.
378 livenessProbe:
379 enabled: true
380 tcpSocket:
381 port: http
382 initialDelaySeconds: 200
383 timeoutSeconds: 1
384 periodSeconds: 10
385 successThreshold: 1
386 failureThreshold: 10
387
388 ## @section ReadinessProbe
389 #
390 ## @param gitea.readinessProbe.enabled Enable readiness probe
391 ## @param gitea.readinessProbe.tcpSocket.port Port to probe for readiness
392 ## @param gitea.readinessProbe.initialDelaySeconds Initial delay before readiness probe is initiated
393 ## @param gitea.readinessProbe.timeoutSeconds Timeout for readiness probe
394 ## @param gitea.readinessProbe.periodSeconds Period for readiness probe
395 ## @param gitea.readinessProbe.successThreshold Success threshold for readiness probe
396 ## @param gitea.readinessProbe.failureThreshold Failure threshold for readiness probe
397 # Modify the readiness probe for your needs or completely disable it by commenting out.
398 readinessProbe:
399 enabled: true
400 tcpSocket:
401 port: http
402 initialDelaySeconds: 5
403 timeoutSeconds: 1
404 periodSeconds: 10
405 successThreshold: 1
406 failureThreshold: 3
407
408 # # Uncomment the startup probe to enable and modify it for your needs.
409 ## @section StartupProbe
410 #
411 ## @param gitea.startupProbe.enabled Enable startup probe
412 ## @param gitea.startupProbe.tcpSocket.port Port to probe for startup
413 ## @param gitea.startupProbe.initialDelaySeconds Initial delay before startup probe is initiated
414 ## @param gitea.startupProbe.timeoutSeconds Timeout for startup probe
415 ## @param gitea.startupProbe.periodSeconds Period for startup probe
416 ## @param gitea.startupProbe.successThreshold Success threshold for startup probe
417 ## @param gitea.startupProbe.failureThreshold Failure threshold for startup probe
418 startupProbe:
419 enabled: false
420 tcpSocket:
421 port: http
422 initialDelaySeconds: 60
423 timeoutSeconds: 1
424 periodSeconds: 10
425 successThreshold: 1
426 failureThreshold: 10
427
428## @section Memcached
429#
430## @param memcached.enabled Memcached is loaded as a dependency from [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/memcached) if enabled in the values. Complete Configuration can be taken from their website.
431## @param memcached.service.port Port for Memcached
432memcached:
433 enabled: true
434 service:
435 port: 11211
436
437## @section PostgreSQL
438#
439## @param postgresql.enabled Enable PostgreSQL
440## @param postgresql.global.postgresql.postgresqlDatabase PostgreSQL database (overrides postgresqlDatabase)
441## @param postgresql.global.postgresql.postgresqlUsername PostgreSQL username (overrides postgresqlUsername)
442## @param postgresql.global.postgresql.postgresqlPassword PostgreSQL admin password (overrides postgresqlPassword)
443## @param postgresql.global.postgresql.servicePort PostgreSQL port (overrides service.port)
444## @param postgresql.persistence.size PVC Storage Request for PostgreSQL volume
445postgresql:
446 enabled: true
447 global:
448 postgresql:
449 postgresqlDatabase: gitea
450 postgresqlUsername: gitea
451 postgresqlPassword: gitea
452 servicePort: 5432
453 persistence:
454 size: 10Gi
455
456## @section MySQL
457#
458## @param mysql.enabled Enable MySQL
459## @param mysql.root.password Password for the root user. Ignored if existing secret is provided
460## @param mysql.db.user Username of new user to create.
461## @param mysql.db.password Password for the new user.Ignored if existing secret is provided
462## @param mysql.db.name Name for new database to create.
463## @param mysql.service.port Port to connect to MySQL service
464## @param mysql.persistence.size PVC Storage Request for MySQL volume
465mysql:
466 enabled: false
467 root:
468 password: gitea
469 db:
470 user: gitea
471 password: gitea
472 name: gitea
473 service:
474 port: 3306
475 persistence:
476 size: 10Gi
477
478## @section MariaDB
479#
480## @param mariadb.enabled Enable MariaDB
481## @param mariadb.auth.database Name of the database to create.
482## @param mariadb.auth.username Username of the new user to create.
483## @param mariadb.auth.password Password for the new user. Ignored if existing secret is provided
484## @param mariadb.auth.rootPassword Password for the root user.
485## @param mariadb.primary.service.port Port to connect to MariaDB service
486## @param mariadb.primary.persistence.size Persistence size for MariaDB
487mariadb:
488 enabled: false
489 auth:
490 database: gitea
491 username: gitea
492 password: gitea
493 rootPassword: gitea
494 primary:
495 service:
496 port: 3306
497 persistence:
498 size: 10Gi
499
500# By default, removed or moved settings that still remain in a user defined values.yaml will cause Helm to fail running the install/update.
501# Set it to false to skip this basic validation check.
502## @section Advanced
503## @param checkDeprecation Set it to false to skip this basic validation check.
504checkDeprecation: true
505