Libvirt Helm Chart Override Generation

This commit adds libvirt's required helm chart overrides to sysinv.
These are based on libvirtd.conf and qemu.conf options used by the
native libvirt process on compute nodes.

To support live migration, change override listen address used by
libvirt from 127.0.0.1 to 0.0.0.0.  This is tracked by openstack-helm
storyboard 1769756.  Once that's in, we can remove this workaround.

Since upstream libvirt image tagging does not align with the
nomenclature used for other openstackhelm images (i.e. newton, pike...),
skip any image overrides generation if the source is the upstream repo.

Story: 2003909
Task: 27085
Change-Id: I77781ca5d439845ce518b83ff2253a1bb588b5d8
Co-Authored-By: Robert Church <robert.church@windriver.com>
Signed-off-by: Gerry Kopec <gerry.kopec@windriver.com>
This commit is contained in:
Gerry Kopec 2018-10-18 06:18:25 -04:00 committed by Chris Friesen
parent 1b90e60caf
commit 5f595190fd

View File

@ -21,6 +21,16 @@ class LibvirtHelm(openstack.OpenstackBaseHelm):
common.HELM_NS_OPENSTACK
]
SERVICE_NAME = 'libvirt'
@property
def docker_repo_source(self):
return common.DOCKER_SRC_STX
@property
def docker_repo_tag(self):
return common.DOCKER_SRCS[self.docker_repo_source][common.IMG_TAG_KEY]
def get_namespaces(self):
return self.SUPPORTED_NAMESPACES
@ -28,13 +38,25 @@ class LibvirtHelm(openstack.OpenstackBaseHelm):
overrides = {
common.HELM_NS_OPENSTACK: {
'conf': {
'libvirt': {
'listen_addr': '0.0.0.0'
},
'ceph': {
'enabled': 'false'
'enabled': False
},
'qemu': {
'user': "root",
'group': "root",
'cgroup_controllers': ["cpu", "cpuacct"],
'namespaces': [],
'clear_emulator_capabilities': 0
}
}
}
}
self._get_images_overrides(overrides[common.HELM_NS_OPENSTACK])
if namespace in self.SUPPORTED_NAMESPACES:
return overrides[namespace]
elif namespace:
@ -42,3 +64,13 @@ class LibvirtHelm(openstack.OpenstackBaseHelm):
namespace=namespace)
else:
return overrides
def _get_images_overrides(self, overrides_dict):
if self.docker_repo_source != common.DOCKER_SRC_OSH:
overrides_dict.update({
'images': {
'tags': {
'libvirt': self.docker_image
}
}
})