gyselroth / kube-icinga

Monitor kubernetes services / resources using icinga2 (including autodiscovery support)
MIT License
35 stars 4 forks source link

Change servicegroup definition #17

Open raffis opened 5 years ago

raffis commented 5 years ago

Is your feature request related to a problem? Please describe

Currently we can not change the servicegroup definition. This is for instance required to set a custom zone.

Describe the solution you'd like

New config: kubernetes.namespaces.serviceGroupDefinition

Describe alternatives you've considered

There is not really a workaround if you need to put certain objects into other zones but a servicegroup is not available on all endpoints. Therefore changing the zone to another one is required, for example to a global zone.

Additional context

[2019-03-19 13:19:41 +0000] critical/ApiListener: Error: Validation failed for object 'kubernetes-clusterip-services!kube-system-kubernetes-dashboard-tcp:443' of type 'Service'; Attribute 'groups': Object 'kube-system' of type 'ServiceGroup' does not exist.
Location: in /var/lib/icinga2/api/packages/_api/3f7882be-2789-462c-a90e-be5a11caaafd/conf.d/services/kubernetes-clusterip-services!kube-system-kubernetes-dashboard-tcp%3A443.conf: 7:2-7:27
[2019-03-19 13:19:41 +0000] critical/config: Error: Validation failed for object 'kubernetes-clusterip-services!syslog-elasticsearch-discovery-tcp:9300' of type 'Service'; Attribute 'groups': Object 'syslog' of type 'ServiceGroup' does not exist.
Location: in /var/lib/icinga2/api/packages/_api/3f7882be-2789-462c-a90e-be5a11caaafd/conf.d/services/kubernetes-clusterip-services!syslog-elasticsearch-discovery-tcp%3A9300.conf: 7:2-7:22
/var/lib/icinga2/api/packages/_api/3f7882be-2789-462c-a90e-be5a11caaafd/conf.d/services/kubernetes-clusterip-services!syslog-elasticsearch-discovery-tcp%3A9300.conf(5):  command_endpoint = "kubernetes"
/var/lib/icinga2/api/packages/_api/3f7882be-2789-462c-a90e-be5a11caaafd/conf.d/services/kubernetes-clusterip-services!syslog-elasticsearch-discovery-tcp%3A9300.conf(6):  display_name = "syslog-elasticsearch-discovery-tcp:9300"
/var/lib/icinga2/api/packages/_api/3f7882be-2789-462c-a90e-be5a11caaafd/conf.d/services/kubernetes-clusterip-services!syslog-elasticsearch-discovery-tcp%3A9300.conf(7):  groups = [ "syslog" ]
                                                                                                                                                                          ^^^^^^^^^^^^^^^^^^^^^
/var/lib/icinga2/api/packages/_api/3f7882be-2789-462c-a90e-be5a11caaafd/conf.d/services/kubernetes-clusterip-services!syslog-elasticsearch-discovery-tcp%3A9300.conf(8):  host_name = "kubernetes-clusterip-services"
/var/lib/icinga2/api/packages/_api/3f7882be-2789-462c-a90e-be5a11caaafd/conf.d/services/kubernetes-clusterip-services!syslog-elasticsearch-discovery-tcp%3A9300.conf(9):  vars["_kubernetes"] = true