Skip to content

Commit 1712b7e

Browse files
committed
Add log stream creation and set retention in Helm Chart
1 parent 8cd8cce commit 1712b7e

File tree

6 files changed

+122
-9
lines changed

6 files changed

+122
-9
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/sh
2+
set -e ; # Have script exit in the event of a failed command.
3+
IFS=$' \t\r\n'
4+
5+
createStream() {
6+
STREAM=$1
7+
echo;
8+
echo \"Creating the log stream $STREAM\";
9+
curl -sS --header 'Content-Type: application/json' -u "$P_USERNAME":"$P_PASSWORD" --location --request PUT "http://{{ include "parseable.fullname" . }}.{{ .Release.Namespace }}:{{ $.Values.parseable.service.port }}/api/v1/logstream/$STREAM";
10+
}
11+
12+
setRetention() {
13+
14+
}
15+
16+
{{ if .Values.parseable.logstream }}
17+
# Create the logstream
18+
{{- range .Values.parseable.logstream }}
19+
createStream {{.name}}
20+
setRetention {{.retention}}
21+
{{- end }}
22+
{{- end }}

helm/templates/configmap.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: {{ include "parseable.fullname" . }}
5+
namespace: {{ .Release.Namespace }}
6+
labels:
7+
{{- include "parseable.labels" . | nindent 4 }}
8+
data:
9+
config-logstream: |-
10+
{{- include (print $.Template.BasePath "/_helpers_config_logstream.txt") . | nindent 4 }}

helm/templates/deployment.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ apiVersion: apps/v1
22
kind: Deployment
33
metadata:
44
name: {{ include "parseable.fullname" . }}
5+
namespace: {{ .Release.Namespace }}
56
labels:
67
{{- include "parseable.labels" . | nindent 4 }}
78
spec:

helm/templates/logstream-job.yaml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
apiVersion: batch/v1
2+
kind: Job
3+
metadata:
4+
name: {{ include "parseable.fullname" . }}
5+
namespace: {{ .Release.Namespace }}
6+
labels:
7+
{{- include "parseable.labels" . | nindent 4 }}
8+
spec:
9+
template:
10+
metadata:
11+
{{- with .Values.parseable.podAnnotations }}
12+
annotations:
13+
"helm.sh/hook": post-install,post-upgrade
14+
{{- toYaml . | nindent 8 }}
15+
{{- end }}
16+
labels:
17+
{{- include "parseable.selectorLabels" . | nindent 8 }}
18+
spec:
19+
restartPolicy: OnFailure
20+
securityContext:
21+
{{- toYaml .Values.parseable.podSecurityContext | nindent 8 }}
22+
volumes:
23+
- name: parseable-init
24+
projected:
25+
sources:
26+
- configMap:
27+
name: {{ include "parseable.fullname" . }}
28+
containers:
29+
- name: config-logstream
30+
volumeMounts:
31+
- name: parseable-init
32+
mountPath: /config
33+
securityContext:
34+
{{- toYaml .Values.parseable.securityContext | nindent 12 }}
35+
env:
36+
{{- if .Values.parseable.local }}
37+
{{- range $secret := .Values.parseable.localModeSecret }}
38+
{{- range $key := $secret.keys }}
39+
{{- $envPrefix := $secret.prefix | default "" | upper }}
40+
{{- $envKey := $key | upper | replace "." "_" | replace "-" "_" }}
41+
- name: {{ $envPrefix }}{{ $envKey }}
42+
valueFrom:
43+
secretKeyRef:
44+
name: {{ $secret.name }}
45+
key: {{ $key }}
46+
{{- end }}
47+
{{- end }}
48+
{{- else}}
49+
{{- range $secret := .Values.parseable.s3ModeSecret }}
50+
{{- range $key := $secret.keys }}
51+
{{- $envPrefix := $secret.prefix | default "" | upper }}
52+
{{- $envKey := $key | upper | replace "." "_" | replace "-" "_" }}
53+
- name: {{ $envPrefix }}{{ $envKey }}
54+
valueFrom:
55+
secretKeyRef:
56+
name: {{ $secret.name }}
57+
key: {{ $key }}
58+
{{- end }}
59+
{{- end }}
60+
{{- end }}
61+
image: curlimages/curl:8.00.0
62+
command: [ "/bin/sh", "/config/config-logstream" ]
63+
backoffLimit: 20

helm/values.yaml

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
11
parseable:
22
image:
33
repository: parseable/parseable
4-
tag: v0.4.3
4+
tag: v0.4.0
55
pullPolicy: Always
6-
local: false
7-
# env:
8-
# RUST_LOG: info
6+
## Set to true if you want to deploy Parseable in local mode (store logs
7+
## on local mount point instead of S3 bucket)
8+
local: true
9+
env:
10+
RUST_LOG: error
11+
## Use this to create and configure Parseable logstreams
12+
logstream:
13+
- name: "vectordemo"
14+
retention:
15+
description: "Delete logs after 30 days"
16+
action: "delete"
17+
duration: "30d"
18+
- name: "fluentbitdemo"
19+
retention:
20+
description: "Delete logs after 30 days"
21+
action: "delete"
22+
duration: "30d"
23+
## enable/disable persistence using PVC for the Data and Staging directories
24+
## Note that Data directory is needed only for local mode
925
persistence:
1026
staging:
1127
enabled: false
@@ -17,6 +33,7 @@ parseable:
1733
storageClass: ""
1834
accessMode: ReadWriteOnce
1935
size: 1Gi
36+
## Use
2037
localModeSecret:
2138
- type: env
2239
name: parseable-env-secret
@@ -58,11 +75,11 @@ parseable:
5875
port: 80
5976
resources:
6077
limits:
61-
cpu: 500m
62-
memory: 4Gi
78+
cpu: 100m
79+
memory: 250Mi
6380
requests:
64-
cpu: 250m
65-
memory: 1Gi
81+
cpu: 100m
82+
memory: 250Mi
6683
securityContext:
6784
allowPrivilegeEscalation: false
6885
podAnnotations: {}

server/src/handlers/http/ingest.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ use crate::metadata::STREAM_INFO;
3232
use crate::utils::header_parsing::{collect_labelled_headers, ParseHeaderError};
3333

3434
// Handler for POST /api/v1/ingest
35-
// ingests events by extacting stream name from header
35+
// ingests events by extracting stream name from header
3636
// creates if stream does not exist
3737
pub async fn ingest(req: HttpRequest, body: Bytes) -> Result<HttpResponse, PostError> {
3838
if let Some((_, stream_name)) = req

0 commit comments

Comments
 (0)