Skip to content

Commit 09b9e40

Browse files
authored
feat: add distributed option to helm-chart and update console (#749)
1 parent c79b255 commit 09b9e40

16 files changed

+313
-52
lines changed

helm-releases/operator-0.0.3.tgz

0 Bytes
Binary file not shown.

helm-releases/parseable-1.0.0.tgz

46.6 KB
Binary file not shown.

helm/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ apiVersion: v2
22
name: parseable
33
description: Helm chart for Parseable Server
44
type: application
5-
version: 0.9.0
6-
appVersion: "v0.9.0"
5+
version: 1.0.0
6+
appVersion: "v1.0.0"
77
maintainers:
88
- name: Parseable Team
99

helm/templates/_helpers.tpl

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,19 @@ Common labels
3535
*/}}
3636
{{- define "parseable.labels" -}}
3737
helm.sh/chart: {{ include "parseable.chart" . }}
38-
{{ include "parseable.selectorLabels" . }}
38+
{{ include "parseable.labelsSelector" . }}
39+
{{- if .Chart.AppVersion }}
40+
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
41+
{{- end }}
42+
app.kubernetes.io/managed-by: {{ .Release.Service }}
43+
{{- end }}
44+
45+
{{/*
46+
Ingestor Labels
47+
*/}}
48+
{{- define "parseable.ingestorLabels" -}}
49+
helm.sh/chart: {{ include "parseable.chart" . }}
50+
{{ include "parseable.ingestorLabelsSelector" . }}
3951
{{- if .Chart.AppVersion }}
4052
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
4153
{{- end }}
@@ -45,9 +57,18 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
4557
{{/*
4658
Selector labels
4759
*/}}
48-
{{- define "parseable.selectorLabels" -}}
60+
{{- define "parseable.labelsSelector" -}}
61+
app.kubernetes.io/name: {{ include "parseable.name" . }}
62+
app.kubernetes.io/instance: {{ .Release.Name }}
63+
{{- end }}
64+
65+
{{/*
66+
Ingestor Labels Selector for ingestor statefulset
67+
*/}}
68+
{{- define "parseable.ingestorLabelsSelector" -}}
4969
app.kubernetes.io/name: {{ include "parseable.name" . }}
5070
app.kubernetes.io/instance: {{ .Release.Name }}
71+
app.parseable.com/type: ingestor
5172
{{- end }}
5273

5374
{{/*

helm/templates/ingestor-service.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{{- if eq .Values.parseable.highAvailability.enabled true }}
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: {{ include "parseable.fullname" . }}-ingestor-service
6+
namespace: {{ .Release.Namespace }}
7+
spec:
8+
type: {{ $.Values.parseable.highAvailability.ingestor.service.type }}
9+
ports:
10+
- port: {{ $.Values.parseable.highAvailability.ingestor.service.port }}
11+
targetPort: {{ .Values.parseable.highAvailability.ingestor.port }}
12+
protocol: TCP
13+
selector:
14+
{{- include "parseable.ingestorLabelsSelector" . | nindent 4 }}
15+
{{- end }}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
{{- if eq .Values.parseable.highAvailability.enabled true }}
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: {{ include "parseable.fullname" . }}-ingestor-headless
6+
namespace: {{ .Release.Namespace }}
7+
spec:
8+
ports:
9+
- port: 8000
10+
name: "parseable-port"
11+
clusterIP: None
12+
selector:
13+
{{- include "parseable.ingestorLabelsSelector" . | nindent 4 }}
14+
---
15+
apiVersion: apps/v1
16+
kind: StatefulSet
17+
metadata:
18+
name: {{ include "parseable.fullname" . }}-ingestor
19+
namespace: {{ .Release.Namespace }}
20+
labels:
21+
{{- include "parseable.ingestorLabels" . | nindent 4 }}
22+
spec:
23+
selector:
24+
matchLabels:
25+
{{- include "parseable.ingestorLabelsSelector" . | nindent 6 }}
26+
serviceName: {{ include "parseable.fullname" . }}-headless
27+
replicas: {{ .Values.parseable.highAvailability.ingestor.count }}
28+
minReadySeconds: 2
29+
template:
30+
metadata:
31+
labels:
32+
{{- include "parseable.ingestorLabelsSelector" . | nindent 8 }}
33+
spec:
34+
terminationGracePeriodSeconds: 10
35+
containers:
36+
- name: {{ .Chart.Name }}
37+
securityContext:
38+
{{- toYaml .Values.parseable.securityContext | nindent 8 }}
39+
image: {{ .Values.parseable.image.repository }}:{{ .Values.parseable.image.tag | default .Chart.AppVersion }}
40+
imagePullPolicy: {{ .Values.parseable.image.pullPolicy }}
41+
command: ["/bin/bash", "-c"]
42+
args: ["parseable s3-store --ingestor-endpoint=${HOSTNAME}.{{ include "parseable.fullname" . }}-ingestor-headless.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.parseable.highAvailability.ingestor.port }}"]
43+
env:
44+
{{- range $key, $value := .Values.parseable.highAvailability.ingestor.env }}
45+
- name: {{ $key }}
46+
value: {{ tpl $value $ | quote }}
47+
{{- end }}
48+
{{- range $secret := .Values.parseable.s3ModeSecret }}
49+
{{- range $key := $secret.keys }}
50+
{{- $envPrefix := $secret.prefix | default "" | upper }}
51+
{{- $envKey := $key | upper | replace "." "_" | replace "-" "_" }}
52+
- name: {{ $envPrefix }}{{ $envKey }}
53+
valueFrom:
54+
secretKeyRef:
55+
name: {{ $secret.name }}
56+
key: {{ $key }}
57+
{{- end }}
58+
{{- end }}
59+
- name: P_MODE
60+
value: "ingest"
61+
ports:
62+
- containerPort: {{ .Values.parseable.highAvailability.ingestor.port }}
63+
resources:
64+
{{- toYaml .Values.parseable.highAvailability.ingestor.resources | nindent 12 }}
65+
volumeMounts:
66+
## No data volume for ingestor
67+
- mountPath: "/parseable/staging"
68+
name: stage-volume
69+
volumeClaimTemplates:
70+
- metadata:
71+
name: stage-volume
72+
spec:
73+
accessModes: [ "ReadWriteOnce" ]
74+
storageClassName: "do-block-storage"
75+
resources:
76+
requests:
77+
storage: 10Gi
78+
{{- end }}

helm/templates/logstream-job.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ spec:
1515
{{- toYaml . | nindent 8 }}
1616
{{- end }}
1717
labels:
18-
{{- include "parseable.selectorLabels" . | nindent 8 }}
18+
{{- include "parseable.labelsSelector" . | nindent 8 }}
1919
spec:
2020
restartPolicy: OnFailure
2121
securityContext:
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
{{- if eq .Values.parseable.highAvailability.enabled true }}
2+
apiVersion: apps/v1
3+
kind: Deployment
4+
metadata:
5+
name: {{ include "parseable.fullname" . }}
6+
namespace: {{ .Release.Namespace }}
7+
labels:
8+
{{- include "parseable.labels" . | nindent 4 }}
9+
spec:
10+
replicas: 1
11+
selector:
12+
matchLabels:
13+
{{- include "parseable.labelsSelector" . | nindent 6 }}
14+
template:
15+
metadata:
16+
{{- with .Values.parseable.podAnnotations }}
17+
annotations:
18+
{{- toYaml . | nindent 8 }}
19+
{{- end }}
20+
labels:
21+
{{- include "parseable.labelsSelector" . | nindent 8 }}
22+
spec:
23+
{{- with .Values.parseable.imagePullSecrets }}
24+
imagePullSecrets:
25+
{{- toYaml . | nindent 8 }}
26+
{{- end }}
27+
serviceAccountName: {{ include "parseable.serviceAccountName" . }}
28+
securityContext:
29+
{{- toYaml .Values.parseable.podSecurityContext | nindent 8 }}
30+
containers:
31+
- name: {{ .Chart.Name }}
32+
securityContext:
33+
{{- toYaml .Values.parseable.securityContext | nindent 12 }}
34+
image: "{{ .Values.parseable.image.repository }}:{{ .Values.parseable.image.tag | default .Chart.AppVersion }}"
35+
imagePullPolicy: {{ .Values.parseable.image.pullPolicy }}
36+
# Uncomment to debug
37+
# command: [ "/bin/sh", "-c", "sleep 1000000" ]
38+
args: ["parseable", "s3-store"]
39+
env:
40+
- name: P_MODE
41+
value: "query"
42+
{{- range $key, $value := .Values.parseable.env }}
43+
- name: {{ $key }}
44+
value: {{ tpl $value $ | quote }}
45+
{{- end }}
46+
{{- range $secret := .Values.parseable.s3ModeSecret }}
47+
{{- range $key := $secret.keys }}
48+
{{- $envPrefix := $secret.prefix | default "" | upper }}
49+
{{- $envKey := $key | upper | replace "." "_" | replace "-" "_" }}
50+
- name: {{ $envPrefix }}{{ $envKey }}
51+
valueFrom:
52+
secretKeyRef:
53+
name: {{ $secret.name }}
54+
key: {{ $key }}
55+
{{- end }}
56+
{{- end }}
57+
ports:
58+
- containerPort: 8000
59+
resources:
60+
{{- toYaml .Values.parseable.resources | nindent 12 }}
61+
volumeMounts:
62+
- mountPath: "/parseable/staging"
63+
name: stage-volume
64+
volumes:
65+
{{- if .Values.parseable.persistence.staging.enabled }}
66+
- name: stage-volume
67+
persistentVolumeClaim:
68+
claimName: {{ include "parseable.fullname" . }}-staging-pvc
69+
{{- else }}
70+
- name: stage-volume
71+
emptyDir: {}
72+
{{- end }}
73+
{{- with .Values.parseable.nodeSelector }}
74+
nodeSelector:
75+
{{- toYaml . | nindent 8 }}
76+
{{- end }}
77+
{{- with .Values.parseable.affinity }}
78+
affinity:
79+
{{- toYaml . | nindent 8 }}
80+
{{- end }}
81+
{{- with .Values.parseable.tolerations }}
82+
tolerations:
83+
{{- toYaml . | nindent 8 }}
84+
{{- end }}
85+
{{- end }}

helm/templates/querier-service.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{{- if eq .Values.parseable.highAvailability.enabled true }}
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: {{ include "parseable.fullname" . }}-ingestor-service
6+
namespace: {{ .Release.Namespace }}
7+
spec:
8+
type: {{ $.Values.parseable.service.type }}
9+
ports:
10+
- port: {{ $.Values.parseable.service.port }}
11+
targetPort: 8000
12+
protocol: TCP
13+
selector:
14+
{{- include "parseable.labelsSelector" . | nindent 4 }}
15+
{{- end }}

0 commit comments

Comments
 (0)