##
## Global options relating to Gradle Enterprise as a whole rather than a specific subsystem.
##
#
# global:
#

##
## Public URL
##
#
#   hostname: ge.example.com     # Hostname used to access the web interface by web browsers, etc. Required.
#   externalSSLTermination: true # If we are using HTTPS but not with termination in the built-in ingress or proxy. Default false.
#   externalPort: 8180           # Set to specify the external port the installation is available on. Only required if not using standard ports (80/443).
#

##
## Gradle Enterprise license settings
##
## Exactly one of these options must be set.
##
## If performing an online (ie not airgapped) installation that pulls images from the Gradle image registry,
## and you are setting the license via global.license.secretName, you will also need to set an imagePullSecret
## with the license in dockerconfigjson form. If setting the license via global.license.file, the image pull
## secret is generated automatically.
##
#
#   license:
#     file: ABCD1234                        # Full license file or Base64 data part of the license. Can also be set using --set-file global.license.file=/path/to/file
#     secretName: my-example-license-secret # Name of Secret that contains the license. License should be in the "license" key in the secret.
#

##
## Image pull settings
##
## For airgap installations, the registry and an image pull secret that can pull from that registry are required.
##
#
#   image:
#     registry: registry.example.com/gradle-enterprise # Registry to pull images from. Default registry.gradle.com/gradle-enterprise
#     imagePullSecret: my-example-image-pull-secret    #
#     tag: some-custom-tag                             # Tag to pull. Default is the Gradle Enterprise version.
#     imagePullPolicy: Always                          # Default IfNotPresent.
#

##
## Storage settings
##
## There are no defaults set. If your cluster has a default storage class, this will be used.
## Otherwise you will need to set the storage class to be used for data and logs, and also backups if
## using the embedded database.
##
#
#   storage:
#     data:
#       class: fast-storage
#     backup:
#       class: slow-cheap-storage
#     logs:
#       class: general-storage
#

##
## Openshift
##
## Set to true if Gradle Enterprise will be deployed in an OpenShift cluster.
##
#
#   openshiftInstallation: true # Default false
#

##
## Unattended installation
##
## These cover auto-configuring aspects of Gradle Enterprise that are controlled by the Administration section of the application.
## Contact Gradle Support for assistance with unattended installation.
##
#
#   unattended:
#     key: oijqefoijqOIQJFoijefoiqjfoij  # Encryption key for secrets in the configuration, if any. Default none.
#     configuration:
#       version: 3
#       systemPassword: "FEIpqflj265QEFq2efq54e"
#       auth:
#         anonymousRoles:
#         - buildScanView
#         - buildScanPublish
#       advanced:
#         jvmOptions:
#           app:
#             heapMemory: 7168
#

##
## Horizontal scaling
##
#
#   scaling:
#     replicas: 5                          # Default 1.
#   antiAffinity:
#     enabled: true                        # Default false
#     topologyKey: my-example-topology-key # Default 'kubernetes.io/hostname'
#

##
## Network policies
##
## Whether to create network policies to restrict traffic from Gradle Enterprise pods.
## By default these are not created.
##
#
#   networkPolicies: true # Default false.
#

##
## Node selection
##
#
#   nodeSelector:            # Default none
#     foo: bar
#   tolerations:
#     - key: "dedicated"     # Default none
#       operator: "Equal"
#       value: "node-taints"
#       effect: "NoSchedule"
#

##
## Pod annotations
##
## Set if you require additional pod annotations to support other Kubernetes tooling.
##
#
#   podAnnotations:
#     ann1: foo
#     ann2: 'bar.io/baz'
#

##
## End global section
##

##
## Database section
##
## By default, Gradle Enterprise will store data in an embedded database.
## To connect to a user-managed database, configure connection details here.
##
#
# database:
#   location: user-managed # Default "embedded"
#

##
## Embedded database resources and storage
##
## If using the embedded database, its resources can be configured here.
##
#
#   resources:
#     requests:
#       cpu: 500m    # Default 250m
#       memory: 2Gi  # Default 1Gi
#     limits:
#       cpu: 4       # Default 2
#       memory: 20Gi # Default 8Gi
#
#   storage:
#     data:
#       capacity: 500Gi # Default 250Gi
#     backup:
#       capacity: 750Gi # Default 250Gi
#

##
## User-managed database connection details
##
## Connection details can be set here directly or specified by a ConfigMap.
##
#
#   connection:
#     configMapName: my-example-database-connection-config-map
#     # OR
#     host: db.example.com                         # Required for user-managed database if connection secret not provided.
#     port: 5555                                   # Default 5432
#     databaseName: example_gradle_enterprise_prod # Required for user-managed database if connection secret not provided.
#     params: "?ssl=false"                         # No default.
#

##
## User-managed database credentials
##
## Credentials details can be set here directly or specified by secrets.
##
## Typically only a superuser account credential is required - Gradle Enterprise can then create other
## necessary accounts and schemas for the app automatically.
##
## It is also possible to instead set up the database using a script and only configure the more restricted
## application account credentials here.
##
#
#   credentials:
#
#     superuser:
#       secretName: my-example-db-superuser-secret
#       # OR
#       username: postgres
#       password: "superS3cret!"
#
#     # OR
#     app:
#       secretName: my-example-db-app-secret
#       # OR
#       password: "superS3cret!"
#     migrator:
#       secretName: my-example-db-migrator-secret
#       # OR
#       password: "superS3cret!"
#

##
## End database section
##

##
## Ingress section
##
## By default, Gradle Enterprise does not create an Ingress to route traffic.
## A built-in ingress can be enabled and configured here.
##
#
# ingress:
#   enabled: true                              # Default false
#   ingressClassName: my-example-ingress-class # No default, use the default ingress provided by the cluster, if any.
#   annotations:                               # Set for custom ingress annotations. Default none.
#     ann1: foo
#     ann2: 'bar.io/baz'

##
## Ingress SSL settings
##
## By default, the generated Ingress will have HTTPS support and use self-signed SSL certificates.
## Both of these can be changed. Certificates can be set directly here, set using
## --set-file ingress.ssl.key=keyfile --set-file ingress.ssl.cert=certfile
## or set in a Secret.
##
#
#   ssl:
#     enabled: false # Default true except if `global.externalSSLTermination: true`
#     # OR
#     key: |
#       -----BEGIN RSA PRIVATE KEY-----
#       MIIEpQIBAAKCAQEA4qV8JlqDMi7y85Ykq8dn7uIsi609D6KuFtlc+UvNYjatz0+u
#       ...
#       G7tI0qQ6F20e5R4tPpEDKCFZykyvgGMhfLzsvVlrgaVW8QbVK4YWNtQ=
#       -----END RSA PRIVATE KEY-----
#     cert: |
#       -----BEGIN CERTIFICATE-----
#       MIIDKjCCAhKgAwIBAgIRAPNTIHf6/oUuzMKm3ffGNOgwDQYJKoZIhvcNAQELBQAw
#       ..
#       z+P5RmRxU/kaaFB+Vuw1pRezbaAtZNorVgXnBwrdseY4zLGyhAcGcR9v+VtCiQ==
#       -----END CERTIFICATE-----
#     # OR
#     secretName: my-example-ingress-ssl-cert-secret
#

##
## End ingress section
##

##
## Proxy section
##
## The proxy is the main entrypoint for web-based traffic into Gradle Enterprise.
## If not using the default Ingress, you should route traffic to the gradle-proxy service
## using a service with an external ip, a node port, a load balancer, an OpenShift route
## or some other method.
## If the method used passes TCP traffic straight through to the proxy, and you want to use HTTPS (strongly recommended),
## enable it here, similar to the ingress ssl option above.
##
#
# proxy:
#   ssl:
#     enabled: true # Default false
#     # OR
#     key: |
#       -----BEGIN RSA PRIVATE KEY-----
#       MIIEpQIBAAKCAQEA4qV8JlqDMi7y85Ykq8dn7uIsi609D6KuFtlc+UvNYjatz0+u
#       ...
#       G7tI0qQ6F20e5R4tPpEDKCFZykyvgGMhfLzsvVlrgaVW8QbVK4YWNtQ=
#       -----END RSA PRIVATE KEY-----
#     cert: |
#       -----BEGIN CERTIFICATE-----
#       MIIDKjCCAhKgAwIBAgIRAPNTIHf6/oUuzMKm3ffGNOgwDQYJKoZIhvcNAQELBQAw
#       ..
#       z+P5RmRxU/kaaFB+Vuw1pRezbaAtZNorVgXnBwrdseY4zLGyhAcGcR9v+VtCiQ==
#       -----END CERTIFICATE-----
#     # OR
#     secretName: my-example-proxy-ssl-cert-secret

##
## Proxy resources
##
## Resources used by the proxy pod
##
#
#   resources:
#     requests:
#       cpu: 100m     # Default 250m
#       memory: 512Mi # Default 1Gi
#     limits:
#       cpu: 500m     # Default 2
#       memory: 1Gi   # Default 8Gi
#

##
## End proxy section
##

##
## Operator section
##
#
# operator:
#   resources:
#     requests:
#       cpu: 1      # Default 100m
#       memory: 1Gi # Default 1Gi
#     limits:
#       cpu: 4      # Default 2
#       memory: 2Gi # Default 2Gi
#

##
## End operator section
##

##
## Enterprise app section
##
#
# enterprise:
#   storage:
#     logs:
#       capacity: 400Mi # Default 200Mi. Mainly useful to increase if needing to capture a heap dump.
#   resources:
#     requests:
#       cpu: 2       # Default 1
#       memory: 8Gi  # Default 4Gi
#     limits:
#       cpu: 2       # Default 2
#       memory: 16Gi # Default 4Gi
#

##
## End enterprise app section
##

##
## Build cache node section
##
## The amount of storage allocated to the built-in build cache node can be set here.
##
#
# buildCacheNode:
#   storage:
#     data:
#       capacity: 100Gi # Default 10Gi
#
#   resources:
#     requests:
#       cpu: 1      # Default 100m
#       memory: 4Gi # Default 1Gi
#     limits:
#       cpu: 2      # Default 2
#       memory: 8Gi # Default 2Gi
#

##
## End build cache node  section
##

##
## Test distribution section
##
## The amount of storage allocated to the test distribution broker can be set here.
##
#
# testDistribution:
#   storage:
#     data:
#       capacity: 100Gi # Default 10Gi
#
#   resources:
#     requests:
#       cpu: 2       # Default 1
#       memory: 8Gi  # Default 2Gi
#     limits:
#       cpu: 2       # Default 2
#       memory: 16Gi # Default 2Gi
#

##
## End test distribution section
##

##
## Metrics section
##
## The amount of storage allocated to metrics can be set here.
##
#
# metrics:
#   storage:
#     data:
#       capacity: 100Gi # Default 10Gi
#
#   resources:
#     requests:
#       cpu: 1      # Default 50m
#       memory: 1Gi # Default 256Mi
#     limits:
#       cpu: 2      # Default 250m
#       memory: 2Gi # Default 500Mi
#

##
## End metrics section
##

##
## Authentication broker section
##
## Resources allocated to the authentication broker can be set here.
##
#
# authenticationBroker:
#   resources:
#     requests:
#       cpu: 1      # Default 100m
#       memory: 2Gi # Default 1Gi
#     limits:
#       cpu: 4      # Default 2
#       memory: 4Gi # Default 2Gi
#

##
## End authentication broker section
##
