Skip to content

Commit 5102df4

Browse files
authored
Merge pull request #57 from rayshoo/pull-request
feat: fix selectors, UI log rotation, Redis envs, and Vector logging example
2 parents 2c61afb + d79fcb7 commit 5102df4

12 files changed

Lines changed: 329 additions & 11 deletions

charts/bunkerweb/templates/api-deployment.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ spec:
1313
selector:
1414
matchLabels:
1515
{{- include "bunkerweb.selectorLabels" . | nindent 6 }}
16+
bunkerweb.io/component: "api"
1617
template:
1718
metadata:
1819
labels:

charts/bunkerweb/templates/bunkerweb-daemonset.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ spec:
1010
selector:
1111
matchLabels:
1212
{{- include "bunkerweb.selectorLabels" . | nindent 6 }}
13+
bunkerweb.io/component: "bunkerweb"
1314
template:
1415
metadata:
1516
annotations:
@@ -67,6 +68,7 @@ spec:
6768
# Internal subnet(s) + localhost
6869
- name: API_WHITELIST_IP
6970
value: "{{ .Values.settings.misc.apiWhitelistIp }}"
71+
{{- include "bunkerweb.redisEnv" . | nindent 12 }}
7072
{{- if .Values.ui.logs.enabled }}
7173
- name: ACCESS_LOG_1
7274
value: "syslog:server={{ include "bunkerweb.syslogAddress" . }},tag=bunkerweb_access"

charts/bunkerweb/templates/bunkerweb-deployment.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ spec:
8585
# Internal subnet(s) + localhost
8686
- name: API_WHITELIST_IP
8787
value: "{{ .Values.settings.misc.apiWhitelistIp }}"
88+
{{- include "bunkerweb.redisEnv" . | nindent 12 }}
8889
{{- if .Values.ui.logs.enabled }}
8990
- name: ACCESS_LOG_1
9091
value: "syslog:server={{ include "bunkerweb.syslogAddress" . }},tag=bunkerweb_access"

charts/bunkerweb/templates/bunkerweb-statefulset.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ spec:
8484
# Internal subnet(s) + localhost
8585
- name: API_WHITELIST_IP
8686
value: "{{ .Values.settings.misc.apiWhitelistIp }}"
87+
{{- include "bunkerweb.redisEnv" . | nindent 12 }}
8788
{{- if .Values.ui.logs.enabled }}
8889
- name: ACCESS_LOG_1
8990
value: "syslog:server={{ include "bunkerweb.syslogAddress" . }},tag=bunkerweb_access"

charts/bunkerweb/templates/controller-deployment.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ spec:
1313
selector:
1414
matchLabels:
1515
{{- include "bunkerweb.selectorLabels" . | nindent 6 }}
16+
bunkerweb.io/component: "controller"
1617
template:
1718
metadata:
1819
labels:
@@ -66,9 +67,7 @@ spec:
6667
value: "{{ .Values.settings.kubernetes.domainName }}"
6768
- name: KUBERNETES_IGNORE_ANNOTATIONS
6869
value: "{{ .Values.settings.kubernetes.ignoreAnnotations }}"
69-
{{- if .Values.controller.extraEnvs }}
7070
{{- toYaml .Values.controller.extraEnvs | nindent 12 }}
71-
{{- end }}
7271
{{- if .Values.ui.logs.enabled }}
7372
- name: LOG_TYPES
7473
value: "stderr syslog"

charts/bunkerweb/templates/mariadb-deployment.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ spec:
1010
selector:
1111
matchLabels:
1212
{{- include "bunkerweb.selectorLabels" . | nindent 6 }}
13+
bunkerweb.io/component: "mariadb"
14+
strategy:
15+
type: {{ default "RollingUpdate" .Values.mariadb.strategy }}
1316
template:
1417
metadata:
1518
labels:
@@ -51,6 +54,9 @@ spec:
5154
{{- else }}
5255
value: "{{ .Values.mariadb.config.password }}"
5356
{{- end }}
57+
{{- if .Values.mariadb.extraEnvs }}
58+
{{- toYaml .Values.mariadb.extraEnvs | nindent 12 }}
59+
{{- end }}
5460
volumeMounts:
5561
- mountPath: "/var/lib/mysql"
5662
name: vol-db

charts/bunkerweb/templates/redis-deployment.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ spec:
1010
selector:
1111
matchLabels:
1212
{{- include "bunkerweb.selectorLabels" . | nindent 6 }}
13+
bunkerweb.io/component: "redis"
14+
strategy:
15+
type: {{ default "RollingUpdate" .Values.redis.strategy }}
1316
template:
1417
metadata:
1518
labels:
@@ -34,6 +37,9 @@ spec:
3437
{{- else }}
3538
value: "{{ .Values.redis.config.password }}"
3639
{{- end }}
40+
{{- if .Values.redis.extraEnvs }}
41+
{{- toYaml .Values.redis.extraEnvs | nindent 12 }}
42+
{{- end }}
3743
{{- with .Values.redis.resources }}
3844
resources:
3945
{{- toYaml . | nindent 12}}

charts/bunkerweb/templates/scheduler-deployment.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ spec:
1212
selector:
1313
matchLabels:
1414
{{- include "bunkerweb.selectorLabels" . | nindent 6 }}
15+
bunkerweb.io/component: "scheduler"
1516
template:
1617
metadata:
1718
labels:

charts/bunkerweb/templates/ui-deployment.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ spec:
1313
selector:
1414
matchLabels:
1515
{{- include "bunkerweb.selectorLabels" . | nindent 6 }}
16+
bunkerweb.io/component: "ui"
1617
template:
1718
metadata:
1819
labels:
@@ -106,6 +107,13 @@ spec:
106107
- name: bunkerweb-syslog
107108
image: {{ .Values.ui.logs.repository }}:{{ .Values.ui.logs.tag }}
108109
imagePullPolicy: {{ .Values.ui.logs.pullPolicy }}
110+
{{- range .Values.scheduler.extraEnvs }}
111+
{{- if eq .name "TZ" }}
112+
env:
113+
- name: TZ
114+
value: "{{ .value }}"
115+
{{- end }}
116+
{{- end }}
109117
securityContext:
110118
capabilities:
111119
add:
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
{{- if and .Values.ui.logs.enabled .Values.ui.logs.logrotate.enabled -}}
2+
{{- $files := default (list) .Values.ui.logs.logrotate.files -}}
3+
---
4+
apiVersion: batch/v1
5+
kind: CronJob
6+
metadata:
7+
name: ui-logrotate-{{ include "bunkerweb.fullname" . }}
8+
namespace: {{ include "bunkerweb.namespace" . }}
9+
labels:
10+
{{- include "bunkerweb.labels" . | nindent 4 }}
11+
spec:
12+
schedule: {{ .Values.ui.logs.logrotate.schedule | default "0 0 * * *" }}
13+
jobTemplate:
14+
spec:
15+
template:
16+
spec:
17+
{{- if .Values.ui.nodeSelector }}
18+
{{- with .Values.ui.nodeSelector }}
19+
nodeSelector:
20+
{{- toYaml . | nindent 12 }}
21+
{{- end }}
22+
{{- else if .Values.nodeSelector }}
23+
{{- with .Values.nodeSelector }}
24+
nodeSelector:
25+
{{- toYaml . | nindent 12 }}
26+
{{- end }}
27+
{{- end }}
28+
{{- if or (.Values.ui.tolerations) (.Values.tolerations) }}
29+
tolerations:
30+
{{- if .Values.ui.tolerations }}
31+
{{- toYaml .Values.ui.tolerations | nindent 10 }}
32+
{{- else }}
33+
{{- toYaml .Values.tolerations | nindent 10 }}
34+
{{- end }}
35+
{{- end }}
36+
affinity:
37+
podAffinity:
38+
requiredDuringSchedulingIgnoredDuringExecution:
39+
- topologyKey: kubernetes.io/hostname
40+
labelSelector:
41+
matchLabels:
42+
{{- include "bunkerweb.labels" . | nindent 20 }}
43+
{{- with .Values.ui.podLabels }}
44+
{{- toYaml . | nindent 20 }}
45+
{{- end }}
46+
bunkerweb.io/component: "ui"
47+
containers:
48+
- name: logrotate
49+
image: alpine:latest
50+
command:
51+
- /bin/sh
52+
- -c
53+
- |
54+
{{- if gt (len $files) 0 }}
55+
set -ex
56+
apk add --no-cache logrotate
57+
echo "=== Files before logrotate ==="
58+
ls -la /var/log/bunkerweb/
59+
logrotate -f /etc/logrotate.d/bunkerweb
60+
echo "=== Files after logrotate ==="
61+
ls -la /var/log/bunkerweb/
62+
echo "=== Deleting old log files ==="
63+
echo "Current time: $(date)"
64+
cutoff=$(date -d @$(($(date +%s) - {{ $.Values.ui.logs.logrotate.rotate | default "2" }} * 86400)) +%Y%m%d)
65+
echo "Cutoff date: $cutoff (files before this will be deleted)"
66+
for f in /var/log/bunkerweb/*-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].log; do
67+
if [ -f "$f" ]; then
68+
datepart=$(basename "$f" | grep -oE '[0-9]{8}\.log$' | cut -d. -f1)
69+
if [ -n "$datepart" ] && [ "$datepart" -lt "$cutoff" ]; then
70+
echo "Deleting: $f (date: $datepart < $cutoff)"
71+
rm -f "$f"
72+
fi
73+
fi
74+
done
75+
echo "=== Files after cleanup ==="
76+
ls -la /var/log/bunkerweb/
77+
{{- else }}
78+
echo "ui.logs.logrotate.files is empty; skip logrotate."
79+
exit 0
80+
{{- end }}
81+
volumeMounts:
82+
- name: config
83+
mountPath: /etc/logrotate.d/
84+
readOnly: true
85+
- name: bunkerweb-logs
86+
mountPath: /var/log/bunkerweb
87+
restartPolicy: OnFailure
88+
volumes:
89+
- name: config
90+
configMap:
91+
name: ui-logrotate-{{ include "bunkerweb.fullname" . }}
92+
- name: bunkerweb-logs
93+
persistentVolumeClaim:
94+
claimName: ui-{{ include "bunkerweb.fullname" . }}
95+
---
96+
apiVersion: v1
97+
kind: ConfigMap
98+
metadata:
99+
name: ui-logrotate-{{ include "bunkerweb.fullname" . }}
100+
namespace: {{ include "bunkerweb.namespace" . }}
101+
labels:
102+
{{- include "bunkerweb.labels" . | nindent 4 }}
103+
data:
104+
bunkerweb: |
105+
{{- if gt (len $files) 0 -}}
106+
{{- range $files }}
107+
/var/log/bunkerweb/{{ . }}{{- end }} {
108+
daily
109+
rotate {{ add (.Values.ui.logs.logrotate.rotate | default "2") 1 }}
110+
dateext
111+
dateformat -%Y%m%d
112+
compress
113+
delaycompress
114+
missingok
115+
notifempty
116+
copytruncate
117+
postrotate
118+
for f in /var/log/bunkerweb/*.log-[0-9]*; do
119+
if [ -f "$f" ]; then
120+
new_name=$(echo "$f" | sed -E 's/^(.*)\.log-([0-9]{8})$/\1-\2.log/')
121+
mv "$f" "$new_name"
122+
fi
123+
done
124+
endscript
125+
}
126+
{{- end -}}
127+
{{- end }}

0 commit comments

Comments
 (0)