images:
  registry:
    # The registry name must NOT contain a trailing slash
    name:
    ImagePullSecret:
      # Leave blank, if no ImagePullSecret is needed.
      name: image-pull-secret
      # If set to false, the gerrit-slave chart expects either a ImagePullSecret
      # with the name configured above to be present on the cluster or that no
      # credentials are needed.
      create: false
      username:
      password:
  version: latest
  imagePullPolicy: Always


storageClasses:
  # Storage class used for storing logs and other pod-specific persisted data
  default:
    # If create is set to false, an existing StorageClass with the given
    # name is expected to exist in the cluster. Setting create to true will
    # create a storage class with the parameters given below.
    name: default
    create: false
    provisioner: kubernetes.io/aws-ebs
    reclaimPolicy: Delete
    # Use the parameters key to set all parameters needed for the provisioner
    parameters:
      type: gp2
      fsType: ext4
  # Storage class used for storing git repositories. Has to provide RWM access.
  shared:
    # If create is set to false, an existing StorageClass with RWM access
    # mode and the given name has to be provided.
    name: shared-storage
    create: false
    provisioner: nfs
    reclaimPolicy: Delete
    # Use the parameters key to set all parameters needed for the provisioner
    parameters:
      mountOptions: vers=4.1


gitRepositoryStorage:
  size: 5Gi


gitBackend:
  image: k8sgerrit/apache-git-http-backend

  replicas: 1

  resources:
    requests:
      cpu: 100m
      memory: 256Mi
    limits:
      cpu: 100m
      memory: 256Mi

  logging:
    persistence:
      enabled: true
      size: 1Gi

  service:
    type: LoadBalancer
    # At least one endpoint (HTTP and/or HTTPS) has to be enabled in the service!
    http:
      enabled: true
      port: 80
    https:
      enabled: false
      port: 443
      cert: |-
        -----BEGIN CERTIFICATE-----

        -----END CERTIFICATE-----
      key: |-
        -----BEGIN RSA PRIVATE KEY-----

        -----END RSA PRIVATE KEY-----

  ingress:
    enabled: false
    host:
    # Provide a second host name used as an alias. Leave empty, if no alias is
    # desired.
    alias:
    tls:
      enabled: false
      cert: |-
        -----BEGIN CERTIFICATE-----

        -----END CERTIFICATE-----
      key: |-
        -----BEGIN RSA PRIVATE KEY-----

        -----END RSA PRIVATE KEY-----

  credentials:
    # example: user: 'git'; password: 'secret'
    # run `man htpasswd` to learn about how to create .htpasswd-files
    htpasswd: git:$apr1$O/LbLKC7$Q60GWE7OcqSEMSfe/K8xU.
    # TODO: Create htpasswd-file on container startup instead and set user
    # and password in values.yaml.
    #user:
    #password:


gitGC:
  image: k8sgerrit/git-gc

  schedule: 0 6,18 * * *

  resources:
    requests:
      cpu: 100m
      memory: 256Mi
    limits:
      cpu: 100m
      memory: 256Mi

  logging:
    persistence:
      enabled: true
      size: 1Gi


gerritSlave:
  images:
    gerritInit: k8sgerrit/gerrit-init
    gerritSlave: k8sgerrit/gerrit-slave

  # If you only intend to test the Gerrit slave and do not wish to actually
  # replicate repositories and the database, activate this option to initialize
  # a new site.
  # NOTE: The database must not run in read-only mode for this to work!
  initializeTestSite:
    enabled: true

  # The memory limit has to be higher than the configures heap-size for Java!
  resources:
    requests:
      cpu: 1
      memory: 5Gi
    limits:
      cpu: 1
      memory: 6Gi

  logging:
    persistence:
      enabled: true
      size: 1Gi

  h2Database:
    persistence:
      enabled: true
      size: 1Gi

  service:
    type: NodePort
    http:
      port: 80

  ingress:
    host:
    # Provide a second host name used as an alias. Leave empty, if no alias is
    # desired.
    alias:
    tls:
      enabled: false
      cert: |-
        -----BEGIN CERTIFICATE-----

        -----END CERTIFICATE-----
      key: |-
        -----BEGIN RSA PRIVATE KEY-----

        -----END RSA PRIVATE KEY-----

  # `gerritSlave.keystore` expects a base64-encoded Java-keystore
  # Since Java keystores are binary files, adding the unencoded content and
  # automatic encoding using helm does not work here.
  keystore:

  config:
    # Some values are expected to have a specific value for the deployment installed
    # by this chart to work. These are marked with `# FIXED`.
    # Do not change them!
    gerrit: |-
      [gerrit]
        basePath = git # FIXED
        serverId = gerrit-slave-1
        # The canonical web URL has to be set to the Ingress host, if an Ingress
        # is used. If a LoadBalancer-service is used, this should be set to the
        # LoadBalancer's external IP. This can only be done manually after installing
        # the chart, when you know the external IP the LoadBalancer got from the
        # cluster.
        canonicalWebUrl = http://example.com/
        disableReverseDnsLookup = true
      [database]
        type = h2
      [index]
        type = LUCENE
      [auth]
        type = DEVELOPMENT_BECOME_ANY_ACCOUNT
      [httpd]
        # If using an ingress use proxy-http or proxy-https
        listenUrl = proxy-http://*:8080/
      [sshd]
        listenAddress = off
      [transfer]
        timeout = 120 s
      [user]
        name = Gerrit Code Review
        email = gerrit@example.com
        anonymousCoward = Unnamed User
      [cache]
        directory = cache
      [container]
        user = gerrit # FIXED
        slave = true # FIXED
        javaHome = /usr/lib/jvm/java-8-openjdk-amd64 # FIXED
        javaOptions = -Djavax.net.ssl.trustStore=/var/gerrit/etc/keystore # FIXED
        javaOptions = -Xms200m
        # Has to be lower than 'gerritSlave.resources.limits.memory'. Also
        # consider memories used by other applications in the container.
        javaOptions = -Xmx4g

    secure: |-
      # Database credentials should be the same as configured for the database
      # Gerrit-slave chart, if the database was installed using the chart.
      [database]
        username = gerrit
        password = secret

      # Password for the keystore added as value for 'gerritSlave.keystore'
      # Only needed, if SSL is enabled.
      #[httpd]
      #  sslKeyPassword = gerrit
