From ad258bf3fef4992ea56074f13300de4a94fe39b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20J=C3=B6rg?= Date: Thu, 22 Jan 2026 12:31:52 +0100 Subject: [PATCH] feat: Add Gitea --- ...{forgejo.yaml.gotmpl => gitea.yaml.gotmpl} | 30 +++++----- shell.nix | 2 +- values/argo/manifests/sys-project.yaml | 4 +- .../{forgejo => gitea}/env-hel1.yaml.gotmpl | 2 +- values/{forgejo => gitea}/env.yaml.gotmpl | 2 +- .../{forgejo => gitea}/manifests/backup.yaml | 10 ++-- .../manifests/database.yaml | 6 +- .../manifests/dragonfly.yaml | 4 +- .../manifests/gitea.yaml} | 10 ++-- .../manifests/monitoring.yaml | 6 +- values/{forgejo => gitea}/values/values.yaml | 57 +++++++++++-------- 11 files changed, 72 insertions(+), 61 deletions(-) rename helmfile.d/{forgejo.yaml.gotmpl => gitea.yaml.gotmpl} (54%) rename values/{forgejo => gitea}/env-hel1.yaml.gotmpl (77%) rename values/{forgejo => gitea}/env.yaml.gotmpl (94%) rename values/{forgejo => gitea}/manifests/backup.yaml (81%) rename values/{forgejo => gitea}/manifests/database.yaml (56%) rename values/{forgejo => gitea}/manifests/dragonfly.yaml (92%) rename values/{forgejo/manifests/forgejo.yaml => gitea/manifests/gitea.yaml} (85%) rename values/{forgejo => gitea}/manifests/monitoring.yaml (63%) rename values/{forgejo => gitea}/values/values.yaml (73%) diff --git a/helmfile.d/forgejo.yaml.gotmpl b/helmfile.d/gitea.yaml.gotmpl similarity index 54% rename from helmfile.d/forgejo.yaml.gotmpl rename to helmfile.d/gitea.yaml.gotmpl index 935f8aed..c5ba6b75 100644 --- a/helmfile.d/forgejo.yaml.gotmpl +++ b/helmfile.d/gitea.yaml.gotmpl @@ -2,36 +2,36 @@ bases: - ../envs/environments.yaml.gotmpl repositories: -- name: forgejo +- name: gitea oci: true - url: code.forgejo.org/forgejo-helm + url: docker.gitea.com/charts commonLabels: tier: system releases: -- name: forgejo - namespace: forgejo - chart: forgejo/forgejo - version: 16.0.1 - condition: forgejo.enabled +- name: gitea + namespace: gitea + chart: gitea/gitea + version: 12.4.0 + condition: gitea.enabled values: - - ../values/forgejo/values/values.yaml - - ../values/forgejo/values/values-{{ .Environment.Name }}.yaml + - ../values/gitea/values/values.yaml + - ../values/gitea/values/values-{{ .Environment.Name }}.yaml postRenderer: ../bin/kustomizer postRendererArgs: - - ../values/forgejo/kustomize/{{ .Environment.Name }} + - ../values/gitea/kustomize/{{ .Environment.Name }} missingFileHandler: Info - name: manifests - namespace: forgejo + namespace: gitea chart: manifests - condition: forgejo.enabled + condition: gitea.enabled missingFileHandler: Info values: - ../values/env.yaml - ../values/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml - - ../values/forgejo/env.yaml.gotmpl - - ../values/forgejo/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml.gotmpl + - ../values/gitea/env.yaml.gotmpl + - ../values/gitea/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml.gotmpl hooks: - events: [ prepare, cleanup ] showlogs: true @@ -40,5 +40,5 @@ releases: - '{{`{{ if eq .Event.Name "prepare" }}build{{ else }}clean{{ end }}`}}' - '{{`{{ .Release.Chart }}`}}' - '{{`{{ .Environment.Name }}`}}' - - ../values/forgejo/manifests + - ../values/gitea/manifests - manifests diff --git a/shell.nix b/shell.nix index d533e73f..d38ae53c 100644 --- a/shell.nix +++ b/shell.nix @@ -38,7 +38,7 @@ pkgs.mkShellNoCC { # cmctl # rclone # velero - # renovate + renovate # dapr dapr-cli diff --git a/values/argo/manifests/sys-project.yaml b/values/argo/manifests/sys-project.yaml index 21ca4402..c8651177 100644 --- a/values/argo/manifests/sys-project.yaml +++ b/values/argo/manifests/sys-project.yaml @@ -88,7 +88,7 @@ spec: server: https://kubernetes.default.svc - namespace: uptime server: https://kubernetes.default.svc - - namespace: forgejo + - namespace: gitea server: https://kubernetes.default.svc sourceRepos: - https://argoproj.github.io/argo-helm @@ -125,7 +125,7 @@ spec: - ghcr.io/slinkyproject/charts/slurm-operator-crds - ghcr.io/spegel-org/helm-charts - ghcr.io/dragonflydb/dragonfly-operator/helm/dragonfly-operator - - code.forgejo.org/forgejo-helm + - docker.gitea.com - https://operator.mariadb.com/mariadb-enterprise-operator - https://operator.mariadb.com - https://ot-container-kit.github.io/helm-charts diff --git a/values/forgejo/env-hel1.yaml.gotmpl b/values/gitea/env-hel1.yaml.gotmpl similarity index 77% rename from values/forgejo/env-hel1.yaml.gotmpl rename to values/gitea/env-hel1.yaml.gotmpl index 548b4ea1..228cb033 100644 --- a/values/forgejo/env-hel1.yaml.gotmpl +++ b/values/gitea/env-hel1.yaml.gotmpl @@ -1,3 +1,3 @@ -forgejo: +gitea: enabled: true backup: true diff --git a/values/forgejo/env.yaml.gotmpl b/values/gitea/env.yaml.gotmpl similarity index 94% rename from values/forgejo/env.yaml.gotmpl rename to values/gitea/env.yaml.gotmpl index bc5f9cf9..40c30c8f 100644 --- a/values/forgejo/env.yaml.gotmpl +++ b/values/gitea/env.yaml.gotmpl @@ -1,4 +1,4 @@ -forgejo: +gitea: enabled: false backup: false autosync: {{ if eq .Environment.Name "prod" }} false {{ else }} true {{ end }} diff --git a/values/forgejo/manifests/backup.yaml b/values/gitea/manifests/backup.yaml similarity index 81% rename from values/forgejo/manifests/backup.yaml rename to values/gitea/manifests/backup.yaml index 696d4bae..14ba5807 100644 --- a/values/forgejo/manifests/backup.yaml +++ b/values/gitea/manifests/backup.yaml @@ -2,11 +2,11 @@ apiVersion: barmancloud.cnpg.io/v1 kind: ObjectStore metadata: name: hel-store - namespace: forgejo + namespace: gitea spec: retentionPolicy: "7d" configuration: - destinationPath: s3://obx-cnpg/hel1/forgejo-db + destinationPath: s3://obx-cnpg/hel1/gitea-db endpointURL: https://hel1.your-objectstorage.com s3Credentials: accessKeyId: @@ -21,13 +21,13 @@ spec: apiVersion: postgresql.cnpg.io/v1 kind: ScheduledBackup metadata: - name: forgejo-db - namespace: forgejo + name: gitea-db + namespace: gitea spec: schedule: "0 0 1 * * *" backupOwnerReference: self cluster: - name: forgejo-db + name: gitea-db method: plugin pluginConfiguration: name: barman-cloud.cloudnative-pg.io diff --git a/values/forgejo/manifests/database.yaml b/values/gitea/manifests/database.yaml similarity index 56% rename from values/forgejo/manifests/database.yaml rename to values/gitea/manifests/database.yaml index 88d6d3e9..0475475e 100644 --- a/values/forgejo/manifests/database.yaml +++ b/values/gitea/manifests/database.yaml @@ -1,11 +1,11 @@ apiVersion: postgresql.cnpg.io/v1 kind: Cluster metadata: - name: forgejo-db - namespace: forgejo + name: gitea-db + namespace: gitea spec: instances: 1 - imageName: ghcr.io/cloudnative-pg/postgresql:18-minimal-trixie + imageName: ghcr.io/cloudnative-pg/postgresql:18-system-trixie storage: resizeInUseVolumes: true size: 10Gi diff --git a/values/forgejo/manifests/dragonfly.yaml b/values/gitea/manifests/dragonfly.yaml similarity index 92% rename from values/forgejo/manifests/dragonfly.yaml rename to values/gitea/manifests/dragonfly.yaml index 46eef34c..516f0ef3 100644 --- a/values/forgejo/manifests/dragonfly.yaml +++ b/values/gitea/manifests/dragonfly.yaml @@ -1,8 +1,8 @@ apiVersion: dragonflydb.io/v1alpha1 kind: Dragonfly metadata: - name: dragonfly-forgejo - namespace: forgejo + name: dragonfly-gitea + namespace: gitea spec: replicas: 1 resources: diff --git a/values/forgejo/manifests/forgejo.yaml b/values/gitea/manifests/gitea.yaml similarity index 85% rename from values/forgejo/manifests/forgejo.yaml rename to values/gitea/manifests/gitea.yaml index 4ffe9c58..e6ca7980 100644 --- a/values/forgejo/manifests/forgejo.yaml +++ b/values/gitea/manifests/gitea.yaml @@ -2,7 +2,7 @@ apiVersion: argoproj.io/v1alpha1 kind: Application metadata: - name: forgejo + name: gitea namespace: argocd annotations: argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true @@ -10,7 +10,7 @@ metadata: - resources-finalizer.argocd.argoproj.io spec: destination: - namespace: forgejo + namespace: gitea server: https://kubernetes.default.svc project: sys sources: @@ -23,9 +23,9 @@ spec: - name: CLUSTER_NAME value: {{ .Values.clusterConfig.cluster }} - name: HELMFILE_ENVIRONMENT - value: {{ .Values.forgejo.env }} + value: {{ .Values.gitea.env }} - name: HELMFILE_FILE_PATH - value: forgejo.yaml.gotmpl + value: gitea.yaml.gotmpl syncPolicy: managedNamespaceMetadata: labels: @@ -34,7 +34,7 @@ spec: - CreateNamespace=true - ApplyOutOfSyncOnly=true # - ServerSideApply=true - {{- if .Values.forgejo.autosync }} + {{- if .Values.gitea.autosync }} automated: prune: true # selfHeal: false diff --git a/values/forgejo/manifests/monitoring.yaml b/values/gitea/manifests/monitoring.yaml similarity index 63% rename from values/forgejo/manifests/monitoring.yaml rename to values/gitea/manifests/monitoring.yaml index 0f9b6da6..c2b6202c 100644 --- a/values/forgejo/manifests/monitoring.yaml +++ b/values/gitea/manifests/monitoring.yaml @@ -1,11 +1,11 @@ apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: - name: forgejo-db-monitor - namespace: forgejo + name: gitea-db-monitor + namespace: gitea spec: selector: matchLabels: - cnpg.io/cluster: forgejo-db + cnpg.io/cluster: gitea-db podMetricsEndpoints: - port: metrics diff --git a/values/forgejo/values/values.yaml b/values/gitea/values/values.yaml similarity index 73% rename from values/forgejo/values/values.yaml rename to values/gitea/values/values.yaml index 7f289649..3c17d591 100644 --- a/values/forgejo/values/values.yaml +++ b/values/gitea/values/values.yaml @@ -1,37 +1,43 @@ replicaCount: 1 image: - registry: code.forgejo.org - repository: forgejo/forgejo + registry: "docker.gitea.com" + repository: gitea resources: requests: cpu: 200m memory: 512Mi +strategy: + type: Recreate + rollingUpdate: + maxSurge: "100%" + maxUnavailable: 0 + gitea: metrics: enabled: true serviceMonitor: enabled: true config: - APP_NAME: 'Forgejo: With a cup of tea.' + APP_NAME: 'Gitea: With a cup of tea.' cache: ENABLED: true ADAPTER: redis - HOST: redis://dragonfly-forgejo.forgejo.svc:6379/0 + HOST: redis://dragonfly-gitea.gitea.svc:6379/0 ITEM_TTL: "72h" # increased from default 16h session: PROVIDER: redis - PROVIDER_CONFIG: redis://dragonfly-forgejo.forgejo.svc:6379/1 + PROVIDER_CONFIG: redis://dragonfly-gitea.gitea.svc:6379/1 queue: TYPE: redis - CONN_STR: redis://dragonfly-forgejo.forgejo.svc:6379/2 + CONN_STR: redis://dragonfly-gitea.gitea.svc:6379/2 storage: STORAGE_TYPE: minio MINIO_ENDPOINT: hel1.your-objectstorage.com MINIO_USE_SSL: true MINIO_LOCATION: hel1 - MINIO_BUCKET: obx-forgejo + MINIO_BUCKET: obx-gitea security: INSTALL_LOCK: true service: @@ -58,44 +64,44 @@ gitea: oauth: - name: 'Oceanbox' provider: 'openidConnect' - existingSecret: forgejo-oauth-oceanbox + existingSecret: gitea-oauth-oceanbox autoDiscoverUrl: 'https://login.microsoftonline.com/3f737008-e9a0-4485-9d27-40329d288089/.well-known/openid-configuration' scopes: 'openid profile email groups' groupClaimName: 'groups' adminGroup: '/oceanbox/devel' restrictedGroup: '' additionalConfigFromEnvs: - - name: FORGEJO__STORAGE__MINIO_ACCESS_KEY_ID + - name: GITEA__STORAGE__MINIO_ACCESS_KEY_ID valueFrom: secretKeyRef: - name: forgejo-s3 + name: gitea-s3 key: access_key - - name: FORGEJO__STORAGE__MINIO_SECRET_ACCESS_KEY + - name: GITEA__STORAGE__MINIO_SECRET_ACCESS_KEY valueFrom: secretKeyRef: - name: forgejo-s3 + name: gitea-s3 key: secret_key - - name: FORGEJO__DATABASE__PASSWD + - name: GITEA__DATABASE__PASSWD valueFrom: secretKeyRef: - name: forgejo-db-app + name: gitea-db-app key: password - - name: FORGEJO__DATABASE__NAME + - name: GITEA__DATABASE__NAME valueFrom: secretKeyRef: - name: forgejo-db-app + name: gitea-db-app key: dbname - - name: FORGEJO__DATABASE__USER + - name: GITEA__DATABASE__USER valueFrom: secretKeyRef: - name: forgejo-db-app + name: gitea-db-app key: user - - name: FORGEJO__DATABASE__HOST + - name: GITEA__DATABASE__HOST valueFrom: secretKeyRef: - name: forgejo-db-app + name: gitea-db-app key: host - - name: FORGEJO__DATABASE__DB_TYPE + - name: GITEA__DATABASE__DB_TYPE value: postgres ingress: @@ -113,13 +119,13 @@ ingress: paths: - backend: service: - name: forgejo-http + name: gitea-http port: number: 3000 path: / pathType: ImplementationSpecific tls: - - secretName: forgejo-tls + - secretName: gitea-tls hosts: - git.svc.hel1.obx @@ -131,6 +137,11 @@ ingress: # load-balancer.hetzner.cloud/location: hel1 # load-balancer.hetzner.cloud/uses-proxyprotocol: 'false' +postgresql-ha: + enabled: false +valkey-cluster: + enabled: false + persistence: enabled: true size: 1Gi