Skip to content

Commit

Permalink
final fix
Browse files Browse the repository at this point in the history
  • Loading branch information
pranavcracker committed Jan 30, 2025
1 parent c0eaea5 commit 9a7f960
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 45 deletions.
48 changes: 24 additions & 24 deletions kubemarine/kubernetes/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -509,7 +509,7 @@ def init_first_control_plane(group: NodeGroup) -> None:
first_control_plane.sudo("mkdir -p /etc/kubernetes")
first_control_plane.put(io.StringIO(config), '/etc/kubernetes/init-config.yaml', sudo=True)

# migrate_kubeadm_config(first_control_plane, "/etc/kubernetes/init-config.yaml")
migrate_kubeadm_config(first_control_plane, "/etc/kubernetes/init-config.yaml")
# put control-plane patches
components.create_kubeadm_patches_for_node(cluster, first_control_plane)

Expand Down Expand Up @@ -1164,7 +1164,7 @@ def images_prepull(group: DeferredGroup, collector: CollectorCallback) -> Token:

group.put(io.StringIO(config), '/etc/kubernetes/prepull-config.yaml', sudo=True)

# migrate_kubeadm_config(group, "/etc/kubernetes/prepull-config.yaml")
migrate_kubeadm_config(group, "/etc/kubernetes/prepull-config.yaml")

return group.sudo("kubeadm config images pull --config=/etc/kubernetes/prepull-config.yaml",
pty=True, callback=collector)
Expand Down Expand Up @@ -1296,27 +1296,27 @@ def prepare_audit_policy(group: NodeGroup) -> None:
# upload rules on cluster
group.put(io.StringIO(policy_config_file), audit_file_name, sudo=True, backup=True)

# def migrate_kubeadm_config(group: Union[NodeGroup, DeferredGroup], config_file: str) -> None:
# """
# Check if migration is needed based on Kubernetes minor version and perform the migration.
def migrate_kubeadm_config(group: Union[NodeGroup, DeferredGroup], config_file: str) -> None:
"""
Check if migration is needed based on Kubernetes minor version and perform the migration.
# :param group: Node group where the migration is performed.
# :param config_file: The path to the configuration file.
# """
# cluster: KubernetesCluster = group.cluster
# log = cluster.log

# # Retrieve Kubernetes version from inventory and parse the minor version
# k8s_version = cluster.inventory['services']['kubeadm']['kubernetesVersion']
# log.debug(f"Cluster Kubernetes version: {k8s_version}")
# minor_version = int(k8s_version.lstrip('v').split('.')[1])
:param group: Node group where the migration is performed.
:param config_file: The path to the configuration file.
"""
cluster: KubernetesCluster = group.cluster
log = cluster.log

# Retrieve Kubernetes version from inventory and parse the minor version
k8s_version = cluster.inventory['services']['kubeadm']['kubernetesVersion']
log.debug(f"Cluster Kubernetes version: {k8s_version}")
minor_version = int(k8s_version.lstrip('v').split('.')[1])

# # If minor version > 31, proceed with migration
# if minor_version > 31:
# config = config_file
# # Perform migration
# group.sudo(f"kubeadm config migrate --old-config {config} --new-config {config}-migrated", hide=True)
# log.debug(f"Kubeadm config migration successful: {config}-migrated")
# group.sudo(f"cp {config}-migrated {config}")
# else:
# log.debug(f"No migration needed for Kubernetes version: {k8s_version}")
# If minor version > 31, proceed with migration
if minor_version > 31:
config = config_file
# Perform migration
group.sudo(f"kubeadm config migrate --old-config {config} --new-config {config}-migrated", hide=True)
log.debug(f"Kubeadm config migration successful: {config}-migrated")
group.sudo(f"cp {config}-migrated {config}")
else:
log.debug(f"No migration needed for Kubernetes version: {k8s_version}")
13 changes: 0 additions & 13 deletions kubemarine/kubernetes/components.py
Original file line number Diff line number Diff line change
Expand Up @@ -516,19 +516,6 @@ def _upload_config(cluster: KubernetesCluster, control_plane: AbstractGroup[RunR
utils.dump_file(cluster, config, f"{name}_{control_plane.get_node_name()}.yaml")

control_plane.put(io.StringIO(config), remote_path, sudo=True)

# log = cluster.log
# k8s_version = cluster.inventory['services']['kubeadm']['kubernetesVersion']
# log.debug(f"Cluster Kubernetes version: {k8s_version}")
# minor_version = int(k8s_version.lstrip('v').split('.')[1])
# # If minor version > 31, proceed with migration
# if minor_version > 31:
# control_plane.sudo(f"kubeadm config migrate --old-config {remote_path} --new-config {remote_path}-migrated")
# log.debug(f"Kubeadm config migration successful: {remote_path}-migrated")
# control_plane.sudo(f"cp {remote_path}-migrated {remote_path}")
# else:
# log.debug(f"No migration needed for Kubernetes version: {k8s_version}")


def _update_configmap(cluster: KubernetesCluster, control_plane: NodeGroup, configmap: str,
uploader: Callable[[DeferredGroup], None], backup_dir: str) -> bool:
Expand Down
20 changes: 12 additions & 8 deletions kubemarine/procedures/check_paas.py
Original file line number Diff line number Diff line change
Expand Up @@ -318,14 +318,18 @@ def kubelet_config(cluster: KubernetesCluster) -> None:
if failed_nodes:
messages.append(f"/var/lib/kubelet/config.yaml is not consistent with patches from inventory "
f"on nodes {', '.join(failed_nodes)}")

cluster.log.debug("Checking kubelet-config ConfigMap consistency with services.kubeadm_kubelet section")
diff = components.compare_configmap(cluster, 'kubelet-config')
if diff is not None:
msg = "kubelet-config ConfigMap is not consistent with services.kubeadm_kubelet section"
messages.append(msg)
cluster.log.debug(msg)
cluster.log.debug(diff + '\n')

k8s_version = cluster.inventory['services']['kubeadm']['kubernetesVersion']
minor_version = int(k8s_version.lstrip('v').split('.')[1])
# If minor version > 31, skip checking kubelet-config ConfigMap consistency with services.kubeadm_kubelet section
if minor_version < 31:
cluster.log.debug("Checking kubelet-config ConfigMap consistency with services.kubeadm_kubelet section")
diff = components.compare_configmap(cluster, 'kubelet-config')
if diff is not None:
msg = "kubelet-config ConfigMap is not consistent with services.kubeadm_kubelet section"
messages.append(msg)
cluster.log.debug(msg)
cluster.log.debug(diff + '\n')

if not messages:
tc.success(results='valid')
Expand Down

0 comments on commit 9a7f960

Please sign in to comment.