@startuml node "Icinga2 Master" as master { control "= sysdb-director-import.timer" as import_timer #line.bold file "sysdb-director-import" as import_script component "Director" as director { component "awi-lx-sysdb-hostgroup-import" as hostgroup_import component "awi-lx-sysdb-hostgroup-sync-rule" as hostgroup_sync component "awi-lx-sysdb-host-import" as host_import component "awi-lx-sysdb-host-sync-rule" as host_sync component "awi-lx-sysdb-service-override-sync-rule" as service_override_sync component "icinga-notification-user-import" as user_import component "icinga-notification-user-sync-rule" as user_sync } together { file "user_and_group_list.conf" as user_and_group_list file "department_list.conf" as department_list file "ignore_list.conf" as ignore_list } file "generate_icinga_notification_user_import_basket.py" as notification_user_basket_generator file "Director-Basket_icinga-notification-user-import.json" as notification_user_basket note top of notification_user_basket : adapted LDAP filter ' make it stand out, = is for large text folder "= Icinga2 configuration" as icinga2_configuration #line.bold } node "Sysdb Server" as sysdb_server { component "Sysdb API" as sysdb_api { ' component "icinga2/v1/roles" as sysdb_api_roles component "icinga2/v1/hostgroups" as sysdb_api_hostgroups component "icinga2/v1/hosts" as sysdb_api_hosts component "icinga2/v1/ad_notification_users" as sysdb_api_roles_ad_notification_users } } database "AD" as ad import_timer -[dashed]down-> import_script : "triggers" import_script -[dashed]down-> director : triggers imports, sync rules and deployment import_script -[dashed]up-> user_and_group_list : downloads import_script -[dashed]right-> notification_user_basket_generator : runs sysdb_api_hostgroups ==> hostgroup_import hostgroup_import --> hostgroup_sync sysdb_api_hosts ==> host_import host_import --> host_sync host_import --> service_override_sync sysdb_api_roles_ad_notification_users ==> user_and_group_list notification_user_basket_generator -[dashed]-> notification_user_basket : generates user_and_group_list --> notification_user_basket department_list --> notification_user_basket ignore_list --> notification_user_basket notification_user_basket --> user_import ad ==> user_import user_import --> user_sync director ==> icinga2_configuration @enduml