-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CPDEV-96588] Kubemarine cluster reconfigure procedure #592
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ilia1243
force-pushed
the
feature/kubeadm_reconfigure
branch
from
February 1, 2024 15:19
96a26c4
to
5b7ce0d
Compare
5 tasks
ilia1243
force-pushed
the
feature/kubeadm_reconfigure
branch
6 times, most recently
from
February 7, 2024 09:59
338befe
to
495a513
Compare
ilia1243
force-pushed
the
feature/kubeadm_reconfigure
branch
from
February 8, 2024 07:11
495a513
to
0c8c654
Compare
ilia1243
force-pushed
the
feature/kubeadm_reconfigure
branch
from
February 9, 2024 10:09
4fea911
to
83bbbe0
Compare
ilia1243
changed the title
[CPDEV-96588] Draft: Kubemarine cluster reconfigure procedure
[CPDEV-96588] Kubemarine cluster reconfigure procedure
Feb 9, 2024
theboringstuff
approved these changes
Feb 13, 2024
Imadzuma
approved these changes
Feb 13, 2024
ilia1243
force-pushed
the
feature/kubeadm_reconfigure
branch
3 times, most recently
from
February 16, 2024 14:43
0c44999
to
b1dd442
Compare
Add services.kubelet.config PaaS check. Generate manifests, kubelet config in dry run mode and compare with stored configs. Added custom merging and comparing of kubelet-config and kube-proxy ConfigMaps Added generating of kubelet-config in dry run mode for Kubernetes >= 1.26 Rework `kubernetes.admission` check.
…g to the next ones.
Balancer or worker node could be chosen to run kubectl.
ilia1243
force-pushed
the
feature/kubeadm_reconfigure
branch
from
February 19, 2024 08:22
b1dd442
to
789567b
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Fixes #530
Solution
services.kubeadm.apiServer
services.kubeadm.apiServer.certSANs
services.kubeadm.scheduler
services.kubeadm.controllerManager
services.kubeadm.etcd.local.extraArgs
services.kubeadm_kubelet
(only very restricted set of properties)services.kubeadm_kube-proxy
services.kubeadm_patches
kubemarine/kubernetes/components.py
kubeadm upload-config
kubeadm
phase.apiServer.certSANs
andkubeadm init phase certs apiserver
.proceeding to the next nodes only after they are considered up and ready on the reconfigured node.
components.py
.upgrade
procedure.control_plane.configuration_status
generates manifests in dry run mode and compares with persisted manifests.services.kubelet.configuration
is renamed toservices.kubelet.pid_max
services.kubelet.configuration
that(new
services.kube-proxy.configuration
check)services.kubeadm_patches
.kube-proxy
pods on worker nodes in many procedures.API Changes
manage_pss
procedure: replaceddelete_default_pss
andapply_default_pss
tasks to singlemanage_pss
task.manage_psp
procedure: replacedreconfigure_oob
andreconfigure_plugin
tasks to singlereconfigure_psp
task.Regression Testing
install --tasks deploy.kubernetes.audit
.Test Cases
TestCase 1
Check reconfiguring of all kubeadm-managed properties
Steps:
reconfigure
procedure providing new properties for all Kubernetes components(etcd, kube-apiserver, kube-controller-manager, kube-scheduler, kubelet, kube-proxy),
with different patches.
ER: All components are reconfigured and restarted on all relevant nodes one by one.
TestCase 2
Reconfigure some supported kubeadm-managed properties.
Steps:
ER: Only affected components are reconfigured.
TestCase 3
Run procedure without changes.
Steps:
cluster.yaml
.ER: Components are not reconfigured, not restarted, but pods are waited for.
TestCase 4
Run procedure with empty sections.
Steps:
cluster.yaml
manually, and configure empty sections in the procedure inventory.ER: Only affected components are reconfigured.
TestCase 5
Configure new properties that break some components.
Steps:
kubemarine reconfigure
.ER: Procedure fails after components on the first node not started.
TestCase 6
TC from issue #586
TestCase 7
PaaS check etcd configuration.
Steps:
ER: Test checks that manifests is not consistent with the inventory and kubeadm-config ConfigMap.
TestCase 8
PaaS check
services.kubeadm_patches
configuration.Steps:
services.kubeadm_patches
(but not on the cluster).ER: Test checks that manifests, kubelet config are not consistent with the inventory.
TestCase 9
PaaS check
services.kubeadm_kubelet
configuration.Steps:
ER: Test checks that config.yaml, kubelet-config ConfigMap, and inventory are not consistent.
TestCase 10
PaaS check kubelet-config ConfigMap.
Steps:
ER: Test checks that the ConfigMap is not consistent with the inventory.
TestCase 11
PaaS check kube-proxy ConfigMap.
Steps:
ER: Test checks that the ConfigMap is not consistent with the inventory.
Checklist
Unit tests
test_reconfigure.py - enrichment, reconfiguration of Kubernetes components
test_add_node.py - to cover issue #530
test_group.py - new NodeGroup.wait_commands_successful method
test_inventory.py - PSS / PSP enrichment
test_kubernetes_components.py - cover some functionality of
kubernetes/components.py
test_manage_psp.py / test_manage_pss.py - Manage PSS / PSP enrichment and reconfiguration of kube-apiserver
test_upgrade.py - reconfiguration of kube-apiserver, kube-proxy during upgrade from v1.27 to v1.29