|
|
|
@ -1,8 +1,5 @@
|
|
|
|
|
from os import chmod
|
|
|
|
|
import yaml
|
|
|
|
|
from .domain import C4kBuild
|
|
|
|
|
from .application import C4kBuildService
|
|
|
|
|
from .python_util import execute
|
|
|
|
|
from .devops_build import DevopsBuild
|
|
|
|
|
from .credential import gopass_field_from_path, gopass_password_from_path
|
|
|
|
|
|
|
|
|
@ -12,7 +9,6 @@ def add_c4k_mixin_config(config,
|
|
|
|
|
grafana_cloud_user=None,
|
|
|
|
|
grafana_cloud_password=None,
|
|
|
|
|
grafana_cloud_url='https://prometheus-prod-01-eu-west-0.grafana.net/api/prom/push'):
|
|
|
|
|
# TODO: Thats meissa specific, we've to move this out
|
|
|
|
|
if not grafana_cloud_user:
|
|
|
|
|
grafana_cloud_user = gopass_field_from_path(
|
|
|
|
|
'server/meissa/grafana-cloud', 'grafana-cloud-user')
|
|
|
|
@ -33,34 +29,14 @@ def add_c4k_mixin_config(config,
|
|
|
|
|
|
|
|
|
|
class C4kMixin(DevopsBuild):
|
|
|
|
|
def __init__(self, project, config):
|
|
|
|
|
self.build = C4kBuild(project, config)
|
|
|
|
|
self.build = C4kBuild(project, config)(project, config)
|
|
|
|
|
self.c4k_build_service = C4kBuildService()
|
|
|
|
|
|
|
|
|
|
self.c4k_mixin_config = config['C4kMixin']['Config']
|
|
|
|
|
self.c4k_mixin_auth = config['C4kMixin']['Auth']
|
|
|
|
|
self.c4k_module_name = config['C4kMixin']['Name']
|
|
|
|
|
tmp = self.c4k_mixin_config['mon-cfg']
|
|
|
|
|
tmp.update({'cluster-name': self.c4k_module_name,
|
|
|
|
|
'cluster-stage': self.stage})
|
|
|
|
|
self.c4k_mixin_config.update({'mon-cfg': tmp})
|
|
|
|
|
|
|
|
|
|
def write_c4k_config(self):
|
|
|
|
|
fqdn = self.get('fqdn')
|
|
|
|
|
self.c4k_mixin_config.update({'fqdn': fqdn})
|
|
|
|
|
with open(self.build_path() + '/out_c4k_config.yaml', 'w', encoding="utf-8") as output_file:
|
|
|
|
|
yaml.dump(self.c4k_mixin_config, output_file)
|
|
|
|
|
self.build_service.write_c4k_config(self.build)
|
|
|
|
|
|
|
|
|
|
def write_c4k_auth(self):
|
|
|
|
|
with open(self.build_path() + '/out_c4k_auth.yaml', 'w', encoding="utf-8") as output_file:
|
|
|
|
|
yaml.dump(self.c4k_mixin_auth, output_file)
|
|
|
|
|
chmod(self.build_path() + '/out_c4k_auth.yaml', 0o600)
|
|
|
|
|
self.build_service.write_c4k_auth(self.build)
|
|
|
|
|
|
|
|
|
|
def c4k_apply(self, dry_run=False):
|
|
|
|
|
cmd = f'c4k-{self.c4k_module_name}-standalone.jar {self.build_path()}/out_c4k_config.yaml {self.build_path()}/out_c4k_auth.yaml > {self.build_path()}/out_{self.c4k_module_name}.yaml'
|
|
|
|
|
output = ''
|
|
|
|
|
if dry_run:
|
|
|
|
|
print(cmd)
|
|
|
|
|
else:
|
|
|
|
|
output = execute(cmd, True)
|
|
|
|
|
print(output)
|
|
|
|
|
return output
|
|
|
|
|
self.build_service.c4k_apply(self.build, dry_run)
|
|
|
|
|