From 2518cb6864fbdacde179349380a4982bf8df420f Mon Sep 17 00:00:00 2001 From: mwiegand Date: Wed, 31 Aug 2022 12:10:15 +0200 Subject: [PATCH] wip --- bundles/icingadb/items.py | 14 ++++++++++ bundles/icingadb/metadata.py | 53 ++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 bundles/icingadb/items.py create mode 100644 bundles/icingadb/metadata.py diff --git a/bundles/icingadb/items.py b/bundles/icingadb/items.py new file mode 100644 index 0000000..20ae184 --- /dev/null +++ b/bundles/icingadb/items.py @@ -0,0 +1,14 @@ +import yaml, json +from bundlewrap.metadata import MetadataJSONEncoder + +files = { + '/etc/icingadb/config.yml': { + 'content': yaml.dump( + json.loads( + json.dumps(node.metadata.get('icingadb'), sort_keys=True, cls=MetadataJSONEncoder) + ), + ), + 'mode': '0640', + 'owner': 'icingadb', + }, +} diff --git a/bundles/icingadb/metadata.py b/bundles/icingadb/metadata.py new file mode 100644 index 0000000..3ca93bb --- /dev/null +++ b/bundles/icingadb/metadata.py @@ -0,0 +1,53 @@ +defaults = { + 'apt': { + 'packages': { + 'icingadb': {}, + 'icingadb-redis': {}, + 'icingadb-web': {}, + }, + 'sources': { + 'deb https://packages.icinga.com/debian icinga-{release} main', + 'deb https://packages.icinga.com/debian icinga-{release}-snapshots main', + }, + }, + 'postgresql': { + 'databases': { + 'icingadb': { + 'owner': 'icingadb', + }, + }, + 'roles': { + 'icingadb': { + 'password': repo.vault.password_for(f'psql icingadb on {node.name}'), + }, + }, + }, + 'redis': { + 'icingadb': { + 'port': '6381', + }, + }, +} + +@metadata_reactor.provides( + 'icingadb', +) +def config(metadata): + return { + 'icingadb': { + 'database': { + 'type': 'postgresql', + 'host': 'localhost', + 'port': 3306, + 'database': 'icingadb', + 'user': 'icingadb', + 'password': metadata.get('postgresql/roles/icingadb/password'), + }, + 'redis': { + 'address': 'localhost:6380', + }, + 'logging': { + 'level': 'info', + }, + }, + }