Skip to content
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

[PSUPCLPL-14309] Maintenance guide update #575

Merged
merged 4 commits into from
Jan 11, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Kubemarine is an open source, lightweight and powerful management tool built for

## Highlights
- Easy to use
- Many procedures supported:
- Many procedures supported following the [generic maintenance approach](documentation/Maintenance.md#basics):
- [install](documentation/Installation.md#)
- [add_node](documentation/Maintenance.md#add-node-procedure)
- [remove_node](documentation/Maintenance.md#remove-node-procedure)
Expand Down
2 changes: 2 additions & 0 deletions documentation/Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -1136,6 +1136,8 @@ services:

**Warning**: These kubeadm parameters are configurable only during installation, currently.
Kubemarine currently do not provide special procedure to change these parameters after installation.
To reconfigure the parameters manually, refer to the official documentation at [https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure).
For more information about generic approach of the cluster maintenance, refer to [Maintenance Basics](Maintenance.md#basics).

During init, join, upgrade procedures kubeadm runs `preflight` procedure to do some preliminary checks. In case of any error kubeadm stops working. Sometimes it is necessary to ignore some preflight errors to deploy or upgrade successfully.

Expand Down
15 changes: 11 additions & 4 deletions documentation/Maintenance.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,20 @@ Before you start any maintenance procedure, you must complete the following mand
1. If using custom RPM repositories, make sure they are online, accessible from nodes, and you are able to perform repository updates.
1. Prepare the latest actual **cluster.yaml** that should contain information about the current cluster state. For more information, refer to the [Kubemarine Inventory Preparation](Installation.md#inventory-preparation) section in _Kubemarine Installation Procedure_.

**Note**: If you provide an incorrect config file, it can cause unknown consequences.
**Note**: If you provide an incorrect config file, it can cause unknown consequences. For more information, refer to [Basics](#basics).

1. Prepare **procedure.yaml** file containing the configuration for the procedure that you are about to perform. Each procedure has its own configuration format. Read documentation below to fill procedure inventory data.

# Basics

According to `KubeMarine` concept the `cluster.yaml` is a reflection of a Kubernetes cluster state.
Therefore, any changes on cluster must be reflected in `cluster.yaml` in the corresponding section to be consistent with the cluster state.
That is important practice even if the `cluster.yaml` section or option is applicable only for installation procedure, because the particular `cluster.yaml` could be used for reinstallation or reproduction some cases.
For the changes that can't be reflected in `cluster.yaml` appropriate comments could be used.

Maintenance of the cluster can be done in two scenarios:
1. It can be performed using some Kubemarine procedure. In this case Kubemarine does its best to keep `cluster.yaml` and the cluster constistent to each other.
2. Cluster can be reconfigured manually. In this case the user should also manually reflect the changes in the `cluster.yaml`.

# Provided Procedures

Expand Down Expand Up @@ -329,9 +339,6 @@ etcd:
...
```

**Note**: All the custom settings for the system services should be properly reflected in the cluster.yaml (see [services.kubeadm parameters](Installation.md#kubeadm)) to be kept after upgrade.


#### Thirdparties Upgrade Section and Task

If the cluster is located in an isolated environment, it is possible to specify the custom paths to new thirdparties with the same syntax as in the `cluster.yaml` as shown in the following script:
Expand Down