Export apiserver cluster IP to puppet var

The Kubernetes API server cluster IP in not available for puppet
manifests. This commit makes this information available at
"platform::kubernetes::params::apiserver_cluster_ip".

Test Plan:

PASS: Successfully deploy an IPv4 AIO-SX and verify that the following
line is present at file
"/opt/platform/puppet/24.03/hieradata/system.yaml":
"platform::kubernetes::params::apiserver_cluster_ip: 10.96.0.1".

Partial-Bug: 2062079

Change-Id: I1ef708ca519c25a4504c7a0ccd92db8fd46ddb3d
Signed-off-by: Joao Victor Portal <Joao.VictorPortal@windriver.com>
This commit is contained in:
Joao Victor Portal 2024-04-16 17:45:42 -03:00
parent e0a9c407ac
commit 2ede09a70a
1 changed files with 10 additions and 3 deletions

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2018-2023 Wind River Systems, Inc.
# Copyright (c) 2018-2024 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
@ -30,8 +30,9 @@ from sysinv.puppet import interface
LOG = logging.getLogger(__name__)
# Offset aligns with kubeadm DNS IP allocation scheme:
# kubenetes/cmd/kubeadm/app/constants/constants.go:GetDNSIP
# Offsets align with kubeadm IP allocation scheme:
# kubenetes/cmd/kubeadm/app/constants/constants.go:GetAPIServerVirtualIP,GetDNSIP
CLUSTER_SERVICE_API_IP_OFFSET = 1
CLUSTER_SERVICE_DNS_IP_OFFSET = 10
# certificate keyring params
@ -64,6 +65,8 @@ class KubernetesPuppet(base.BasePuppet):
{'platform::kubernetes::params::enabled': True,
'platform::kubernetes::params::service_domain':
self._get_dns_service_domain(),
'platform::kubernetes::params::apiserver_cluster_ip':
self._get_apiserver_cluster_ip(),
'platform::kubernetes::params::dns_service_ip':
self._get_dns_service_ip(),
'platform::kubernetes::params::upgrade_to_version':
@ -394,6 +397,10 @@ class KubernetesPuppet(base.BasePuppet):
# Setting this to a constant for now. Will be configurable later
return constants.DEFAULT_DNS_SERVICE_DOMAIN
def _get_apiserver_cluster_ip(self):
subnet = netaddr.IPNetwork(self._get_cluster_service_subnet())
return str(subnet[CLUSTER_SERVICE_API_IP_OFFSET])
def _get_dns_service_ip(self):
subnet = netaddr.IPNetwork(self._get_cluster_service_subnet())
return str(subnet[CLUSTER_SERVICE_DNS_IP_OFFSET])