Konfiguracja zabbix-agent w Kubernetes

Udało mi się utworzyć działają konfiguracje poda zabbix agenta dla Kubernetesa. Oczywiście jest to bardzo indywidualny przypadek i na pewno nie do użycia 1:1 na innym środowisku. Jednak to działa i zostawiam dla inspiracji. 

Mi najwięcej problemu przysporzyło użycie własnego pliku konfiguracyjnego. Okazało się ze oryginalny plik konfiguracyjny /etc/zabbix/zabbix_agentd.conf jest dynamicznie tworzony i nie było możliwości nadpisania go tym z volumenu, dlatego rozwiązaniem było wrzucenie swojego konfiga do includowanego podkatalogu /etc/zabbix/zabbix_agentd.d/

 
apiVersion: apps/v1
kind: DaemonSet
metadata:
 name: zabbix-agent
 namespace: default
spec:
 selector:
   matchLabels:
     app: zabbix-agent
 template:
   metadata:
     labels:
       app: zabbix-agent
   spec:
     tolerations:
       - key: node-role.kubernetes.io/gitops
         effect: NoSchedule
         operator: Exists
     hostNetwork: true
     hostPID: true
 
     containers:
     - name: zabbix-agent
       image: registry.gitlab.com/<moje>/devops/images/zabbix-agent:0.0.1
       securityContext:
         privileged: true
       volumeMounts:
       - name: agent-conf
         mountPath: /etc/zabbix/zabbix_agentd.d
         readOnly: false
        
        
 
     imagePullSecrets:
     - name: zabbix-agent-secret  
    
     volumes:
       - name: agent-conf
         configMap:
           name: zabbix-agent-config
---
 
apiVersion: v1
kind: ConfigMap
metadata:
 name: zabbix-agent-config
 namespace: default
data:
 zabbix_agentd.conf: |
   LogFile=/dev/stdout
   LogFileSize=0
   Server=10.10.0.0/16
   Timeout=20