def _configure_autoscaler_role_binding(namespace, provider_config): binding_field = "autoscaler_role_binding" if binding_field not in provider_config: logger.info(log_prefix + not_provided_msg(binding_field)) return binding = provider_config[binding_field] if "namespace" not in binding["metadata"]: binding["metadata"]["namespace"] = namespace elif binding["metadata"]["namespace"] != namespace: raise InvalidNamespaceError(binding_field, namespace) for subject in binding["subjects"]: if "namespace" not in subject: subject["namespace"] = namespace elif subject["namespace"] != namespace: raise InvalidNamespaceError( binding_field + " subject '{}'".format(subject["name"]), namespace) name = binding["metadata"]["name"] field_selector = "metadata.name={}".format(name) accounts = auth_api().list_namespaced_role_binding( namespace, field_selector=field_selector).items if len(accounts) > 0: assert len(accounts) == 1 logger.info(log_prefix + using_existing_msg(binding_field, name)) return logger.info(log_prefix + not_found_msg(binding_field, name)) auth_api().create_namespaced_role_binding(namespace, binding) logger.info(log_prefix + created_msg(binding_field, name))
def _configure_autoscaler_role(namespace, provider_config): role_field = "autoscaler_role" if role_field not in provider_config: logger.info(log_prefix + not_provided_msg(role_field)) return role = provider_config[role_field] if "namespace" not in role["metadata"]: role["metadata"]["namespace"] = namespace elif role["metadata"]["namespace"] != namespace: raise InvalidNamespaceError(role_field, namespace) name = role["metadata"]["name"] field_selector = "metadata.name={}".format(name) accounts = auth_api().list_namespaced_role( namespace, field_selector=field_selector).items if len(accounts) > 0: assert len(accounts) == 1 logger.info(log_prefix + using_existing_msg(role_field, name)) return logger.info(log_prefix + not_found_msg(role_field, name)) auth_api().create_namespaced_role(namespace, role) logger.info(log_prefix + created_msg(role_field, name))