def get_internal_env_vars(service_internal_header, namespace='default', include_secret_key=False, include_internal_token=False, authentication_type=None): env_vars = [ get_env_var(name='POLYAXON_K8S_NAMESPACE', value=namespace), get_env_var(name=API_HTTP_URL, value=get_settings_http_api_url()), get_env_var(name=API_WS_HOST, value=get_settings_ws_api_url()), get_env_var(name=constants.CONFIG_MAP_IN_CLUSTER, value=True), get_env_var(name=constants.CONFIG_MAP_IS_MANAGED, value=True), get_env_var(name=constants.CONFIG_MAP_API_VERSION, value=VERSION_V1), get_env_var(name=constants.CONFIG_MAP_INTERNAL_HEADER, value=conf.get(HEADERS_INTERNAL).replace('_', '-')), get_env_var(name=constants.CONFIG_MAP_INTERNAL_HEADER_SERVICE, value=service_internal_header), ] if include_secret_key: env_vars.append( get_from_secret('POLYAXON_SECRET_KEY', 'POLYAXON_SECRET_KEY'), ) if include_internal_token: env_vars.append( get_from_secret('POLYAXON_SECRET_INTERNAL_TOKEN', 'POLYAXON_SECRET_INTERNAL_TOKEN'), ) if authentication_type: env_vars.append( get_env_var(name='POLYAXON_AUTHENTICATION_TYPE', value=authentication_type)) return env_vars
def get_config_map(namespace, project_name, experiment_group_name, experiment_name, project_uuid, experiment_group_uuid, experiment_uuid, original_name, cloning_strategy, cluster_def, persistence_outputs, persistence_data, params, log_level): name = constants.CONFIG_MAP_NAME.format(uuid=experiment_uuid) labels = get_map_labels(project_name, experiment_group_name, experiment_name, project_uuid, experiment_group_uuid, experiment_uuid) metadata = client.V1ObjectMeta(name=name, labels=labels, namespace=namespace) experiment_outputs_path = stores.get_experiment_outputs_path( persistence=persistence_outputs, experiment_name=experiment_name, original_name=original_name, cloning_strategy=cloning_strategy) experiment_logs_path = stores.get_experiment_logs_path( experiment_name=experiment_name, temp=False) data = { constants.CONFIG_MAP_CLUSTER_KEY_NAME: json.dumps(cluster_def), constants.CONFIG_MAP_PARAMS_KEY_NAME: json.dumps(params) or '{}', constants.CONFIG_MAP_EXPERIMENT_INFO_KEY_NAME: json.dumps(labels), constants.CONFIG_MAP_LOG_LEVEL_KEY_NAME: log_level, constants.CONFIG_MAP_RUN_OUTPUTS_PATH_KEY_NAME: experiment_outputs_path, constants.CONFIG_MAP_RUN_LOGS_PATH_KEY_NAME: experiment_logs_path, constants.CONFIG_MAP_RUN_DATA_PATHS_KEY_NAME: persistence_data, API_HTTP_URL: get_settings_http_api_url(), API_WS_HOST: get_settings_ws_api_url(), } return client.V1ConfigMap(api_version=k8s_constants.K8S_API_VERSION_V1, kind=k8s_constants.K8S_CONFIG_MAP_KIND, metadata=metadata, data=data)
def get_job_env_vars(persistence_outputs, outputs_path, persistence_data, log_level=None, logs_path=None, outputs_refs_jobs=None, outputs_refs_experiments=None, ephemeral_token=None): env_vars = [ get_env_var(name=API_HTTP_URL, value=get_settings_http_api_url()), get_env_var(name=API_WS_HOST, value=get_settings_ws_api_url()), get_env_var(name=constants.CONFIG_MAP_IN_CLUSTER, value=True), get_env_var(name=constants.CONFIG_MAP_API_VERSION, value=VERSION_V1), get_env_var(name=constants.CONFIG_MAP_INTERNAL_HEADER, value=settings.HEADERS_INTERNAL.replace('_', '-')), get_env_var(name=constants.CONFIG_MAP_INTERNAL_HEADER_SERVICE, value=InternalServices.RUNNER), ] if log_level: env_vars.append( get_env_var(name=constants.CONFIG_MAP_LOG_LEVEL_KEY_NAME, value=log_level)) if logs_path: env_vars.append( get_env_var(name=constants.CONFIG_MAP_RUN_LOGS_PATH_KEY_NAME, value=logs_path)) # Data and outputs paths data_paths = stores.get_data_paths(persistence_data) env_vars += [ get_env_var(name=constants.CONFIG_MAP_RUN_OUTPUTS_PATH_KEY_NAME, value=outputs_path), get_env_var(name=constants.CONFIG_MAP_RUN_DATA_PATHS_KEY_NAME, value=data_paths) ] refs_outputs = {} outputs_jobs_paths = get_paths_from_specs(specs=outputs_refs_jobs) if outputs_jobs_paths: refs_outputs['jobs'] = outputs_jobs_paths outputs_experiments_paths = get_paths_from_specs(specs=outputs_refs_experiments) if outputs_experiments_paths: refs_outputs['experiments'] = outputs_experiments_paths if refs_outputs: env_vars.append( get_env_var(name=constants.CONFIG_MAP_REFS_OUTPUTS_PATHS_KEY_NAME, value=refs_outputs)) env_vars += get_job_stores_secrets_env_vars(persistence_outputs=persistence_outputs, outputs_path=outputs_path, persistence_data=persistence_data, data_paths=data_paths, outputs_refs_jobs=outputs_refs_jobs, outputs_refs_experiments=outputs_refs_experiments) if ephemeral_token: env_vars.append( get_env_var(name=constants.SECRET_EPHEMERAL_TOKEN, value=ephemeral_token)) return env_vars
def run(cls): response = safe_request('{}/_health'.format(get_settings_ws_api_url()), 'GET') status_code = response.status_code if status_code == 200: result = Result() else: result = Result( message='Service is not healthy, response {}'.format( status_code), severity=Result.ERROR) return {'STREAMS': result}
def get_service_env_vars(namespace='default'): return [ get_env_var(name='POLYAXON_K8S_NAMESPACE', value=namespace), get_from_secret('POLYAXON_SECRET_KEY', 'POLYAXON_SECRET_KEY'), get_from_secret('POLYAXON_SECRET_INTERNAL_TOKEN', 'POLYAXON_SECRET_INTERNAL_TOKEN'), get_from_secret('POLYAXON_RABBITMQ_PASSWORD', 'rabbitmq-password', settings.POLYAXON_K8S_RABBITMQ_SECRET_NAME), get_from_secret('POLYAXON_DB_PASSWORD', 'postgres-password', settings.POLYAXON_K8S_DB_SECRET_NAME), get_env_var(name=API_HTTP_URL, value=get_settings_http_api_url()), get_env_var(name=API_WS_HOST, value=get_settings_ws_api_url()), get_env_var(name=constants.CONFIG_MAP_IN_CLUSTER, value=True), get_env_var(name=constants.CONFIG_MAP_API_VERSION, value=VERSION_V1), ]