12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- # 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.
- # Done as many times as there are core machines, or just once if standalone.
- #
- # IMPORTANT - related to scaling, in order for the cluster to form correctly
- # there must be one of these per core node. As a result, we intentionally create
- # too many of them in the causal cluster scenario to ensure that when pods scale
- # up, there are extra discovery addresses to cover them.
- ##########################################################################
- {{- $dot := . }}
- {{- $servers := int .Values.core.numberOfServers }}
- {{- $instances := .Values.core.discoveryService.instances }}
- {{- if .Values.core.standalone }}
- {{- $instances := .Values.core.discoveryService.standaloneOnly }}
- {{- end }}
- {{- range $index, $value := $instances }}
- ---
- apiVersion: v1
- kind: Service
- metadata:
- name: discovery-{{ template "neo4j.fullname" $dot }}-{{ . }}
- labels:
- neo4j.com/coreindex: "{{ $index }}"
- neo4j.com/cluster: {{ template "neo4j.fullname" $dot }}
- neo4j.com/role: CORE
- neo4j.com/bolt: "false"
- neo4j.com/http: "false"
- app.kubernetes.io/managed-by: {{ $dot.Release.Service | quote }}
- app.kubernetes.io/instance: {{ $dot.Release.Name | quote }}
- helm.sh/chart: "{{ $dot.Chart.Name }}-{{ $dot.Chart.Version }}"
- app.kubernetes.io/name: {{ template "neo4j.name" $dot }}
- app.kubernetes.io/component: core
- {{- with $dot.Values.core.discoveryService.labels }}
- {{ toYaml . | nindent 4 }}
- {{- end }}
- {{- with $dot.Values.core.discoveryService.annotations }}
- annotations:
- {{- toYaml . | nindent 4 }}
- {{- end }}
- spec:
- {{- if (or (eq $dot.Values.core.discoveryService.type "ClusterIP") (empty $dot.Values.core.discoveryService.type)) }}
- type: ClusterIP
- clusterIP: None
- {{- else if eq $dot.Values.core.discoveryService.type "LoadBalancer" }}
- type: LoadBalancer
- {{- with $dot.Values.core.discoveryService.loadBalancerSourceRanges }}
- loadBalancerSourceRanges:
- {{ toYaml . | nindent 4 }}
- {{- end -}}
- {{- else }}
- type: {{ $dot.Values.core.discoveryService.type }}
- {{- end }}
- publishNotReadyAddresses: true
- ports:
- - name: tcp-discovery
- port: 5000
- targetPort: 5000
- protocol: TCP
- - name: tcp-transaction
- port: 6000
- targetPort: 6000
- protocol: TCP
- - name: tcp-raft
- port: 7000
- targetPort: 7000
- protocol: TCP
- - name: tcp-boltrouting
- port: 7688
- targetPort: 7688
- protocol: TCP
- {{- if $dot.Values.metrics.prometheus.enabled }}
- - name: tcp-prometheus
- port: 2004
- targetPort: 2004
- protocol: TCP
- {{- end }}
- {{- if $dot.Values.metrics.graphite.enabled }}
- - name: tcp-graphite
- port: 2003
- targetPort: 2003
- protocol: TCP
- {{- end }}
- {{- if $dot.Values.metrics.jmx.enabled }}
- - name: tcp-jmx
- port: 3637
- targetPort: 3637
- protocol: TCP
- {{- end }}
- selector:
- statefulset.kubernetes.io/pod-name: "{{ template "neo4j.fullname" $dot }}-core-{{ . }}"
- {{- end }}
|