Merge "[k8s] Add new label `service_cluster_ip_range`"
This commit is contained in:
commit
7b6415a5bc
|
@ -362,6 +362,9 @@ the table are linked to more details elsewhere in the user guide.
|
||||||
| `cloud_provider_enabled`_ | - true | true |
|
| `cloud_provider_enabled`_ | - true | true |
|
||||||
| | - false | |
|
| | - false | |
|
||||||
+---------------------------------------+--------------------+---------------+
|
+---------------------------------------+--------------------+---------------+
|
||||||
|
| `service_cluster_ip_range` | IPv4 CIDR for k8s | 10.254.0.0/16 |
|
||||||
|
| | service portals | |
|
||||||
|
+---------------------------------------+--------------------+---------------+
|
||||||
|
|
||||||
Cluster
|
Cluster
|
||||||
-------
|
-------
|
||||||
|
|
|
@ -130,6 +130,10 @@ class K8sTemplateDefinition(template_def.BaseTemplateDefinition):
|
||||||
for label in label_list:
|
for label in label_list:
|
||||||
extra_params[label] = cluster.labels.get(label)
|
extra_params[label] = cluster.labels.get(label)
|
||||||
|
|
||||||
|
cluser_ip_range = cluster.labels.get('service_cluster_ip_range')
|
||||||
|
if cluser_ip_range:
|
||||||
|
extra_params['portal_network_cidr'] = cluser_ip_range
|
||||||
|
|
||||||
if cluster_template.registry_enabled:
|
if cluster_template.registry_enabled:
|
||||||
extra_params['swift_region'] = CONF.docker_registry.swift_region
|
extra_params['swift_region'] = CONF.docker_registry.swift_region
|
||||||
extra_params['registry_container'] = (
|
extra_params['registry_container'] = (
|
||||||
|
|
|
@ -59,7 +59,8 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
'influx_grafana_dashboard_enabled': 'True',
|
'influx_grafana_dashboard_enabled': 'True',
|
||||||
'docker_volume_type': 'lvmdriver-1',
|
'docker_volume_type': 'lvmdriver-1',
|
||||||
'etcd_volume_size': 0,
|
'etcd_volume_size': 0,
|
||||||
'availability_zone': 'az_1'},
|
'availability_zone': 'az_1',
|
||||||
|
'service_cluster_ip_range': '10.254.0.0/16'},
|
||||||
'tls_disabled': False,
|
'tls_disabled': False,
|
||||||
'server_type': 'vm',
|
'server_type': 'vm',
|
||||||
'registry_enabled': False,
|
'registry_enabled': False,
|
||||||
|
@ -107,7 +108,8 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
'kubecontroller_options': '--kubecontroller',
|
'kubecontroller_options': '--kubecontroller',
|
||||||
'kubescheduler_options': '--kubescheduler',
|
'kubescheduler_options': '--kubescheduler',
|
||||||
'kubeproxy_options': '--kubeproxy',
|
'kubeproxy_options': '--kubeproxy',
|
||||||
'influx_grafana_dashboard_enabled': 'True'},
|
'influx_grafana_dashboard_enabled': 'True',
|
||||||
|
'service_cluster_ip_range': '10.254.0.0/16'},
|
||||||
'master_flavor_id': 'master_flavor_id',
|
'master_flavor_id': 'master_flavor_id',
|
||||||
'flavor_id': 'flavor_id',
|
'flavor_id': 'flavor_id',
|
||||||
}
|
}
|
||||||
|
@ -217,6 +219,7 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
'kubecontroller_options': '--kubecontroller',
|
'kubecontroller_options': '--kubecontroller',
|
||||||
'kubescheduler_options': '--kubescheduler',
|
'kubescheduler_options': '--kubescheduler',
|
||||||
'kubeproxy_options': '--kubeproxy',
|
'kubeproxy_options': '--kubeproxy',
|
||||||
|
'service_cluster_ip_range': '10.254.0.0/16',
|
||||||
},
|
},
|
||||||
'http_proxy': 'http_proxy',
|
'http_proxy': 'http_proxy',
|
||||||
'https_proxy': 'https_proxy',
|
'https_proxy': 'https_proxy',
|
||||||
|
@ -286,6 +289,7 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
'octavia_enabled': False,
|
'octavia_enabled': False,
|
||||||
'kube_service_account_key': 'public_key',
|
'kube_service_account_key': 'public_key',
|
||||||
'kube_service_account_private_key': 'private_key',
|
'kube_service_account_private_key': 'private_key',
|
||||||
|
'portal_network_cidr': '10.254.0.0/16',
|
||||||
}
|
}
|
||||||
if missing_attr is not None:
|
if missing_attr is not None:
|
||||||
expected.pop(mapping[missing_attr], None)
|
expected.pop(mapping[missing_attr], None)
|
||||||
|
@ -405,6 +409,7 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
'octavia_enabled': False,
|
'octavia_enabled': False,
|
||||||
'kube_service_account_key': 'public_key',
|
'kube_service_account_key': 'public_key',
|
||||||
'kube_service_account_private_key': 'private_key',
|
'kube_service_account_private_key': 'private_key',
|
||||||
|
'portal_network_cidr': '10.254.0.0/16',
|
||||||
}
|
}
|
||||||
|
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
|
@ -511,6 +516,7 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
'octavia_enabled': False,
|
'octavia_enabled': False,
|
||||||
'kube_service_account_key': 'public_key',
|
'kube_service_account_key': 'public_key',
|
||||||
'kube_service_account_private_key': 'private_key',
|
'kube_service_account_private_key': 'private_key',
|
||||||
|
'portal_network_cidr': '10.254.0.0/16',
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
|
@ -600,6 +606,7 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
'kubescheduler_options': '--kubescheduler',
|
'kubescheduler_options': '--kubescheduler',
|
||||||
'kubeproxy_options': '--kubeproxy',
|
'kubeproxy_options': '--kubeproxy',
|
||||||
'octavia_enabled': False,
|
'octavia_enabled': False,
|
||||||
|
'portal_network_cidr': '10.254.0.0/16',
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
|
@ -684,6 +691,7 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
'kubescheduler_options': '--kubescheduler',
|
'kubescheduler_options': '--kubescheduler',
|
||||||
'kubeproxy_options': '--kubeproxy',
|
'kubeproxy_options': '--kubeproxy',
|
||||||
'octavia_enabled': False,
|
'octavia_enabled': False,
|
||||||
|
'portal_network_cidr': '10.254.0.0/16',
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
|
@ -922,6 +930,7 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
'octavia_enabled': False,
|
'octavia_enabled': False,
|
||||||
'kube_service_account_key': 'public_key',
|
'kube_service_account_key': 'public_key',
|
||||||
'kube_service_account_private_key': 'private_key',
|
'kube_service_account_private_key': 'private_key',
|
||||||
|
'portal_network_cidr': '10.254.0.0/16',
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
|
|
|
@ -371,6 +371,8 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase):
|
||||||
'kubeproxy_options')
|
'kubeproxy_options')
|
||||||
cloud_provider_enabled = mock_cluster.labels.get(
|
cloud_provider_enabled = mock_cluster.labels.get(
|
||||||
'cloud_provider_enabled')
|
'cloud_provider_enabled')
|
||||||
|
service_cluster_ip_range = mock_cluster.labels.get(
|
||||||
|
'service_cluster_ip_range')
|
||||||
|
|
||||||
k8s_def = k8sa_tdef.AtomicK8sTemplateDefinition()
|
k8s_def = k8sa_tdef.AtomicK8sTemplateDefinition()
|
||||||
|
|
||||||
|
@ -420,6 +422,7 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase):
|
||||||
'octavia_enabled': False,
|
'octavia_enabled': False,
|
||||||
'kube_service_account_key': 'public_key',
|
'kube_service_account_key': 'public_key',
|
||||||
'kube_service_account_private_key': 'private_key',
|
'kube_service_account_private_key': 'private_key',
|
||||||
|
'portal_network_cidr': service_cluster_ip_range,
|
||||||
}}
|
}}
|
||||||
mock_get_params.assert_called_once_with(mock_context,
|
mock_get_params.assert_called_once_with(mock_context,
|
||||||
mock_cluster_template,
|
mock_cluster_template,
|
||||||
|
@ -541,6 +544,8 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase):
|
||||||
'kubeproxy_options')
|
'kubeproxy_options')
|
||||||
cloud_provider_enabled = mock_cluster.labels.get(
|
cloud_provider_enabled = mock_cluster.labels.get(
|
||||||
'cloud_provider_enabled')
|
'cloud_provider_enabled')
|
||||||
|
service_cluster_ip_range = mock_cluster.labels.get(
|
||||||
|
'service_cluster_ip_range')
|
||||||
|
|
||||||
k8s_def = k8sa_tdef.AtomicK8sTemplateDefinition()
|
k8s_def = k8sa_tdef.AtomicK8sTemplateDefinition()
|
||||||
|
|
||||||
|
@ -592,6 +597,7 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase):
|
||||||
'octavia_enabled': False,
|
'octavia_enabled': False,
|
||||||
'kube_service_account_key': 'public_key',
|
'kube_service_account_key': 'public_key',
|
||||||
'kube_service_account_private_key': 'private_key',
|
'kube_service_account_private_key': 'private_key',
|
||||||
|
'portal_network_cidr': service_cluster_ip_range,
|
||||||
}}
|
}}
|
||||||
mock_get_params.assert_called_once_with(mock_context,
|
mock_get_params.assert_called_once_with(mock_context,
|
||||||
mock_cluster_template,
|
mock_cluster_template,
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Add a new label `service_cluster_ip_range` for kubernetes so that user can
|
||||||
|
set the IP range for service portals to avoid conflicts with pod IP range.
|
||||||
|
|
Loading…
Reference in New Issue