Compare commits
19 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
5311243a6e | ||
|
1b21ce2810 | ||
|
4fdf4ef41b | ||
|
63bc10e393 | ||
|
fea1abddd9 | ||
|
33ee018b52 | ||
|
13e210c75f | ||
|
a26b4e10d1 | ||
|
76aee7b25b | ||
|
bf1f5601be | ||
|
729a412803 | ||
|
79690ee488 | ||
|
5398b99514 | ||
|
f62b82e956 | ||
|
ed0ce3d192 | ||
|
8f70a4b9a0 | ||
|
a4e5943ca5 | ||
|
fc9c49179f | ||
|
4c17cc839e |
@ -2,8 +2,8 @@ apiVersion: v2
|
||||
name: gitea
|
||||
description: Gitea Helm chart for Kubernetes
|
||||
type: application
|
||||
version: 1.5.4
|
||||
appVersion: 1.12.5
|
||||
version: 2.1.1
|
||||
appVersion: 1.13.0
|
||||
icon: https://docs.gitea.io/images/gitea.png
|
||||
|
||||
keywords:
|
||||
@ -14,6 +14,7 @@ keywords:
|
||||
- gitea
|
||||
- gogs
|
||||
sources:
|
||||
- https://gitea.com/gitea/helm-chart
|
||||
- https://github.com/go-gitea/gitea
|
||||
- https://hub.docker.com/r/gitea/gitea/
|
||||
maintainers:
|
||||
@ -41,5 +42,5 @@ dependencies:
|
||||
condition: gitea.database.builtIn.postgresql.enabled
|
||||
- name: mariadb
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 7.10.2
|
||||
version: 8.0.0
|
||||
condition: gitea.database.builtIn.mariadb.enabled
|
||||
|
85
README.md
85
README.md
@ -47,6 +47,56 @@ Gitea offers lots of configuration. This is fully described in the [Gitea Cheat
|
||||
repository.pull-request:
|
||||
WORK_IN_PROGRESS_PREFIXES: "WIP:,[WIP]:"
|
||||
```
|
||||
|
||||
### Default Configuration
|
||||
|
||||
This chart will set a few defaults in the gitea configuration based on the service and ingress settings. All defaults can be overwritten in gitea.config.
|
||||
|
||||
INSTALL_LOCK is always set to true, since we want to configure gitea with this helm chart and everything is taken care of.
|
||||
|
||||
*All default settings are made directly in the generated app.ini, not in the Values.*
|
||||
|
||||
#### Database defaults
|
||||
|
||||
If a builtIn database is enabled the database configuration is set automatically. For example postgresql builtIn which will appear in the app.ini as:
|
||||
|
||||
```
|
||||
[database]
|
||||
DB_TYPE = postgres
|
||||
HOST = RELEASE-NAME-postgresql.default.svc.cluster.local:5432
|
||||
NAME = gitea
|
||||
PASSWD = gitea
|
||||
USER = gitea
|
||||
```
|
||||
|
||||
#### Memcached defaults
|
||||
|
||||
Memcached is handled the exakt same way as database builtIn. Once memcached builtIn is enabled, this chart will generate the following part in the app.ini:
|
||||
|
||||
```
|
||||
[cache]
|
||||
ADAPTER = memcache
|
||||
ENABLED = true
|
||||
HOST = RELEASE-NAME-memcached.default.svc.cluster.local:11211
|
||||
```
|
||||
|
||||
#### Server defaults
|
||||
|
||||
The server defaults are a bit more complex.
|
||||
If ingress is enabled, the ROOT_URL, DOMAIN and SSH_DOMAIN will be set accordingly. HTTP_PORT always defaults to 3000 as well as SSH_PORT to 22.
|
||||
|
||||
```
|
||||
[server]
|
||||
APP_DATA_PATH = /data
|
||||
DOMAIN = git.example.com
|
||||
HTTP_PORT = 3000
|
||||
PROTOCOL = http
|
||||
ROOT_URL = http://git.example.com
|
||||
SSH_DOMAIN = git.example.com
|
||||
SSH_LISTEN_PORT = 22
|
||||
SSH_PORT = 22
|
||||
```
|
||||
|
||||
### External Database
|
||||
|
||||
An external Database can be used instead of builtIn postgresql or mysql.
|
||||
@ -82,6 +132,18 @@ By default port 3000 is used for web traffic and 22 for ssh. Those can be change
|
||||
|
||||
This helmchart automatically configures the clone urls to use the correct ports. You can change these ports by hand using the gitea.config dict. However you should know what you're doing.
|
||||
|
||||
### SSH and Ingress
|
||||
|
||||
If you're using ingress and wan't to use SSH, keep in mind, that ingress is not able to forward SSH Ports.
|
||||
You will need a LoadBalancer like metallb and a setting in your ssh service annotations.
|
||||
|
||||
```yaml
|
||||
service:
|
||||
ssh:
|
||||
annotations:
|
||||
metallb.universe.tf/allow-shared-ip: test
|
||||
```
|
||||
|
||||
### Cache
|
||||
|
||||
This helm chart can use a built in cache. The default is memcached from bitnami.
|
||||
@ -104,6 +166,7 @@ If the built in cache should not be used simply configure the cache in gitea.con
|
||||
INTERVAL: 60
|
||||
HOST: 127.0.0.1:9090
|
||||
```
|
||||
|
||||
### Persistence
|
||||
|
||||
Gitea will be deployed as a statefulset. By simply enabling the persistence and setting the storage class according to your cluster
|
||||
@ -193,13 +256,12 @@ Annotations can be added to the Gitea pod.
|
||||
|statefulset.terminationGracePeriodSeconds| Image to start for this pod | gitea/gitea |
|
||||
|statefulset.env | Additional environment variables to pass to containers | [] |
|
||||
|
||||
|
||||
### Image
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|---------------------|-----------------------------------|------------------------------|
|
||||
|image.repository| Image to start for this pod | gitea/gitea |
|
||||
|image.version| Image Version | 1.12.4 |
|
||||
|image.version| Image Version | 1.13.0 |
|
||||
|image.pullPolicy| Image pull policy | Always |
|
||||
|
||||
### Persistence
|
||||
@ -210,7 +272,7 @@ Annotations can be added to the Gitea pod.
|
||||
|persistence.existingClaim| Use an existing claim to store repository information | |
|
||||
|persistence.size| Size for persistence to store repo information | 10Gi |
|
||||
|persistence.accessModes|AccessMode for persistence||
|
||||
|persistence.storageClass|Storage class for repository persistence|standard|
|
||||
|persistence.storageClass|Storage class for repository persistence||
|
||||
|
||||
### Ingress
|
||||
|
||||
@ -262,7 +324,7 @@ The following parameters are the defaults set by this chart
|
||||
|mysql.mysqlPassword|Password for the new user. Ignored if existing secret is provided|gitea|
|
||||
|mysql.mysqlDatabase|Name for new database to create.|gitea|
|
||||
|mysql.service.port|Port to connect to mysql service|3306|
|
||||
|mysql.persistence|Persistence size for mysql |10Gi|
|
||||
|mysql.persistence.size|Persistence size for mysql |10Gi|
|
||||
|
||||
### Postgresql BuiltIn
|
||||
|
||||
@ -277,3 +339,18 @@ The following parameters are the defaults set by this chart
|
||||
|postgresql.global.postgresql.postgresqlPassword| PostgreSQL admin password (overrides postgresqlPassword)|gitea|
|
||||
|postgresql.global.postgresql.servicePort|PostgreSQL port (overrides service.port)|5432|
|
||||
|postgresql.persistence.size| PVC Storage Request for PostgreSQL volume |10Gi|
|
||||
|
||||
### MariaDB BuiltIn
|
||||
|
||||
MariaDB is loaded as a dependency from bitnami. Configuration can be found from this [Bitnami](https://github.com/bitnami/charts/tree/master/bitnami/mariadb)
|
||||
|
||||
The following parameters are the defaults set by this chart
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|---------------------|-----------------------------------|------------------------------|
|
||||
|mariadb.auth.username|Username of new user to create.|gitea|
|
||||
|mariadb.auth.password|Password for the new user. Ignored if existing secret is provided|gitea|
|
||||
|mariadb.auth.database|Name for new database to create.|gitea|
|
||||
|mariadb.auth.rootPassword|Password for the root user.|gitea|
|
||||
|mariadb.primary.service.port|Port to connect to mariadb service|3306|
|
||||
|mariadb.primary.persistence.size|Persistence size for mariadb |10Gi|
|
||||
|
@ -70,28 +70,28 @@ app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- else if .Values.gitea.database.builtIn.mysql.enabled -}}
|
||||
{{ .Values.mysql.service.port }}
|
||||
{{- else if .Values.gitea.database.builtIn.mariadb.enabled -}}
|
||||
{{ .Values.mariadb.service.port }}
|
||||
{{ .Values.mariadb.primary.service.port }}
|
||||
{{- else -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "postgresql.dns" -}}
|
||||
{{- printf "%s-postgresql.%s.svc.cluster.local:%g" .Release.Name .Release.Namespace .Values.postgresql.global.postgresql.servicePort -}}
|
||||
{{- printf "%s-postgresql.%s.svc.%s:%g" .Release.Name .Release.Namespace .Values.clusterDomain .Values.postgresql.global.postgresql.servicePort -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "mysql.dns" -}}
|
||||
{{- printf "%s-mysql.%s.svc.cluster.local:%g" .Release.Name .Release.Namespace .Values.mysql.service.port | trunc 63 | trimSuffix "-" -}}
|
||||
{{- printf "%s-mysql.%s.svc.%s:%g" .Release.Name .Release.Namespace .Values.clusterDomain .Values.mysql.service.port | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "mariadb.dns" -}}
|
||||
{{- printf "%s-mariadb.%s.svc.cluster.local:%g" .Release.Name .Release.Namespace .Values.mysql.service.port | trunc 63 | trimSuffix "-" -}}
|
||||
{{- printf "%s-mariadb.%s.svc.%s:%g" .Release.Name .Release.Namespace .Values.clusterDomain .Values.mariadb.primary.service.port | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "memcached.dns" -}}
|
||||
{{- printf "%s-memcached.%s.svc.cluster.local:%g" .Release.Name .Release.Namespace .Values.memcached.service.port | trunc 63 | trimSuffix "-" -}}
|
||||
{{- printf "%s-memcached.%s.svc.%s:%g" .Release.Name .Release.Namespace .Values.clusterDomain .Values.memcached.service.port | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "gitea.default_domain" -}}
|
||||
{{- printf "%s-gitea.%s.svc.cluster.local" (include "gitea.fullname" .) .Release.Namespace | trunc 63 | trimSuffix "-" -}}
|
||||
{{- printf "%s-gitea.%s.svc.%s" (include "gitea.fullname" .) .Release.Namespace .Values.clusterDomain | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
|
@ -62,6 +62,9 @@ stringData:
|
||||
{{- if not (hasKey .Values.gitea.config.server "SSH_LISTEN_PORT") -}}
|
||||
{{- $_ := set .Values.gitea.config.server "SSH_LISTEN_PORT" .Values.gitea.config.server.SSH_PORT -}}
|
||||
{{- end -}}
|
||||
{{- if not (hasKey .Values.gitea.config.server "APP_DATA_PATH") -}}
|
||||
{{- $_ := set .Values.gitea.config.server "APP_DATA_PATH" "/data" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* database default settings */ -}}
|
||||
{{- if .Values.gitea.database.builtIn.postgresql.enabled -}}
|
||||
@ -85,9 +88,9 @@ stringData:
|
||||
{{- if not (.Values.gitea.config.database.HOST) -}}
|
||||
{{- $_ := set .Values.gitea.config.database "HOST" (include "mariadb.dns" .) -}}
|
||||
{{- end -}}
|
||||
{{- $_ := set .Values.gitea.config.database "NAME" .Values.mariadb.db.name -}}
|
||||
{{- $_ := set .Values.gitea.config.database "USER" .Values.mariadb.db.user -}}
|
||||
{{- $_ := set .Values.gitea.config.database "PASSWD" .Values.mariadb.db.password -}}
|
||||
{{- $_ := set .Values.gitea.config.database "NAME" .Values.mariadb.auth.database -}}
|
||||
{{- $_ := set .Values.gitea.config.database "USER" .Values.mariadb.auth.username -}}
|
||||
{{- $_ := set .Values.gitea.config.database "PASSWD" .Values.mariadb.auth.password -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* cache default settings */ -}}
|
||||
|
@ -4,9 +4,16 @@ metadata:
|
||||
name: {{ include "gitea.fullname" . }}-http
|
||||
labels:
|
||||
{{- include "gitea.labels" . | nindent 4 }}
|
||||
annotations:
|
||||
{{- toYaml .Values.service.http.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.http.type }}
|
||||
{{- if and .Values.service.http.loadBalancerIP (eq .Values.service.http.type "LoadBalancer") }}
|
||||
loadBalancerIP: {{ .Values.service.http.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{ if eq .Values.service.http.type "ClusterIP" }}
|
||||
clusterIP: None
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
port: {{ .Values.service.http.port }}
|
||||
|
@ -1,7 +1,9 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "gitea.fullname" . -}}
|
||||
{{- $httpPort := .Values.service.http.port -}}
|
||||
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" -}}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress" -}}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{- else -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
@ -32,8 +34,16 @@ spec:
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
{{- if $.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
|
||||
service:
|
||||
name: {{ $fullName }}-http
|
||||
port:
|
||||
number: {{ $httpPort }}
|
||||
{{- else }}
|
||||
serviceName: {{ $fullName }}-http
|
||||
servicePort: {{ $httpPort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@ -18,7 +18,7 @@ stringData:
|
||||
set -x; \
|
||||
gitea migrate; \
|
||||
{{- if and .Values.gitea.admin.username .Values.gitea.admin.password }}
|
||||
gitea admin create-user --username {{ .Values.gitea.admin.username }} --password '{{ .Values.gitea.admin.password }}' --email {{ .Values.gitea.admin.email }} --admin \
|
||||
gitea admin create-user --username {{ .Values.gitea.admin.username }} --password '{{ .Values.gitea.admin.password }}' --email {{ .Values.gitea.admin.email }} --admin --must-change-password=false \
|
||||
|| \
|
||||
gitea admin change-password --username {{ .Values.gitea.admin.username }} --password '{{ .Values.gitea.admin.password }}'; \
|
||||
{{- end }}
|
||||
|
@ -5,7 +5,7 @@ metadata:
|
||||
labels:
|
||||
{{- include "gitea.labels" . | nindent 4 }}
|
||||
annotations:
|
||||
{{ toYaml .Values.service.ssh.annotations | indent 4 }}
|
||||
{{- toYaml .Values.service.ssh.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.ssh.type }}
|
||||
{{- if and .Values.service.ssh.loadBalancerIP (eq .Values.service.ssh.type "LoadBalancer") }}
|
||||
@ -16,7 +16,7 @@ spec:
|
||||
{{- end }}
|
||||
{{- if .Values.service.ssh.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.service.ssh.externalIPs | indent 4 }}
|
||||
{{- toYaml .Values.service.ssh.externalIPs | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.service.ssh.externalTrafficPolicy }}
|
||||
externalTrafficPolicy: {{ .Values.service.ssh.externalTrafficPolicy }}
|
||||
|
@ -109,7 +109,9 @@ spec:
|
||||
{{- range .Values.persistence.accessModes }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
storageClassName: {{ .Values.persistence.storageClass | default "standard" | quote }}
|
||||
{{- if .Values.persistence.storageClass }}
|
||||
storageClassName: {{ .Values.persistence.storageClass | quote }}
|
||||
{{- end }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.persistence.size | quote }}
|
||||
|
@ -11,5 +11,5 @@ spec:
|
||||
- name: wget
|
||||
image: busybox
|
||||
command: ['wget']
|
||||
args: ['{{ include "gitea.fullname" . }}:{{ .Values.service.port }}']
|
||||
args: ['{{ include "gitea.fullname" . }}-http:{{ .Values.service.http.port }}']
|
||||
restartPolicy: Never
|
21
values.yaml
21
values.yaml
@ -4,9 +4,11 @@
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
clusterDomain: cluster.local
|
||||
|
||||
image:
|
||||
repository: gitea/gitea
|
||||
version: 1.12.5
|
||||
version: 1.13.0
|
||||
pullPolicy: Always
|
||||
|
||||
imagePullSecrets: []
|
||||
@ -15,6 +17,7 @@ service:
|
||||
http:
|
||||
type: ClusterIP
|
||||
port: 3000
|
||||
annotations:
|
||||
ssh:
|
||||
type: ClusterIP
|
||||
port: 22
|
||||
@ -66,7 +69,6 @@ persistence:
|
||||
size: 10Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
storageClass: standard
|
||||
|
||||
gitea:
|
||||
admin:
|
||||
@ -140,12 +142,13 @@ mysql:
|
||||
size: 10Gi
|
||||
|
||||
mariadb:
|
||||
db:
|
||||
name: gitea
|
||||
user: gitea
|
||||
auth:
|
||||
database: gitea
|
||||
username: gitea
|
||||
password: gitea
|
||||
service:
|
||||
port: 3306
|
||||
master:
|
||||
rootPassword: gitea
|
||||
primary:
|
||||
service:
|
||||
port: 3306
|
||||
persistence:
|
||||
size: 10Gi
|
||||
size: 10Gi
|
||||
|
Reference in New Issue
Block a user