Merge "Switch to kubernetes upstream python client"
This commit is contained in:
commit
cc40e47335
@ -14,8 +14,9 @@
|
||||
|
||||
import tempfile
|
||||
|
||||
from k8sclient.client import api_client
|
||||
from k8sclient.client.apis import apiv_api
|
||||
from kubernetes import client as k8s_config
|
||||
from kubernetes.client import api_client
|
||||
from kubernetes.client.apis import core_v1_api
|
||||
from oslo_log import log as logging
|
||||
|
||||
from magnum.conductor.handlers.common.cert_manager import create_client_files
|
||||
@ -24,7 +25,7 @@ from magnum.i18n import _LE
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class K8sAPI(apiv_api.ApivApi):
|
||||
class K8sAPI(core_v1_api.CoreV1Api):
|
||||
|
||||
def _create_temp_file_with_content(self, content):
|
||||
"""Creates temp file and write content to the file.
|
||||
@ -50,11 +51,14 @@ class K8sAPI(apiv_api.ApivApi):
|
||||
(self.ca_file, self.key_file,
|
||||
self.cert_file) = create_client_files(cluster, context)
|
||||
|
||||
config = k8s_config.ConfigurationObject()
|
||||
config.host = cluster.api_address
|
||||
config.ssl_ca_cert = self.ca_file.name
|
||||
config.cert_file = self.cert_file.name
|
||||
config.key_file = self.key_file.name
|
||||
|
||||
# build a connection with Kubernetes master
|
||||
client = api_client.ApiClient(cluster.api_address,
|
||||
key_file=self.key_file.name,
|
||||
cert_file=self.cert_file.name,
|
||||
ca_certs=self.ca_file.name)
|
||||
client = api_client.ApiClient(config=config)
|
||||
|
||||
super(K8sAPI, self).__init__(client)
|
||||
|
||||
|
@ -40,7 +40,7 @@ class K8sMonitor(monitors.MonitorBase):
|
||||
|
||||
def pull_data(self):
|
||||
k8s_api = k8s.create_k8s_api(self.context, self.cluster)
|
||||
nodes = k8s_api.list_namespaced_node()
|
||||
nodes = k8s_api.list_node()
|
||||
self.data['nodes'] = self._parse_node_info(nodes)
|
||||
pods = k8s_api.list_namespaced_pod('default')
|
||||
self.data['pods'] = self._parse_pod_info(pods)
|
||||
|
@ -26,9 +26,10 @@ import fixtures
|
||||
from six.moves import configparser
|
||||
|
||||
from heatclient import client as heatclient
|
||||
from k8sclient.client import api_client
|
||||
from k8sclient.client.apis import apiv_api
|
||||
from keystoneclient.v3 import client as ksclient
|
||||
from kubernetes import client as k8s_config
|
||||
from kubernetes.client import api_client
|
||||
from kubernetes.client.apis import core_v1_api
|
||||
|
||||
from magnum.common.utils import rmtree_without_raise
|
||||
import magnum.conf
|
||||
@ -386,26 +387,30 @@ class BaseK8sTest(ClusterTest):
|
||||
def setUpClass(cls):
|
||||
super(BaseK8sTest, cls).setUpClass()
|
||||
cls.kube_api_url = cls.cs.clusters.get(cls.cluster.uuid).api_address
|
||||
k8s_client = api_client.ApiClient(cls.kube_api_url,
|
||||
key_file=cls.key_file,
|
||||
cert_file=cls.cert_file,
|
||||
ca_certs=cls.ca_file)
|
||||
cls.k8s_api = apiv_api.ApivApi(k8s_client)
|
||||
config = k8s_config.ConfigurationObject()
|
||||
config.host = cls.kube_api_url
|
||||
config.ssl_ca_cert = cls.ca_file
|
||||
config.cert_file = cls.cert_file
|
||||
config.key_file = cls.key_file
|
||||
k8s_client = api_client.ApiClient(config=config)
|
||||
cls.k8s_api = core_v1_api.CoreV1Api(k8s_client)
|
||||
|
||||
def setUp(self):
|
||||
super(BaseK8sTest, self).setUp()
|
||||
self.kube_api_url = self.cs.clusters.get(self.cluster.uuid).api_address
|
||||
k8s_client = api_client.ApiClient(self.kube_api_url,
|
||||
key_file=self.key_file,
|
||||
cert_file=self.cert_file,
|
||||
ca_certs=self.ca_file)
|
||||
self.k8s_api = apiv_api.ApivApi(k8s_client)
|
||||
config = k8s_config.ConfigurationObject()
|
||||
config.host = self.kube_api_url
|
||||
config.ssl_ca_cert = self.ca_file
|
||||
config.cert_file = self.cert_file
|
||||
config.key_file = self.key_file
|
||||
k8s_client = api_client.ApiClient(config=config)
|
||||
self.k8s_api = core_v1_api.CoreV1Api(k8s_client)
|
||||
# TODO(coreypobrien) https://bugs.launchpad.net/magnum/+bug/1551824
|
||||
utils.wait_for_condition(self._is_api_ready, 5, 600)
|
||||
|
||||
def _is_api_ready(self):
|
||||
try:
|
||||
self.k8s_api.list_namespaced_node()
|
||||
self.k8s_api.list_node()
|
||||
self.LOG.info(_LI("API is ready."))
|
||||
return True
|
||||
except Exception:
|
||||
|
@ -137,7 +137,7 @@ class MonitorsTestCase(base.TestCase):
|
||||
mock_node.status = mock.MagicMock()
|
||||
mock_node.status.capacity = {'memory': '2000Ki', 'cpu': '1'}
|
||||
mock_nodes.items = [mock_node]
|
||||
mock_k8s_api.return_value.list_namespaced_node.return_value = (
|
||||
mock_k8s_api.return_value.list_node.return_value = (
|
||||
mock_nodes)
|
||||
mock_pods = mock.MagicMock()
|
||||
mock_pod = mock.MagicMock()
|
||||
|
@ -20,6 +20,7 @@ iso8601>=0.1.11 # MIT
|
||||
jsonpatch>=1.1 # BSD
|
||||
keystoneauth1>=2.18.0 # Apache-2.0
|
||||
keystonemiddleware>=4.12.0 # Apache-2.0
|
||||
kubernetes>=1.0.0b1 # Apache-2.0
|
||||
marathon>=0.8.6 # MIT
|
||||
netaddr!=0.7.16,>=0.7.13 # BSD
|
||||
oslo.concurrency>=3.8.0 # Apache-2.0
|
||||
@ -43,7 +44,6 @@ python-barbicanclient>=4.0.0 # Apache-2.0
|
||||
python-glanceclient>=2.5.0 # Apache-2.0
|
||||
python-heatclient>=1.6.1 # Apache-2.0
|
||||
python-neutronclient>=5.1.0 # Apache-2.0
|
||||
python-k8sclient>=0.2.0 # Apache-2.0
|
||||
python-novaclient>=7.1.0 # Apache-2.0
|
||||
python-keystoneclient>=3.8.0 # Apache-2.0
|
||||
requests!=2.12.2,!=2.13.0,>=2.10.0 # Apache-2.0
|
||||
|
Loading…
Reference in New Issue
Block a user