# Default values for Neo4j. # This is a YAML-formatted file. # Declare name/value pairs to be passed into your templates. # name: value name: "neo4j" # Specs for the Neo4j docker image image: "neo4j" imageTag: "4.4.10-enterprise" imagePullPolicy: "IfNotPresent" # imagePullSecret: registry-secret acceptLicenseAgreement: "yes" podDisruptionBudget: {} # minAvailable: 2 # maxUnavailable: 1 ## Node labels for pod assignment ## ref: https://kubernetes.io/docs/user-guide/node-selection/ nodeSelector: {} ## Tolerations for pod assignment ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ tolerations: [] ## Affinity for pod assignment ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity affinity: {} ## Labels to be added to pods podLabels: {} ## Annotations to be added to pods podAnnotations: {} # Use password authentication authEnabled: true ## Specify password for neo4j user ## Defaults to a random 10-character alphanumeric string if not set and authEnabled is true neo4jPassword: insur132 ## Specify secret name containing the password for neo4j user # existingPasswordSecret ## Specify the key in existingPasswordSecret, in which the password is contained # existingPasswordSecretKey # Specify cluster domain (used eg. as suffix in the eventual internal hostnames) clusterDomain: "cluster.local" # Specs for the images used for running tests against the Helm package # https://github.com/mneedham/k8s-kubectl this is a general kubectl docker image testImage: "gcr.io/neo4j-helm/tester" # Whether or not to use APOC: https://neo4j.com/labs/apoc/ # If you do not want APOC, make the array empty [] plugins: "[\"apoc\"]" # The default name of the Neo4j database to use. # See https://neo4j.com/docs/operations-manual/current/manage-databases/introduction/#manage-databases-default defaultDatabase: "neo4j" # Cores core: # configMap: "my-custom-configmap" envFrom: [] resources: {} # limits: # cpu: "100m" # memory: 512Mi # requests: # cpu: "100m" # memory: 512Mi standalone: true numberOfServers: 1 persistentVolume: ## whether or not persistence is enabled ## enabled: true ## core server data Persistent Volume mount root path ## mountPath: /data ## core server data Persistent Volume size ## default value is large because in most cloud providers disk IOPS are proportional to disk size. Small disks frequently encounter IOPS throttling which ## is extremely detrimental to neo4j performance. size: 20Gi ## core server data Persistent Volume Storage Class ## If defined, storageClassName: ## 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: "-" ## Subdirectory of core server data Persistent Volume to mount ## Useful if the volume's root directory is not empty ## ## subPath: "" sidecarContainers: [] ## Additional containers to be added to the Neo4j core pod. # - name: my-sidecar # image: nginx:latest initContainers: [] ## init containers to run before the Neo4j core pod e.g. to install plugins ## They can also be used to restore from last available backup, to ensure that newly joining ## core members have less TX history to catch up on before joining the cluster. ## Note that this is specifically *not* needed for APOC, which is included by default. # - name: init-plugins # image: "appropriate/curl:latest" # imagePullPolicy: "IfNotPresent" # volumeMounts: # - name: plugins # mountPath: /plugins # command: # - "/bin/sh" # - "-c" # - | # curl -L https://somesite.com/path/to/plugin.jar -O # cp plugin.jar /plugins/ ## This service is intended for clients running in kubernetes to connect to ## the cluster. ## Default: ClusterIP (headless) service: #type: ClusterIP type: NodePort ports: http: 7474 tcp: 7687 https: 7473 tcps: 6362 nodePorts: http: 30870 tcp: 32713 https: "" tcps: "" annotations: {} labels: {} loadBalancerSourceRanges: [] ## This creates a discovery Service for each member in the core set, and ties ## to the use of the Neo4j discovery type "K8S" with the configured selectors. ## Default: ClusterIP (headless) discoveryService: type: ClusterIP annotations: {} labels: {} loadBalancerSourceRanges: [] # Controls how many services get created. Usually want to over-provision so cores can # scale up for things like rolling upgrades. instances: [0, 1, 2, 3, 4, 5] standaloneOnly: [0] ## specify additional volumes to mount in the core container, this can be used ## to specify additional storage of material or to inject files from ConfigMaps ## into the running container additionalVolumes: [] ## specify where the additional volumes are mounted in the core container additionalVolumeMounts: [] terminationGracePeriodSeconds: 300 restore: enabled: false image: gcr.io/neo4j-helm/restore imageTag: 4.4.10 secretName: null database: neo4j,system cloudProvider: gcp bucket: gs://test-neo4j timestamp: "latest" forceOverwrite: true purgeOnComplete: true # Read Replicas readReplica: # configMap: "my-custom-configmap" envFrom: [] resources: {} # limits: # cpu: "100m" # memory: 512Mi # requests: # cpu: "100m" # memory: 512Mi autoscaling: enabled: false targetAverageUtilization: 70 minReplicas: 1 maxReplicas: 3 numberOfServers: 0 persistentVolume: enabled: true mountPath: /data ## default value is large because in most cloud providers disk IOPS are proportional to disk size. Small disks frequently encounter IOPS throttling which ## is extremely detrimental to neo4j performance. size: 1Ti ## subPath: "" ## read replica data Persistent Volume Storage Class ## If defined, storageClassName: ## 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: "-" sidecarContainers: [] ## Additional containers to be added to the Neo4j replica pod. # - name: my-sidecar # image: nginx:latest initContainers: [] ## init containers to run before the Neo4j replica pod e.g. to install custom plugins ## They can also be used to restore from last available backup, to ensure that newly joining ## core members have less TX history to catch up on before joining the cluster. ## Note that this is specifically *not* needed for APOC, which is included by default. # - name: init-plugins # image: "appropriate/curl:latest" # imagePullPolicy: "IfNotPresent" # volumeMounts: # - name: plugins # mountPath: /plugins # command: # - "/bin/sh" # - "-c" # - | # curl -L https://somesite.com/path/to/plugin.jar -O # cp plugin.jar /plugins/ ## This service is intended for clients running in kubernetes to connect to ## the cluster replica set. ## Default: ClusterIP (headless) service: type: ClusterIP annotations: {} labels: {} loadBalancerSourceRanges: [] ## specify additional volumes to mount in the read replica container, this can ## be used to specify additional storage of material or to inject files from ## ConfigMaps into the running container additionalVolumes: [] ## specify where the additional volumes are mounted in the read replica ## container additionalVolumeMounts: [] terminationGracePeriodSeconds: 300 restore: enabled: false image: gcr.io/neo4j-helm/restore imageTag: 4.1.0-1 secretName: null database: neo4j,system cloudProvider: gcp bucket: gs://test-neo4j timestamp: "latest" forceOverwrite: true purgeOnComplete: true # Readiness probes will send a kill signal to the container if # it fails enough times. It's therefore very important # that initialDelaySeconds give the cluster time to form, because # if readiness probes start immediately after container start, # they may end up not forming quickly enough and getting killed. # DEPENDENCY: If you're running in standalone mode, the single machine # starts much faster. You could set initialDelaySeconds to something like # 30 and it would be OK for a stand-alone machine, but not for a cluster. readinessProbe: initialDelaySeconds: 120 failureThreshold: 3 timeoutSeconds: 2 periodSeconds: 10 tcpSocket: port: 7687 livenessProbe: initialDelaySeconds: 300 periodSeconds: 10 failureThreshold: 3 timeoutSeconds: 2 tcpSocket: port: 7687 # Startup probes are used to know when a container application has started. # If such a probe is configured, it disables liveness and readiness checks until it succeeds startupProbe: failureThreshold: 2000 periodSeconds: 25 tcpSocket: port: 7687 ## (OPTIONAL) Expose Neo4j metrics # The structure of this object matches the Neo4j config syntax # Found in chapter 13 of the operations manual: # https://neo4j.com/docs/operations-manual/current/monitoring/metrics/expose/ metrics: graphite: enabled: false server: localhost:2003 interval: 3s # This will be set to the app name later. # metrics.prefix=Neo4j_1 prometheus: ## Publish metrics for polling as Prometheus endpoint enabled: false endpoint: localhost:2004 csv: enabled: true interval: 3s jmx: enabled: true dbms: memory: use_memrec: false heap: initial_size: "" max_size: "" pagecache: size: "" transaction: memory_allocation: "" # maximum size of an individual transaction max_size: "" # maximum size of all transactions combined global_max_size: "" # Create Role and RoleBinding rbac: create: true serviceAccount: create: true annotations: {} # If empty, name will be generated from the chart's fullname name: securityContext: {} # Sets securityContext at the pod level. # The following values for securityContext are recommended but may depend on your specific volume and filesystem settings # runAsNonRoot: true # runAsUser: 7474 containerSecurityContext: {} # Sets securityContext at the container level. # We recommend to only use this if (pod) securityContext cannot be used. For example certain security options can only be set at this level. # allowPrivilegeEscalation: false