# Duplicate this file and put your customization here

##
## common settings for all apps
##

## NOTE - README table was generated with https://github.com/norwoodj/helm-docs

##
## environment -- **DEPRECATED - its not standard to pre construct urls this way.** The environment the app is running in. Used to construct dns hostnames (on aws only) and ports.
##
environment: "dev"
##
## DEPRECATED - its not standard to pre construct urls this way
## provider -- The cloud provider the app is running in. Used to construct dns hostnames (on aws only).
##
provider: aws
##
## dnsZone -- **DEPRECATED - its not standard to pre construct urls this way.** The dns zone (e.g. group-qa.myaccount.company.com) the app is running in. Used to construct dns hostnames (on aws only).
##
dnsZone: teamname.company.com
##
## dockerhubImagePath -- **DEPRECATED - this is not useful, it would be better to just allow the whole image to be swapped instead.** The image path for dockerhub.
##
dockerhubImagePath: amundsendev
##
## LONG_RANDOM_STRING -- A long random string. You should probably provide your own. This is needed for OIDC.
##
LONG_RANDOM_STRING: 1234

##
## nodeSelector -- amundsen application wide configuration of nodeSelector. This applies to search, metadata, frontend and neo4j. Elasticsearch has it's own configuation properties for this. [ref](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector)
##
nodeSelector: {}
##
## affinity -- amundsen application wide configuration of affinity. This applies to search, metadata, frontend and neo4j. Elasticsearch has it's own configuation properties for this. [ref](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity)
##
affinity: {}
##
## tolerations -- amundsen application wide configuration of tolerations. This applies to search, metadata, frontend and neo4j. Elasticsearch has it's own configuation properties for this. [ref](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature)
##
tolerations: []

##
## Configuration related to the search service.
##
search:
  ##
  ## search.serviceName -- The search service name.
  ##
  serviceName: search
  ##
  ## search.elasticsearchEndpoint -- The name of the service hosting elasticsearch on your cluster, if you bring your own. You should only need to change this, if you don't use the version in this chart.
  ##
  elasticsearchEndpoint:
  ##
  ## search.imageVersion -- The image version of the search container.
  ##
  imageVersion: 2.0.0
  ##
  ## search.replicas -- How many replicas of the search service to run.
  ##
  replicas: 1
  ##
  ## search.resources -- See pod resourcing [ref](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/)
  ##
  resources: {}
  #  limits:
  #    cpu: 2
  #    memory: 2Gi
  #  requests:
  #    cpu: 1
  #    memory: 1Gi

  ##
  ## search.nodeSelector -- Search pod specific nodeSelector.
  ##
  nodeSelector: {}
  ##
  ## search.affinity -- Search pod specific affinity.
  ##
  affinity: {}
  ##
  ## search.tolerations -- Search pod specific tolerations.
  ##
  tolerations: []

##
## Configuration related to the metadata service.
##
metadata:
  ##
  ## metadata.serviceName -- The metadata service name.
  ##
  serviceName: metadata
  ##
  ## metadata.neo4jEndpoint -- The name of the service hosting neo4j on your cluster, if you bring your own. You should only need to change this, if you don't use the version in this chart.
  ##
  neo4jEndpoint:
  ##
  ## metadata.imageVersion -- The image version of the metadata container.
  ##
  imageVersion: 2.0.0
  ##
  ## metadata.replicas -- How many replicas of the metadata service to run.
  ##
  replicas: 1
  ##
  ## metadata.resources -- See pod resourcing [ref](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/)
  ##
  resources: {}
  #  limits:
  #    cpu: 2
  #    memory: 2Gi
  #  requests:
  #    cpu: 1
  #    memory: 1Gi

  ##
  ## metadata.nodeSelector -- Metadata pod specific nodeSelector.
  ##
  nodeSelector: {}
  ##
  ## metadata.affinity -- Metadata pod specific affinity.
  ##
  affinity: {}
  ##
  ## metadata.tolerations -- Metadata pod specific tolerations.
  ##
  tolerations: []

##
## Configuration related to the frontEnd service.
##
frontEnd:
  ##
  ## frontEnd.serviceName -- The frontend service name.
  ##
  serviceName: frontend
  ##
  ## frontEnd.imageVersion -- The frontend version of the metadata container.
  ##
  imageVersion: 2.0.0
  ##
  ## frontEnd.servicePort -- The port the frontend service will be exposed on via the loadbalancer.
  ##
  servicePort: 80
  ##
  ## frontEnd.replicas -- How many replicas of the frontend service to run.
  ##
  replicas: 1

  ##
  ## frontEnd.oidcEnabled -- To enable auth via OIDC, set this to true.
  ##
  oidcEnabled: false
  ##
  ## frontEnd.createOidcSecret -- OIDC needs some configuration. If you want the chart to make your secrets, set this to true and set the next four values. If you don't want to configure your secrets via helm, you can still use the amundsen-oidc-config.yaml as a template
  ##
  createOidcSecret: false

  ##
  ## frontEnd.OIDC_CLIENT_ID -- The client id for OIDC.
  ##
  OIDC_CLIENT_ID:
  ##
  ## frontEnd.OIDC_CLIENT_SECRET -- The client secret for OIDC.
  ##
  OIDC_CLIENT_SECRET: ""
  ##
  ## frontEnd.OIDC_ORG_URL -- The organization URL for OIDC.
  ##
  OIDC_ORG_URL:
  ##
  ## frontEnd.OIDC_AUTH_SERVER_ID -- The authorization server id for OIDC.
  ##
  OIDC_AUTH_SERVER_ID:

  ##
  ## frontEnd.resources -- See pod resourcing [ref](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/)
  ##
  resources: {}
  #  limits:
  #    cpu: 2
  #    memory: 2Gi
  #  requests:
  #    cpu: 1
  #    memory: 1Gi

  ##
  ## frontEnd.nodeSelector -- Frontend pod specific nodeSelector.
  ##
  nodeSelector: {}
  ##
  ## frontEnd.affinity -- Frontend pod specific affinity.
  ##
  affinity: {}
  ##
  ## frontEnd.tolerations -- Frontend pod specific tolerations.
  ##
  tolerations: []

##
## Configuration related to neo4j.
##
neo4j:
  ##
  ## neo4j.enabled -- If neo4j is enabled as part of this chart, or not. Set this to false if you want to provide your own version.
  ##
  enabled: true
  ##
  ## neo4j.version -- The neo4j application version used by amundsen.
  ##
  version: 3.3.0

  ##
  ## neo4j.resources -- See pod resourcing [ref](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/)
  ##
  resources: {}
  #resources:
  #  limits:
  #    cpu: 2
  #    memory: 2Gi
  # requests:
  #    cpu: 1
  #    memory: 1Gi

  ##
  ## neo4j.config -- Neo4j application specific configuration. This type of configuration is why the charts/stable version is not used. See [ref](https://github.com/helm/charts/issues/21439)
  ##
  config:
    ##
    ## neo4j.config.dbms -- dbms config for neo4j
    ##
    dbms:
      ## neo4j.config.dbms.heap_initial_size -- the initial java heap for neo4j
      heap_initial_size: 23000m
      ## neo4j.config.dbms.heap_max_size -- the max java heap for neo4j
      heap_max_size: 23000m
      ## neo4j.config.dbms.pagecache_size -- the page cache size for neo4j
      pagecache_size: 26600m

  ##
  ## neo4j.persistence -- Neo4j persistence. Turn this on to keep your data between pod crashes, etc. This is also needed for backups.
  ##
  persistence: {}
  #  storageClass: gp2
  #  size: 10Gi

  ##
  ## neo4j.backup -- If enabled is set to true, make sure and set the s3 path as well.
  ##
  backup:
    # neo4j.backup.enabled - Whether to include the backup neo4j cron pod. If set to true, s3Path is required.
    enabled: false
    ##
    ## neo4j.backup.s3Path -- The s3path to write to for backups.
    ##
    s3Path: "s3://dev/null"
    ##
    ## neo4j.backup.schedule -- The schedule to run backups on. Defaults to hourly.
    ##
    schedule: "0 * * * *"

  ##
  ## neo4j.nodeSelector -- neo4j specific nodeSelector.
  ##
  nodeSelector: {}
  ##
  ## neo4j.affinity -- neo4j specific affinity.
  ##
  affinity: {}
  ##
  ## neo4j.tolerations -- neo4j specific tolerations.
  ##
  tolerations: []

##
## Configuration related to elasticsearch.
##
## To add values to dependent charts, prefix the value with the chart name (e.g. elasticsearch)
## By default, the ES chart runs with 3,3,2 nodes for master, data, client. Amundsen likely does not need so much,
## so, this has been tuned down to 1,1,1.
##
elasticsearch:
  # elasticsearch.enabled -- set this to false, if you want to provide your own ES instance.
  enabled: true
  cluster:
    env:
      ## elasticsearch.cluster.env.MINIMUM_MASTER_NODES -- required to match master.replicas
      MINIMUM_MASTER_NODES: 1
      ## elasticsearch.cluster.env.EXPECTED_MASTER_NODES -- required to match master.replicas
      EXPECTED_MASTER_NODES: 1
      ## elasticsearch.cluster.env.RECOVER_AFTER_MASTER_NODES -- required to match master.replicas
      RECOVER_AFTER_MASTER_NODES: 1
  master:
    ## elasticsearch.master.replicas -- only running amundsen on 1 master replica
    replicas: 1
  data:
    ## elasticsearch.data.replicas -- only running amundsen on 1 data replica
    replicas: 1
  client:
    ## elasticsearch.client.replicas -- only running amundsen on 1 client replica
    replicas: 1
  #  serviceType: LoadBalancer
  #  serviceAnnotations:
  #    external-dns.alpha.kubernetes.io/hostname: amundsen-elasticsearch.dev.teamname.company.com
  #    service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
  #    service.beta.kubernetes.io/aws-load-balancer-type: nlb
  #  nodeAffinity: high
  #  resources:
  #    limits:
  #      cpu: 2
  #      memory: 2Gi