updated k8s info in hieradata

Added kubelet_version and kubeadm_version
to hieradata. The versions are retrieved
from the kube_versions table.

Story: 2008972
Task: 42919
Depends-on: https://review.opendev.org/c/starlingx/config/+/802323

Change-Id: Iae808000593ac293ad66389ee83081868f89c748
Signed-off-by: Daniel Safta <daniel.safta@windriver.com>
This commit is contained in:
Daniel Safta 2021-08-04 08:21:11 +00:00
parent ca990c5a0d
commit fd02b27e44
3 changed files with 34 additions and 0 deletions

View File

@ -1480,6 +1480,10 @@ class KubePodDeleteUnexpected(SysinvException):
message = "Pod %(namespace)/%(name)s was unexpectedly deleted."
class KubeVersionUnavailable(NotFound):
message = "Getting kubeadm and kubelet versions failed"
class HelmTillerFailure(SysinvException):
message = _("Helm operation failure: %(reason)s")

View File

@ -88,6 +88,9 @@ class KubernetesPuppet(base.BasePuppet):
# Get kubernetes certificates config for this host
config.update(self._get_host_k8s_certificates_config(host))
# Get the kubernetes version for this host
config.update(self._get_kubeadm_kubelet_version())
return config
def get_host_config_upgrade(self, host):
@ -347,6 +350,23 @@ class KubernetesPuppet(base.BasePuppet):
LOG.warning("Unable to retrieve kubernetes version")
config.update({'platform::kubernetes::params::version': version})
return config
def _get_kubeadm_kubelet_version(self):
config = {}
kubeadm_version = None
kubelet_version = None
try:
kube_version = self.dbapi.kube_cmd_version_get()
kubeadm_version = kube_version.kubeadm_version
kubelet_version = kube_version.kubelet_version
config.update({'platform::kubernetes::params::kubeadm_version': kubeadm_version})
config.update({'platform::kubernetes::params::kubelet_version': kubelet_version})
except Exception:
raise exception.KubeVersionUnavailable()
return config
def _get_host_cluster_address(self, host):

View File

@ -11,6 +11,7 @@ import uuid
from sysinv.common import utils
from sysinv.common import constants
from sysinv.common import device as dconstants
from sysinv.common.kubernetes import KUBERNETES_DEFAULT_VERSION
from sysinv.puppet import interface
from sysinv.tests.db import base as dbbase
from sysinv.tests.db import utils as dbutils
@ -258,3 +259,12 @@ class SriovdpTestCase(test_interface.InterfaceTestCaseMixin, dbbase.BaseHostTest
json.dumps({'resourceList': []})
}
self.assertEqual(expected, actual)
def test_kubernetes_versions_in_hieradata(self):
config = self.operator.kubernetes._get_kubeadm_kubelet_version()
kubeadm_version = config.get("platform::kubernetes::params::kubeadm_version")
kubelet_version = config.get("platform::kubernetes::params::kubelet_version")
self.assertEqual(kubeadm_version, KUBERNETES_DEFAULT_VERSION)
self.assertEqual(kubelet_version, KUBERNETES_DEFAULT_VERSION)