## Gitea image
## ref: https://hub.docker.com/r/gitea/gitea/tags/
##

tags:
  mariadb: true

images:
  registry: docker.io
  gitea: "gitea/gitea:1.13.1"
  memcached: "memcached:1.6.9-alpine"
  pullPolicy: IfNotPresent
  ## Optionally specify an array of imagePullSecrets.
  ## Secrets must be manually created in the namespace.
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  ##
  # pullSecrets:
  #   - myRegistryKeySecretName

# Allow configuration of lifecycle hooks
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/
lifecycle: {}
  # postStartCommand: []
  # preStopCommand: []

# Config for Gitea
#config:
#  # By default installer enabled
#  disableInstaller: false
#  # Set default user and password if installer disabled
#  # User gitea (name 'admin' reserved by gitea)
#  admin_user: gitea
#  admin_pass: password
#  # By default mailer disabled
#  mailer:
#    enabled: false
#    host: mail.example.com:465
#    skip_verify: false
#    is_tls_enabled: true
#    from: gitea@example.com
#    user: gitea
#    passwd: password

## Cache settings for memcache
memcached:
  maxItemMemory: 64
  verbosity: v
  extendedOptions: modern

## Configure the ingress resource that allows you to access the
## Gitea installation. Set up the URL
## ref: http://kubernetes.io/docs/user-guide/ingress/
##
## Configure the ingress resource that allows you to access the
## Gitea installation. Set up the URL
## ref: http://kubernetes.io/docs/user-guide/ingress/
##
ingress:
  ## Set to true to enable ingress record generation
  enabled: true

  ## Set this to true in order to add the corresponding annotations for cert-manager
  certManager: false

  ## When the ingress is enabled, a host pointing to this will be created
  hostname: gitea.local

  ## Ingress annotations done as key:value pairs
  ## For a full list of possible ingress annotations, please see
  ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
  ##
  ## If tls is set to true, annotation ingress.kubernetes.io/secure-backends: "true" will automatically be set
  ## If certManager is set to true, annotation kubernetes.io/tls-acme: "true" will automatically be set
  annotations: {}
  #  certmanager.k8s.io/cluster-issuer: letsencrypt-prod
  #  kubernetes.io/ingress.class: nginx

  ## The list of additional hostnames to be covered with this ingress record.
  ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
  # hosts:
  # - name: gitea.local
  #   path: /

  ## The tls configuration for the ingress
  ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
  ## Uncomment below to enable tls / https for let's encrypt / cert-manager
  # tls:    
  #  - hosts:    
  #    - gitea.local
  #    secretName: gitea.tls 

  secrets:
  ## If you're providing your own certificates, please use this to add the certificates as secrets
  ## key and certificate should start with -----BEGIN CERTIFICATE----- or
  ## -----BEGIN RSA PRIVATE KEY-----
  ##
  ## name should line up with a tlsSecret set further up
  ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
  ##
  ## It is also possible to create and manage the certificates outside of this helm chart
  ## Please see README.md for more information
  # - name: gitea.local-tls
  #   key:
  #   certificate:
  #

## This chart defaults to using an ingress for http, but change to LoadBalancer if using you cluster supports it
service:
  type: ClusterIP

  http:
    port: 3000
    ## Make the external port available
    # externalPort: 8082
    # externalHost: gitea.local
  ssh:
    port: 22
    ## If serving on a different external port used for determining the ssh url in the gui
    # externalPort: 22
    # externalHost: gitea.local
    # externalIPs: []

## Configure resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
  gitea:
    requests:
      memory: 500Mi
      cpu: 1000m
    limits:
      memory: 2Gi
      cpu: 1
  memcached:
    requests:
      memory: 64Mi
      cpu: 50m

## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
## ref:
##
persistence:
  enabled: false
  # existingGiteaClaim: gitea-data
  size: 10Gi
  #storageClass: "-"
  accessMode: ReadWriteMany
  ## addtional annotations for PVCs. Uncommenting will prevent the PVC from being deleted.
  annotations:
    "helm.sh/resource-policy": keep
## if you want to mount a volume directly without using a storageClass or pvcs
#  directGiteaVolumeMount:
#    glusterfs:
#      endpoints: "192.168.1.1 192.168.1.2 192.168.1.3"
#      path: giteaData
#  directPostgresVolumeMount:
#    glusterfs:
#      endpoints: "192.168.1.1 192.168.1.2 192.168.1.3"
#      path: giteaPostgresData

## LFS volume
lfs:
  enabled: false
  # existingGiteaClaim: gitea-lfs
  accessMode: ReadWriteMany
  size: 20Gi
  #storageClass: "-"
  annotations:
    "helm.sh/resource-policy": keep
## if you want to mount a volume directly without using a storageClass or pvcs
#  directGiteaVolumeMount:
#    glusterfs:
#      endpoints: "192.168.1.1 192.168.1.2 192.168.1.3"
#      path: giteaData
#  directPostgresVolumeMount:
#    glusterfs:
#      endpoints: "192.168.1.1 192.168.1.2 192.168.1.3"
#      path: giteaPostgresData



##
## MariaDB chart configuration
##
## https://github.com/helm/charts/blob/master/stable/mariadb/values.yaml
##
mariadb:
  ## Whether to deploy a mariadb server to satisfy the applications database requirements. To use an external database set this to false and configure the externalDatabase parameters
  enabled: true
  ## Create a database and a database user
  ## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-user-on-first-run
  ##
  auth:
    database: gitea
    username: gitea
    ## If the password is not specified, mariadb will generates a random password
    ##
    password: ThisIsMySuperSecretPassword

  ## MariaDB admin password
  ## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#setting-the-root-password-on-first-run
  ##
    rootPassword: ThisIsMySuperSecretPassword

  ## Enable persistence using Persistent Volume Claims
  ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
  ##
  primary:
    persistence:
      enabled: true
      ## mariadb 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)
      ##
      #storageClass: "-"
      accessMode: ReadWriteOnce
      size: 8Gi

## Connect to an external database instead
externalDB:
  enabled: false
  dbUser: "postgres"
  dbPassword: "<MY_PASSWORD>"
  dbHost: "service-name.namespace.svc.cluster.local" # or some external host
  dbPort: "5432"
  dbDatabase: "gitea"
  dbSSL: "disable"
  existingSecret:
    enabled: false
    secretName: nameofsecret
    usernameKey: username
    passwordKey: password


## Actual Gitea configuration (modified the default .ini file for Gitea)
## This will skip the initial installation screen. You must have a secretKey already defined
## and disableInstaller set to True
config:
##  secretKey: ThisIsMySuperSecretKeyThatsUsedInterally
  disableInstaller: false
  offlineMode: false
  requireSignin: false
  disableRegistration: true
  openidSignin: false

## Common helm annotations
## Node labels and tolerations for pod assignment
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature
nodeSelector: {}
tolerations: []
affinity: {}

## Annotations for the deployment and nodes.
deploymentAnnotations: {}
podAnnotations: {}