Skip to content

Commit 4ebf790

Browse files
authored
feat(helm): Add API server deployment. (y-scope#1818)
1 parent 77afa32 commit 4ebf790

File tree

8 files changed

+165
-2
lines changed

8 files changed

+165
-2
lines changed

tools/deployment/package-helm/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: "v2"
22
name: "clp"
3-
version: "0.1.2-dev.11"
3+
version: "0.1.2-dev.12"
44
description: "A Helm chart for CLP's (Compressed Log Processor) package deployment"
55
type: "application"
66
appVersion: "0.7.1-dev"
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
{{- if .Values.clpConfig.api_server }}
2+
apiVersion: "apps/v1"
3+
kind: "Deployment"
4+
metadata:
5+
name: {{ include "clp.fullname" . }}-api-server
6+
labels:
7+
{{- include "clp.labels" . | nindent 4 }}
8+
app.kubernetes.io/component: "api-server"
9+
spec:
10+
replicas: 1
11+
selector:
12+
matchLabels:
13+
{{- include "clp.selectorLabels" . | nindent 6 }}
14+
app.kubernetes.io/component: "api-server"
15+
template:
16+
metadata:
17+
labels:
18+
{{- include "clp.labels" . | nindent 8 }}
19+
app.kubernetes.io/component: "api-server"
20+
spec:
21+
serviceAccountName: {{ include "clp.fullname" . }}-job-watcher
22+
terminationGracePeriodSeconds: 60
23+
securityContext:
24+
runAsUser: {{ .Values.securityContext.firstParty.uid }}
25+
runAsGroup: {{ .Values.securityContext.firstParty.gid }}
26+
fsGroup: {{ .Values.securityContext.firstParty.gid }}
27+
initContainers:
28+
- {{- include "clp.waitFor" (dict
29+
"root" .
30+
"type" "job"
31+
"name" "db-table-creator"
32+
) | nindent 10 }}
33+
- {{- include "clp.waitFor" (dict
34+
"root" .
35+
"type" "job"
36+
"name" "results-cache-indices-creator"
37+
) | nindent 10 }}
38+
containers:
39+
- name: "api-server"
40+
image: "{{ include "clp.image.ref" . }}"
41+
imagePullPolicy: "{{ .Values.image.clpPackage.pullPolicy }}"
42+
env:
43+
- name: "CLP_DB_PASS"
44+
valueFrom:
45+
secretKeyRef:
46+
name: {{ include "clp.fullname" . }}-database
47+
key: "password"
48+
- name: "CLP_DB_USER"
49+
valueFrom:
50+
secretKeyRef:
51+
name: {{ include "clp.fullname" . }}-database
52+
key: "username"
53+
- name: "CLP_LOGS_DIR"
54+
value: "/var/log/api_server"
55+
- name: "RUST_LOG"
56+
value: "INFO"
57+
ports:
58+
- name: "api-server"
59+
containerPort: 3001
60+
volumeMounts:
61+
- name: {{ include "clp.volumeName" (dict
62+
"component_category" "api-server"
63+
"name" "logs"
64+
) | quote }}
65+
mountPath: "/var/log/api_server"
66+
- name: "config"
67+
mountPath: "/etc/clp-config.yaml"
68+
subPath: "clp-config.yaml"
69+
readOnly: true
70+
- name: {{ include "clp.volumeName" (dict
71+
"component_category" "shared-data"
72+
"name" "streams"
73+
) | quote }}
74+
mountPath: "/var/data/streams"
75+
command: [
76+
"/opt/clp/bin/api_server",
77+
"--host", "0.0.0.0",
78+
"--port", "3001",
79+
"--config", "/etc/clp-config.yaml"
80+
]
81+
readinessProbe:
82+
{{- include "clp.readinessProbeTimings" . | nindent 12 }}
83+
httpGet: &api-server-health-check
84+
path: "/health"
85+
port: "api-server"
86+
livenessProbe:
87+
{{- include "clp.livenessProbeTimings" . | nindent 12 }}
88+
httpGet: *api-server-health-check
89+
volumes:
90+
- {{- include "clp.pvcVolume" (dict
91+
"root" .
92+
"component_category" "api-server"
93+
"name" "logs"
94+
) | nindent 10 }}
95+
- {{- include "clp.pvcVolume" (dict
96+
"root" .
97+
"component_category" "shared-data"
98+
"name" "streams"
99+
) | nindent 10 }}
100+
- name: "config"
101+
configMap:
102+
name: {{ include "clp.fullname" . }}-config
103+
{{- end }}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{{- if .Values.clpConfig.api_server }}
2+
{{- include "clp.createLocalPv" (dict
3+
"root" .
4+
"component_category" "api-server"
5+
"name" "logs"
6+
"nodeRole" "control-plane"
7+
"capacity" "5Gi"
8+
"accessModes" (list "ReadWriteOnce")
9+
"hostPath" (printf "%s/api_server" .Values.clpConfig.logs_directory)
10+
) }}
11+
{{- end }}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{{- if .Values.clpConfig.api_server }}
2+
{{- include "clp.createPvc" (dict
3+
"root" .
4+
"component_category" "api-server"
5+
"name" "logs"
6+
"capacity" "5Gi"
7+
"accessModes" (list "ReadWriteOnce")
8+
) }}
9+
{{- end }}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{{- if .Values.clpConfig.api_server }}
2+
apiVersion: "v1"
3+
kind: "Service"
4+
metadata:
5+
name: {{ include "clp.fullname" . }}-api-server
6+
labels:
7+
{{- include "clp.labels" . | nindent 4 }}
8+
app.kubernetes.io/component: "api-server"
9+
spec:
10+
type: "NodePort"
11+
selector:
12+
{{- include "clp.selectorLabels" . | nindent 4 }}
13+
app.kubernetes.io/component: "api-server"
14+
ports:
15+
- port: 3001
16+
targetPort: "api-server"
17+
nodePort: {{ .Values.clpConfig.api_server.port }}
18+
{{- end }}

tools/deployment/package-helm/templates/configmap.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@ metadata:
66
{{- include "clp.labels" . | nindent 4 }}
77
data:
88
clp-config.yaml: |
9+
{{- with .Values.clpConfig.api_server }}
10+
api_server:
11+
default_max_num_query_results: {{ .default_max_num_query_results | int }}
12+
host: "localhost"
13+
port: 3001
14+
query_job_polling:
15+
initial_backoff_ms: {{ .query_job_polling.initial_backoff_ms | int }}
16+
max_backoff_ms: {{ .query_job_polling.max_backoff_ms | int }}
17+
{{- else }}
18+
api_server: null
19+
{{- end }}
920
archive_output:
1021
compression_level: {{ .Values.clpConfig.archive_output.compression_level }}
1122
storage:

tools/deployment/package-helm/test.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ mkdir -p "$CLP_HOME/var/"{data,log}/{database,queue,redis,results_cache} \
5959
"$CLP_HOME/var/data/"{archives,streams} \
6060
"$CLP_HOME/var/log/"{compression_scheduler,compression_worker,user} \
6161
"$CLP_HOME/var/log/"{query_scheduler,query_worker,reducer} \
62-
"$CLP_HOME/var/log/garbage_collector" \
62+
"$CLP_HOME/var/log/"{api_server,garbage_collector} \
6363
"$CLP_HOME/var/tmp" \
6464
"$CLP_HOME/samples"
6565

@@ -94,6 +94,9 @@ cat <<EOF | kind create cluster --name clp-test --config=-
9494
- containerPort: 30000
9595
hostPort: 30000
9696
protocol: TCP
97+
- containerPort: 30301
98+
hostPort: 30301
99+
protocol: TCP
97100
EOF
98101

99102
helm uninstall test --ignore-not-found

tools/deployment/package-helm/values.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,14 @@ clpConfig:
7777
results_metadata_collection_name: "results-metadata"
7878
rate_limit: 1000
7979

80+
# API server config
81+
api_server:
82+
port: 30301
83+
default_max_num_query_results: 1000
84+
query_job_polling:
85+
initial_backoff_ms: 100
86+
max_backoff_ms: 5000
87+
8088
# Where archives should be output to
8189
archive_output:
8290
storage:

0 commit comments

Comments
 (0)