add nrpe-external-master relation to kubernetes-master and kubernetes-worker
For now, the checks are very basic and only check if the systemd services are running properly.
This commit is contained in:
@@ -33,8 +33,7 @@ from charms import layer
|
||||
from charms.reactive import hook
|
||||
from charms.reactive import remove_state
|
||||
from charms.reactive import set_state
|
||||
from charms.reactive import when
|
||||
from charms.reactive import when_not
|
||||
from charms.reactive import when, when_any, when_not
|
||||
from charms.reactive.helpers import data_changed
|
||||
from charms.kubernetes.flagmanager import FlagManager
|
||||
|
||||
@@ -43,6 +42,7 @@ from charmhelpers.core import host
|
||||
from charmhelpers.core import unitdata
|
||||
from charmhelpers.core.templating import render
|
||||
from charmhelpers.fetch import apt_install
|
||||
from charmhelpers.contrib.charmsupport import nrpe
|
||||
|
||||
|
||||
dashboard_templates = [
|
||||
@@ -489,6 +489,44 @@ def ceph_storage(ceph_admin):
|
||||
set_state('ceph-storage.configured')
|
||||
|
||||
|
||||
@when('nrpe-external-master.available')
|
||||
@when_not('nrpe-external-master.initial-config')
|
||||
def initial_nrpe_config(nagios=None):
|
||||
set_state('nrpe-external-master.initial-config')
|
||||
update_nrpe_config(nagios)
|
||||
|
||||
|
||||
@when('kubernetes-master.components.started')
|
||||
@when('nrpe-external-master.available')
|
||||
@when_any('config.changed.nagios_context',
|
||||
'config.changed.nagios_servicegroups')
|
||||
def update_nrpe_config(unused=None):
|
||||
services = ('kube-apiserver', 'kube-controller-manager', 'kube-scheduler')
|
||||
|
||||
hostname = nrpe.get_nagios_hostname()
|
||||
current_unit = nrpe.get_nagios_unit_name()
|
||||
nrpe_setup = nrpe.NRPE(hostname=hostname)
|
||||
nrpe.add_init_service_checks(nrpe_setup, services, current_unit)
|
||||
nrpe_setup.write()
|
||||
|
||||
|
||||
@when_not('nrpe-external-master.available')
|
||||
@when('nrpe-external-master.initial-config')
|
||||
def remove_nrpe_config(nagios=None):
|
||||
remove_state('nrpe-external-master.initial-config')
|
||||
|
||||
# List of systemd services for which the checks will be removed
|
||||
services = ('kube-apiserver', 'kube-controller-manager', 'kube-scheduler')
|
||||
|
||||
# The current nrpe-external-master interface doesn't handle a lot of logic,
|
||||
# use the charm-helpers code for now.
|
||||
hostname = nrpe.get_nagios_hostname()
|
||||
nrpe_setup = nrpe.NRPE(hostname=hostname)
|
||||
|
||||
for service in services:
|
||||
nrpe_setup.remove_check(shortname=service)
|
||||
|
||||
|
||||
def create_addon(template, context):
|
||||
'''Create an addon from a template'''
|
||||
source = 'addons/' + template
|
||||
|
Reference in New Issue
Block a user