X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=cmdatahandlers%2Fsrc%2Fcmdatahandlers%2Fcaas%2Fconfig.py;h=9b70047d4ec3a15ae908051a9a97024aff3ca3cf;hb=refs%2Fchanges%2F91%2F1091%2F1;hp=cd932e212bde412bff18ec9d35725e972b5a49e5;hpb=c389bdee7b3845b55f443dbf04c0ce4083a55886;p=ta%2Fconfig-manager.git diff --git a/cmdatahandlers/src/cmdatahandlers/caas/config.py b/cmdatahandlers/src/cmdatahandlers/caas/config.py index cd932e2..9b70047 100644 --- a/cmdatahandlers/src/cmdatahandlers/caas/config.py +++ b/cmdatahandlers/src/cmdatahandlers/caas/config.py @@ -21,6 +21,12 @@ import jinja2 CAAS_CONFIG_FILE_PATH = "/etc/cmframework/config/" CAAS_CONFIG_FILE = "caas.yaml" +DEFAULT_CAAS_DNS_DOMAIN = "rec.io" +VNF_EMBEDDED_SOFT_EVICTION_THRESHOLD = "300Mi" +BM_SOFT_EVICTION_THRESHOLD = "4Gi" +VNF_EMBEDDED_HARD_EVICTION_THRESHOLD = "200Mi" +BM_HARD_EVICTION_THRESHOLD = "2Gi" +DEFAULT_CAAS_INFRA_LOG_TYPE = 'remote_syslog' class Config(config.Config): @@ -53,8 +59,14 @@ class Config(config.Config): if utils.is_virtualized(): self.config[self.ROOT]['vnf_embedded_deployment'] = self.get_vnf_flag() user_conf = self.confman.get_users_config_handler() - self.config[self.ROOT]['helm_home'] = "/home/" + user_conf.get_admin_user() + "/.helm" - self.config[self.ROOT]['flavour'] = self.flavour_set() + self.set_caas_parameter('helm_home', "/home/{}/.helm".format(user_conf.get_admin_user())) + self.set_caas_parameter('flavour', self.flavour_set()) + if not self.get_caas_parameter('dns_domain'): + self.set_caas_parameter('dns_domain', DEFAULT_CAAS_DNS_DOMAIN) + if not self.get_caas_parameter('infra_log_store'): + self.set_caas_parameter('infra_log_store', DEFAULT_CAAS_INFRA_LOG_TYPE) + if not self.get_caas_parameter('log_forwarding'): + self.set_caas_parameter('log_forwarding', []) def set_static_config(self): try: @@ -63,15 +75,26 @@ class Config(config.Config): CAAS_CONFIG_FILE_PATH)).get_template(CAAS_CONFIG_FILE) with open(CAAS_CONFIG_FILE_PATH + CAAS_CONFIG_FILE) as config_file: data = yaml.load(config_file) - outputText = template.render(data) - config_data = yaml.load(outputText) - for key in config_data: - self.config[self.ROOT][key] = config_data[key] + self.config[self.ROOT].update( + self._template_config(template, self.config[self.ROOT], data)) except jinja2.exceptions.TemplateNotFound: return except Exception: raise configerror.ConfigError("Unexpected issue occured!") + @staticmethod + def _template_config(template, base_config, initial_data): + config_data = initial_data.copy() + config_data.update(base_config) + output_text = template.render(config_data) + previous_output_text = "" + while output_text != previous_output_text: + config_data = yaml.load(output_text) + config_data.update(base_config) + output_text = template.render(config_data) + previous_output_text = output_text + return yaml.load(output_text) + def add_defaults(self): if not self.config.get('cloud.caas', ''): return @@ -79,7 +102,7 @@ class Config(config.Config): self.set_static_config() def is_vnf_embedded_deployment(self): - return (self.get_caas_only() and self.get_vnf_flag()) + return self.get_caas_only() and self.get_vnf_flag() def get_vnf_flag(self): return bool(self.config.get(self.ROOT, {}).get('vnf_embedded_deployment', @@ -141,3 +164,22 @@ class Config(config.Config): def get_caas_parameter(self, parameter): return self.config.get(self.ROOT, {}).get(parameter, '') + + def set_caas_parameter(self, parameter, value): + self.config[self.ROOT][parameter] = value + + def get_kubernetes_domain(self): + return 'kubernetes.default.svc.{}'.format( + self.config.get(self.ROOT, {}).get('dns_domain', '')) + + def get_caas_soft_eviction_threshold(self): + if self.is_vnf_embedded_deployment(): + return VNF_EMBEDDED_SOFT_EVICTION_THRESHOLD + else: + return BM_SOFT_EVICTION_THRESHOLD + + def get_caas_hard_eviction_threshold(self): + if self.is_vnf_embedded_deployment(): + return VNF_EMBEDDED_HARD_EVICTION_THRESHOLD + else: + return BM_HARD_EVICTION_THRESHOLD