Commit new Chart releases for TrueCharts

Signed-off-by: TrueCharts-Bot <bot@truecharts.org>
This commit is contained in:
TrueCharts-Bot 2022-10-16 20:10:37 +00:00
parent 1df7ee3710
commit 5f4c032cd7
19 changed files with 7297 additions and 0 deletions

View File

@ -0,0 +1,9 @@
# Changelog
## [zabbix-1.0.0](https://github.com/truecharts/charts/compare/zabbix-server-2.0.49...zabbix-1.0.0) (2022-10-16)
### Feat
- rework ([#4046](https://github.com/truecharts/charts/issues/4046))

View File

@ -0,0 +1,9 @@
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 10.7.0
- name: postgresql
repository: https://charts.truecharts.org/
version: 8.0.97
digest: sha256:cd530555930bb5a7512a1904bdaccef6403a8566dce8bc8f4a518df0a0f50c55
generated: "2022-10-16T20:08:48.175151545Z"

View File

@ -0,0 +1,32 @@
apiVersion: v2
appVersion: "6.2.3"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 10.7.0
- condition: postgresql.enabled
name: postgresql
repository: https://charts.truecharts.org/
version: 8.0.97
description: Zabbix is an enterprise-class open source distributed monitoring solution.
home: https://truecharts.org/docs/charts/incubator/zabbix
icon: https://truecharts.org/img/hotlink-ok/chart-icons/zabbix.png
keywords:
- zabbix
- monitoring
kubeVersion: ">=1.16.0-0"
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: zabbix
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/zabbix
- https://hub.docker.com/r/zabbix/zabbix-server-pgsql
- https://hub.docker.com/r/zabbix/zabbix-web-nginx-pgsql
version: 1.0.0
annotations:
truecharts.org/catagories: |
- utilities
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U

View File

@ -0,0 +1,108 @@
# zabbix
Zabbix is an enterprise-class open source distributed monitoring solution.
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
This readme is just an automatically generated general guide on installing our Helm Charts and Apps.
For more information, please click here: [zabbix](https://truecharts.org/docs/charts/incubator/zabbix)
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)**
## Source Code
* <https://github.com/truecharts/charts/tree/master/charts/incubator/zabbix>
* <https://hub.docker.com/r/zabbix/zabbix-server-pgsql>
* <https://hub.docker.com/r/zabbix/zabbix-web-nginx-pgsql>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://charts.truecharts.org/ | postgresql | 8.0.97 |
| https://library-charts.truecharts.org | common | 10.7.0 |
## Installing the Chart
### TrueNAS SCALE
To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App).
### Helm
To install the chart with the release name `zabbix`
```console
helm repo add TrueCharts https://charts.truecharts.org
helm repo update
helm install zabbix TrueCharts/zabbix
```
## Uninstall
### TrueNAS SCALE
**Upgrading, Rolling Back and Uninstalling the Chart**
To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App).
### Helm
To uninstall the `zabbix` deployment
```console
helm uninstall zabbix
```
## Configuration
### Helm
#### Available Settings
Read through the values.yaml file. It has several commented out suggested values.
Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common).
#### Configure using the command line
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
helm install zabbix \
--set env.TZ="America/New York" \
TrueCharts/zabbix
```
#### Configure using a yaml file
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
helm install zabbix TrueCharts/zabbix -f values.yaml
```
#### Connecting to other charts
If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide.
## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ).
- See the [Website](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
---
## Sponsor TrueCharts
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
---
All Rights Reserved - The TrueCharts Project

View File

@ -0,0 +1,8 @@
Zabbix is an enterprise-class open source distributed monitoring solution.
This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/incubator/zabbix](https://truecharts.org/docs/charts/incubator/zabbix)
---
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can!

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,297 @@
image:
repository: tccr.io/truecharts/zabbix-server
tag: 6.2.3@sha256:8047806dbb02b779c1fa4dc47f96bc02f35836800ee21a260ccf2e88928c6e97
pullPolicy: IfNotPresent
frontendImage:
repository: tccr.io/truecharts/zabbix-web
tag: 6.2.3@sha256:b58cdcfe7ab5d8d80b46f6766aea7f44f5ce2ac8c80ecf0c5450e206fd692e1d
pullPolicy: IfNotPresent
agent2Image:
repository: tccr.io/truecharts/zabbix-agent2
tag: 6.2.3@sha256:5abdc777ae777b9941c45d4fe9c9cb73f5491550318430dffd1ab9c03af7ed60
pullPolicy: IfNotPresent
snmptrapsImage:
repository: tccr.io/truecharts/zabbix-snmptraps
tag: 6.2.3@sha256:46142f4717a8e8f27da16a82690a62f6bbb18dc5db423610faec53cedf7db8fe
pullPolicy: IfNotPresent
javaGatewayImage:
repository: tccr.io/truecharts/zabbix-java-gateway
tag: 6.2.3@sha256:d29d2025016a8e8a473be48020238edb89072a4adbb92af582a93216d5a76fd1
pullPolicy: IfNotPresent
webServiceImage:
repository: tccr.io/truecharts/zabbix-web-service
tag: 6.2.3@sha256:295b685c16794e8fd2318c3abb61bff26460fd87c66beeedc9bfeaba27b46b4a
pullPolicy: IfNotPresent
tty: true
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
podSecurityContext:
runAsUser: 1997
runAsGroup: 0
zabbix:
# -- https://www.zabbix.com/documentation/current/en/manual/appendix/config/zabbix_server
server:
listen_backlog: 0
debug_level: 3
load_modules: []
timeout: 4
service_manager_sync_freq: 60
start_report_writers: 0
start_pollers: 5
start_ipmi_pollers: 0
start_preprocessors: 3
start_pollers_unreachable: 1
start_trappers: 5
start_pingers: 1
start_discoverers: 1
start_history_pollers: 5
start_http_pollers: 1
start_obdc_pollers: 1
start_timers: 1
start_escalators: 1
start_alerters: 3
start_java_pollers: 5
start_proxy_pollers: 1
start_db_syncers: 4
start_lld_processors: 2
start_vmware_collectors: 0
vmware_frequency: 60
vmware_perf_frequency: 60
vmware_cache_size: 8M
vmware_timeout: 10
housekeeping_freq: 1
max_housekeeper_delete: 5000
problem_housekeeper_freq: 60
cache_size: 32M
cache_update_freq: 60
history_cache_size: 16M
history_index_cache_size: 4M
history_storage_date_index: false
trend_cache_size: 4M
trend_function_cache_size: 4M
value_cache_size: 8M
trapper_timeout: 300
unreachable_period: 45
unreachable_delay: 15
unavailable_delay: 60
log_slow_queries: 3000
proxy_config_freq: 3600
proxy_data_freq: 1
export_file_size: 1G
export_type: []
stats_allowed_ips: []
frontend:
server_name: My Zabbix Server
enable_access_logs: true
max_execution_time: 300
memory_limit: 128M
post_max_size: 16M
upload_max_file_size: 2M
max_input_time: 300
session_name: zbx_sessionid
deny_gui_access: false
warning_message: Zabbix Server is under maintenance
access_ip_range: []
# Advanced
sso_settings: ""
php_fpm_pm: dynamic
php_fpm_pm_max_children: 50
php_fpm_pm_start_servers: 5
php_fpm_pm_min_spare_servers: 5
php_fpm_pm_max_spare_servers: 35
php_fpm_pm_max_requests: 0
agent:
enabled: true
hostname:
- Zabbix server
hostname_item: ""
metadata: ""
metadata_item: ""
timeout: 3
enable_persistent_buffer: false
persistent_buffer_period: 1h
refresh_active_checks: 120
buffer_send: 5
buffer_size: 100
unsafe_user_parameters: false
tls_connect: unencrypted
tls_accept:
- unencrypted
psk_identity: ""
psk_file: ""
allow_key: ""
deny_key: ""
javagateway:
enabled: true
start_pollers: 5
timeout: 3
debug_level: info
webservice:
enabled: true
debug_level: 3
timeout: 10
snmptraps:
enabled: true
envFrom:
- secretRef:
name: '{{ include "tc.common.names.fullname" . }}-common-secret'
- configMapRef:
name: '{{ include "tc.common.names.fullname" . }}-common-config'
- configMapRef:
name: '{{ include "tc.common.names.fullname" . }}-server-config'
service:
main:
ports:
main:
port: 10211
protocol: HTTP
targetPort: 8080
server:
enabled: true
ports:
server:
enabled: true
port: 10051
javagateway:
enabled: true
ports:
javagateway:
enabled: true
port: 10052
snmptraps:
enabled: true
ports:
snmptraps:
protocol: UDP
enabled: true
port: 162
targetPort: 1162
agent:
type: ClusterIP
enabled: true
ports:
agent:
enabled: true
port: 10050
webservice:
type: ClusterIP
enabled: true
ports:
webservice:
enabled: true
protocol: HTTP
port: 10053
probes:
liveness:
port: "{{ .Values.service.server.ports.server.port }}"
readiness:
port: "{{ .Values.service.server.ports.server.port }}"
startup:
port: "{{ .Values.service.server.ports.server.port }}"
persistence:
# Server
serveralertscripts:
enabled: true
mountPath: "/usr/lib/zabbix/alertscripts"
size: 256Gi
serverexternalscripts:
enabled: true
mountPath: "/usr/lib/zabbix/externalscripts"
size: 256Gi
servermodules:
enabled: true
mountPath: "/var/lib/zabbix/modules"
size: 256Gi
serverenc:
enabled: true
mountPath: "/var/lib/zabbix/enc"
size: 256Gi
serversshkeys:
enabled: true
mountPath: "/var/lib/zabbix/ssh_keys"
size: 256Gi
serversslcerts:
enabled: true
mountPath: "/var/lib/zabbix/ssl/certs"
size: 256Gi
serversslkeys:
enabled: true
mountPath: "/var/lib/zabbix/ssl/keys"
size: 256Gi
serversslca:
enabled: true
mountPath: "/var/lib/zabbix/ssl/ssl_ca"
size: 256Gi
serverexport:
# Used with conjunction of .Values.zabbix.server.export_file_size
enabled: true
mountPath: "/var/lib/zabbix/export"
size: 256Gi
# SNMP Traps and Server
snmptraps:
enabled: true
mountPath: /var/lib/zabbix/snmptraps
size: 256Gi
snmpmibs:
enabled: true
mountPath: /var/lib/zabbix/mibs
size: 256Gi
# Agent2 Volumes
hostproc:
enabled: true
noMount: true
readOnly: true
type: hostPath
hostPath: /proc
mountPath: /host/proc
hostsys:
enabled: true
noMount: true
readOnly: true
type: hostPath
hostPath: /sys
mountPath: /host/sys
agentconf:
enabled: true
noMount: true
mountPath: /etc/zabbix/zabbix_agentd.d
size: 256Gi
agentenc:
enabled: true
noMount: true
mountPath: /var/lib/zabbix/enc
size: 256Gi
agentbuffer:
enabled: true
noMount: true
mountPath: /var/lib/zabbix/buffer
size: 256Gi
# Java Gateway
javagatewaylibs:
enabled: true
noMount: true
mountPath: /usr/sbin/zabbix_java/ext_lib
size: 256Gi
postgresql:
enabled: true
existingSecret: "dbcreds"
postgresqlUsername: zabbix
postgresqlDatabase: zabbix
portal:
enabled: true

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,50 @@
{{- define "zabbix.agent2" -}}
image: {{ .Values.agent2Image.repository }}:{{ .Values.agent2Image.tag }}
imagePullPolicy: {{ .Values.agent2Image.pullPolicy }}
securityContext:
runAsUser: {{ .Values.podSecurityContext.runAsUser }}
runAsGroup: {{ .Values.podSecurityContext.runAsGroup }}
readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }}
runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }}
capabilities:
add:
- SYS_TIME
volumeMounts:
- name: hostsys
mountPath: {{ .Values.persistence.hostsys.mountPath }}
- name: hostproc
mountPath: {{ .Values.persistence.hostproc.mountPath }}
- name: agentconf
mountPath: {{ .Values.persistence.agentconf.mountPath }}
- name: agentenc
mountPath: {{ .Values.persistence.agentenc.mountPath }}
- name: agentbuffer
mountPath: {{ .Values.persistence.agentbuffer.mountPath }}
envFrom:
- configMapRef:
name: '{{ include "tc.common.names.fullname" . }}-agent-config'
ports:
- containerPort: {{ .Values.service.agent.ports.agent.port }}
name: agent
readinessProbe:
tcpSocket:
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }}
livenessProbe:
tcpSocket:
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }}
startupProbe:
tcpSocket:
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }}
{{- end -}}

View File

@ -0,0 +1,209 @@
{{/* Define the configmap */}}
{{- define "zabbix.config" -}}
{{- $serverConfigName := printf "%s-server-config" (include "tc.common.names.fullname" .) }}
{{- $commonConfigName := printf "%s-common-config" (include "tc.common.names.fullname" .) }}
{{- $frontendConfigName := printf "%s-frontend-config" (include "tc.common.names.fullname" .) }}
{{- $agentConfigName := printf "%s-agent-config" (include "tc.common.names.fullname" .) }}
{{- $javagatewayConfigName := printf "%s-javagateway-config" (include "tc.common.names.fullname" .) }}
{{- $webserviceConfigName := printf "%s-webservice-config" (include "tc.common.names.fullname" .) }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $commonConfigName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
DB_SERVER_HOST: {{ printf "%v-%v" .Release.Name "postgresql" }}
DB_SERVER_PORT: "5432"
POSTGRES_USER: {{ .Values.postgresql.postgresqlUsername }}
POSTGRES_DB: {{ .Values.postgresql.postgresqlDatabase }}
---
{{- $server := .Values.zabbix.server }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $serverConfigName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
ZBX_LISTENPORT: {{ .Values.service.server.ports.server.port | quote }}
{{- with $server.listen_backlog }}
ZBX_LISTENBACKLOG: {{ . | quote }}
{{- end }}
ZBX_LOADMODULE: "{{ range initial $server.load_modules }}{{ . }},{{ end }}{{ with last $server.load_modules }}{{ . }}{{ end }}"
ZBX_DEBUGLEVEL: {{ $server.debug_level | quote }}
ZBX_TIMEOUT: {{ $server.timeout | quote }}
ZBX_WEBSERVICEURL: http://localhost:{{ .Values.service.webservice.ports.webservice.port }}
ZBX_SERVICEMANAGERSYNCFREQUENCY: {{ $server.service_manager_sync_freq | quote }}
ZBX_STARTREPORTWRITERS: {{ $server.start_report_writers | quote }}
ZBX_STARTPOLLERS: {{ $server.start_pollers | quote }}
ZBX_IPMIPOLLERS: {{ $server.start_ipmi_pollers | quote }}
ZBX_STARTPREPROCESSORS: {{ $server.start_preprocessors | quote }}
ZBX_STARTPOLLERSUNREACHABLE: {{ $server.start_pollers_unreachable | quote }}
ZBX_STARTTRAPPERS: {{ $server.start_trappers | quote }}
ZBX_STARTPINGERS: {{ $server.start_pingers | quote }}
ZBX_STARTDISCOVERERS: {{ $server.start_discoverers | quote }}
ZBX_STARTHISTORYPOLLERS: {{ $server.start_history_pollers | quote }}
ZBX_STARTHTTPPOLLERS: {{ $server.start_http_pollers | quote }}
ZBX_STARTODBCPOLLERS: {{ $server.start_obdc_pollers | quote }}
ZBX_STARTTIMERS: {{ $server.start_timers | quote }}
ZBX_STARTESCALATORS: {{ $server.start_escalators | quote }}
ZBX_STARTALERTERS: {{ $server.start_alerters | quote }}
ZBX_STARTJAVAPOLLERS: {{ $server.start_java_pollers | quote }}
ZBX_STARTVMWARECOLLECTORS: {{ $server.start_vmware_collectors | quote }}
ZBX_VMWAREFREQUENCY: {{ $server.vmware_frequency | quote }}
ZBX_VMWAREPERFFREQUENCY: {{ $server.vmware_perf_frequency | quote }}
ZBX_VMWARECACHESIZE: {{ $server.vmware_cache_size }}
ZBX_VMWARETIMEOUT: {{ $server.vmware_timeout | quote }}
ZBX_HOUSEKEEPINGFREQUENCY: {{ $server.housekeeping_freq | quote }}
ZBX_MAXHOUSEKEEPERDELETE: {{ $server.max_housekeeper_delete | quote }}
ZBX_PROBLEMHOUSEKEEPINGFREQUENCY: {{ $server.problem_housekeeper_freq | quote }}
ZBX_CACHESIZE: {{ $server.cache_size }}
ZBX_CACHEUPDATEFREQUENCY: {{ $server.cache_update_freq | quote }}
ZBX_STARTDBSYNCERS: {{ $server.start_db_syncers | quote }}
ZBX_HISTORYCACHESIZE: {{ $server.history_cache_size }}
ZBX_HISTORYINDEXCACHESIZE: {{ $server.history_index_cache_size}}
ZBX_HISTORYSTORAGEDATEINDEX: {{ ternary "1" "0" $server.history_storage_date_index | quote }}
ZBX_TRENDCACHESIZE: {{ $server.trend_cache_size }}
ZBX_TRENDFUNCTIONCACHESIZE: {{ $server.trend_function_cache_size }}
ZBX_VALUECACHESIZE: {{ $server.value_cache_size }}
ZBX_TRAPPERTIMEOUT: {{ $server.trapper_timeout | quote }}
ZBX_UNREACHABLEPERIOD: {{ $server.unreachable_period | quote }}
ZBX_UNAVAILABLEDELAY: {{ $server.unavailable_delay | quote }}
ZBX_UNREACHABLEDELAY: {{ $server.unreachable_delay | quote }}
ZBX_LOGSLOWQUERIES: {{ $server.log_slow_queries | quote }}
ZBX_STARTPROXYPOLLERS: {{ $server.start_proxy_pollers | quote }}
ZBX_PROXYCONFIGFREQUENCY: {{ $server.proxy_config_freq | quote }}
ZBX_PROXYDATAFREQUENCY: {{ $server.proxy_data_freq | quote }}
ZBX_STARTLLDPROCESSORS: {{ $server.start_lld_processors | quote }}
ZBX_EXPORTFILESIZE: {{ $server.export_file_size }}
ZBX_EXPORTTYPE: "{{ range initial $server.export_type }}{{ . }},{{ end }}{{ with last $server.export_type }}{{ . }}{{ end }}"
ZBX_STATSALLOWEDIP: "{{ range initial $server.stats_allowed_ips }}{{ . }},{{ end }}{{ with last $server.stats_allowed_ips }}{{ . }}{{ end }}"
ZBX_ENABLE_SNMP_TRAPS: {{ .Values.zabbix.snmptraps.enabled | quote }}
ZBX_JAVAGATEWAY_ENABLE: {{ .Values.zabbix.javagateway.enabled | quote }}
ZBX_JAVAGATEWAY: localhost
ZBX_JAVAGATEWAYPORT: {{ .Values.service.javagateway.ports.javagateway.port | quote }}
---
{{- $agent := .Values.zabbix.agent }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $agentConfigName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
ZBX_SERVER_HOST: localhost
ZBX_SERVER_PORT: {{ .Values.service.server.ports.server.port | quote }}
{{/* If hostname is set, hostname_item is ignored.*/}}
{{- if not $agent.hostname_item }}
ZBX_HOSTNAME: "{{ range initial $agent.hostname }}{{ . }},{{ end }}{{ with last $agent.hostname }}{{ . }}{{ end }}"
{{- end }}
{{- with $agent.hostname_item }}
ZBX_HOSTNAMEITEM: {{ . | quote }}
{{- end }}
{{/* If metadata is set, metadata_item is ignored.*/}}
{{- if not $agent.metadata_item }}
{{- with $agent.metadata }}
ZBX_METADATA: {{ . }}
{{- end }}
{{- end }}
{{- with $agent.metadata_item }}
ZBX_METADATAITEM: {{ . | quote }}
{{- end }}
ZBX_TIMEOUT: {{ $agent.timeout | quote }}
ZBX_ENABLEPERSISTENTBUFFER: {{ $agent.enable_persistent_buffer | quote }}
ZBX_PERSISTENTBUFFERPERIOD: {{ $agent.persistent_buffer_period }}
ZBX_LISTENPORT: {{ .Values.service.agent.ports.agent.port | quote }}
ZBX_REFRESHACTIVECHECKS: {{ $agent.refresh_active_checks | quote }}
ZBX_BUFFERSEND: {{ $agent.buffer_send | quote }}
ZBX_BUFFERSIZE: {{ $agent.buffer_size | quote }}
ZBX_UNSAFEUSERPARAMETERS: {{ ternary "1" "0" $agent.unsafe_user_parameters | quote }}
ZBX_TLSCONNECT: {{ $agent.tls_connect }}
ZBX_TLSACCEPT: "{{ range initial $agent.tls_accept }}{{ . }},{{ end }}{{ with last $agent.tls_accept }}{{ . }}{{ end }}"
{{- with $agent.psk_identity }}
ZBX_TLSPSKIDENTITY: {{ . }}
{{- end }}
{{- with $agent.psk_file }}
ZBX_TLSPSKFILE: {{ . }}
{{- end }}
{{- with $agent.allow_key }}
ZBX_ALLOWKEY: {{ . | quote }}
{{- end }}
{{- with $agent.deny_key }}
ZBX_DENYKEY: {{ . | quote }}
{{- end }}
---
{{- $frontend := .Values.zabbix.frontend }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $frontendConfigName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
PHP_TZ: {{ .Values.TZ }}
ZBX_SERVER_HOST: localhost
ZBX_SERVER_PORT: {{ .Values.service.server.ports.server.port | quote }}
ZBX_SERVER_NAME: {{ $frontend.server_name }}
ENABLE_WEB_ACCESS_LOG: {{ $frontend.enable_access_logs | quote }}
ZBX_MAXEXECUTIONTIME: {{ $frontend.max_execution_time | quote }}
ZBX_MEMORYLIMIT: {{ $frontend.memory_limit }}
ZBX_POSTMAXSIZE: {{ $frontend.post_max_size }}
ZBX_UPLOADMAXFILESIZE: {{ $frontend.upload_max_file_size }}
ZBX_MAXINPUTTIME: {{ $frontend.max_input_time | quote }}
ZBX_SESSION_NAME: {{ $frontend.session_name }}
ZBX_DENY_GUI_ACCESS: {{ $frontend.deny_gui_access | quote }}
{{- if $frontend.access_ip_range }}
ZBX_GUI_ACCESS_IP_RANGE: '[{{ range initial $frontend.access_ip_range }}{{ . | quote }},{{ end }}{{ with last $frontend.access_ip_range }}{{ . | quote }}{{ end }}]'
{{- end }}
ZBX_GUI_WARNING_MSG: {{ $frontend.warning_message }}
{{- with $frontend.sso_settings }}
ZBX_SSO_SETTINGS: {{ . | quote }}
{{- end }}
PHP_FPM_PM: {{ $frontend.php_fpm_pm }}
PHP_FPM_PM_MAX_CHILDREN: {{ $frontend.php_fpm_pm_max_children | quote }}
PHP_FPM_PM_START_SERVERS: {{ $frontend.php_fpm_pm_start_servers | quote }}
PHP_FPM_PM_MIN_SPARE_SERVERS: {{ $frontend.php_fpm_pm_min_spare_servers | quote }}
PHP_FPM_PM_MAX_SPARE_SERVERS: {{ $frontend.php_fpm_pm_max_spare_servers | quote }}
PHP_FPM_PM_MAX_REQUESTS: {{ $frontend.php_fpm_pm_max_requests | quote }}
---
{{- $javagateway := .Values.zabbix.javagateway }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $javagatewayConfigName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
ZBX_START_POLLERS: {{ $javagateway.start_pollers | quote }}
ZBX_TIMEOUT: {{ $javagateway.timeout | quote }}
ZBX_DEBUGLEVEL: {{ $javagateway.debug_level }}
ZBX_LISTEN_PORT: {{ .Values.service.javagateway.ports.javagateway.port | quote }}
---
{{- $webservice := .Values.zabbix.webservice }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $webserviceConfigName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
ZBX_LISTENPORT: {{ .Values.service.webservice.ports.webservice.port | quote }}
ZBX_ALLOWEDIP: localhost
ZBX_DEBUGLEVEL: {{ $webservice.debug_level | quote }}
ZBX_TIMEOUT: {{ $webservice.timeout | quote }}
{{- end -}}

View File

@ -0,0 +1,43 @@
{{- define "zabbix.frontend" -}}
image: {{ .Values.frontendImage.repository }}:{{ .Values.frontendImage.tag }}
imagePullPolicy: {{ .Values.frontendImage.pullPolicy }}
securityContext:
runAsUser: {{ .Values.podSecurityContext.runAsUser }}
runAsGroup: {{ .Values.podSecurityContext.runAsGroup }}
readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }}
runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }}
envFrom:
- secretRef:
name: '{{ include "tc.common.names.fullname" . }}-common-secret'
- configMapRef:
name: '{{ include "tc.common.names.fullname" . }}-common-config'
- configMapRef:
name: '{{ include "tc.common.names.fullname" . }}-frontend-config'
ports:
- containerPort: {{ .Values.service.main.ports.main.targetPort }}
name: main
readinessProbe:
httpGet:
path: /
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }}
livenessProbe:
httpGet:
path: /
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }}
startupProbe:
httpGet:
path: /
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }}
{{- end -}}

View File

@ -0,0 +1,39 @@
{{- define "zabbix.javagateway" -}}
image: {{ .Values.javaGatewayImage.repository }}:{{ .Values.javaGatewayImage.tag }}
imagePullPolicy: {{ .Values.javaGatewayImage.pullPolicy }}
securityContext:
runAsUser: {{ .Values.podSecurityContext.runAsUser }}
runAsGroup: {{ .Values.podSecurityContext.runAsGroup }}
readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }}
runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }}
volumeMounts:
- name: javagatewaylibs
mountPath: {{ .Values.persistence.javagatewaylibs.mountPath }}
envFrom:
- configMapRef:
name: '{{ include "tc.common.names.fullname" . }}-javagateway-config'
ports:
- containerPort: {{ .Values.service.javagateway.ports.javagateway.port }}
name: javagateway
readinessProbe:
tcpSocket:
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }}
livenessProbe:
tcpSocket:
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }}
startupProbe:
tcpSocket:
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }}
{{- end -}}

View File

@ -0,0 +1,18 @@
{{/* Define the secret */}}
{{- define "zabbix.secret" -}}
{{- $serverSecretName := printf "%s-server-secret" (include "tc.common.names.fullname" .) }}
{{- $commonSecretName := printf "%s-common-secret" (include "tc.common.names.fullname" .) }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ $commonSecretName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
POSTGRES_PASSWORD: {{ .Values.postgresql.postgresqlPassword | trimAll "\"" | b64enc }}
{{- end }}

View File

@ -0,0 +1,38 @@
{{- define "zabbix.snmptraps" -}}
image: {{ .Values.snmptrapsImage.repository }}:{{ .Values.snmptrapsImage.tag }}
imagePullPolicy: {{ .Values.agent2Image.pullPolicy }}
securityContext:
runAsUser: {{ .Values.podSecurityContext.runAsUser }}
runAsGroup: {{ .Values.podSecurityContext.runAsGroup }}
readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }}
runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }}
volumeMounts:
- name: snmptraps
mountPath: {{ .Values.persistence.snmptraps.mountPath }}
- name: snmpmibs
mountPath: {{ .Values.persistence.snmpmibs.mountPath }}
ports:
- containerPort: {{ .Values.service.snmptraps.ports.snmptraps.targetPort }}
name: snmptraps
readinessProbe:
tcpSocket:
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }}
livenessProbe:
tcpSocket:
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }}
startupProbe:
tcpSocket:
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }}
{{- end -}}

View File

@ -0,0 +1,39 @@
{{- define "zabbix.webservice" -}}
image: {{ .Values.webServiceImage.repository }}:{{ .Values.webServiceImage.tag }}
imagePullPolicy: {{ .Values.webServiceImage.pullPolicy }}
securityContext:
runAsUser: {{ .Values.podSecurityContext.runAsUser }}
runAsGroup: {{ .Values.podSecurityContext.runAsGroup }}
readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }}
runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }}
envFrom:
- configMapRef:
name: '{{ include "tc.common.names.fullname" . }}-webservice-config'
ports:
- containerPort: {{ .Values.service.webservice.ports.webservice.port }}
name: webservice
readinessProbe:
httpGet:
path: /report
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }}
livenessProbe:
httpGet:
path: /report
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }}
startupProbe:
httpGet:
path: /report
port: {{ .Values.service.main.ports.main.targetPort }}
initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }}
{{- end -}}

View File

@ -0,0 +1,29 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.common.loader.init" . }}
{{/* Render secret */}}
{{- include "zabbix.secret" . }}
{{/* Render config */}}
{{- include "zabbix.config" . }}
{{- $_ := set .Values.additionalContainers "frontend" (include "zabbix.frontend" . | fromYaml) -}}
{{- if .Values.zabbix.agent.enabled -}}
{{- $_ := set .Values.additionalContainers "agent2" (include "zabbix.agent2" . | fromYaml) -}}
{{- end -}}
{{- if .Values.zabbix.webservice.enabled -}}
{{- $_ := set .Values.additionalContainers "webservice" (include "zabbix.webservice" . | fromYaml) -}}
{{- end -}}
{{- if .Values.zabbix.snmptraps.enabled -}}
{{- $_ := set .Values.additionalContainers "snmptraps" (include "zabbix.snmptraps" . | fromYaml) -}}
{{- end -}}
{{- if .Values.zabbix.javagateway.enabled -}}
{{- $_ := set .Values.additionalContainers "javagateway" (include "zabbix.javagateway" . | fromYaml) -}}
{{- end -}}
{{/* Render the templates */}}
{{ include "tc.common.loader.apply" . }}

View File

View File

@ -0,0 +1,4 @@
icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/zabbix.png
categories:
- utilities