From 012ac702c7f6caf80723ab675f078d8b31cf5a7d Mon Sep 17 00:00:00 2001 From: Andrey Pavlov Date: Wed, 15 Feb 2017 00:18:24 +0400 Subject: [PATCH] Adding service-per-service support Entrypoint part for service-per-service deployment. Change-Id: I16e370cbe11c38dc8746a66e43329c26cbc51395 Depends-On: I274826648390b844d240b7ae545c40264f662452 --- fuel_ccp_entrypoint/start_script.py | 10 ++++++++++ fuel_ccp_entrypoint/tests/test_fuel_ccp_entrypoint.py | 8 +++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/fuel_ccp_entrypoint/start_script.py b/fuel_ccp_entrypoint/start_script.py index 9fafc6f..2123054 100644 --- a/fuel_ccp_entrypoint/start_script.py +++ b/fuel_ccp_entrypoint/start_script.py @@ -236,6 +236,15 @@ def address(service, port=None, external=False, with_scheme=False): elif port.get('node'): addr = '%s:%s' % (VARIABLES['k8s_external_ip'], port['node']) + current_service = VARIABLES['service_name'] + if current_service: + current_service_def = VARIABLES['services'].get( + current_service, {}).get('service_def') + if current_service_def == service: + service = current_service + else: + service = VARIABLES['services'].get(current_service, {}).get( + 'mapping', {}).get(service) or service if addr is None: addr = '.'.join((service, VARIABLES['namespace'], 'svc', VARIABLES['cluster_domain'])) @@ -523,6 +532,7 @@ def get_variables(role_name): LOG.debug("Creating network topology ") variables["network_topology"] = create_network_topology(meta_info, variables) + variables["service_name"] = meta_info.get('service-name') return variables diff --git a/fuel_ccp_entrypoint/tests/test_fuel_ccp_entrypoint.py b/fuel_ccp_entrypoint/tests/test_fuel_ccp_entrypoint.py index 3ee3fcb..59b0354 100644 --- a/fuel_ccp_entrypoint/tests/test_fuel_ccp_entrypoint.py +++ b/fuel_ccp_entrypoint/tests/test_fuel_ccp_entrypoint.py @@ -99,7 +99,8 @@ class TestGetVariables(base.TestCase): 'node_name': 'node1', 'pod_name': 'pod1', 'cpu_limit': '4', - 'memory_limit': '7859277824' + 'memory_limit': '7859277824', + 'service_name': None } self.assertEqual(r_value, e_value) @@ -153,6 +154,7 @@ class TestGetVariables(base.TestCase): 'cpu_limit': '4', 'memory_limit': '7859277824', 'pod_name': 'pod1', + 'service_name': None, 'a': { 'b': { 'c': ['e', 'f', 't'], @@ -235,6 +237,8 @@ class TestGetETCDClient(base.TestCase): "role_name": "banana", "namespace": "ccp", "cluster_domain": 'cluster.local', + "services": {}, + "service_name": "test", "etcd": { "tls": { "enabled": False @@ -263,6 +267,8 @@ class TestGetETCDClient(base.TestCase): "role_name": "banana", "namespace": "ccp", "cluster_domain": 'cluster.local', + "services": {}, + "service_name": "test", "etcd": { "tls": { "enabled": True