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

[deckhouse] check kernel versions for enabled modules #2709

Merged
merged 44 commits into from
Nov 8, 2022

Conversation

RomanenkoDenys
Copy link
Member

@RomanenkoDenys RomanenkoDenys commented Oct 11, 2022

Signed-off-by: Denis Romanenko denis.romanenko@flant.com

Description

Check kernel version dependencies for sensitive modules

Why do we need it, and what problem does it solve?

Some modules require special kernel versions for proper work.
For cilium - >= 4.9.17.
For cilium + istio - >= 5.7.
For cilium + openvpn - >= 5.7.
For cilium + node-local-dns - >= 5.7.

To prevent module problems, we need a mechanism that prohibits the use of a module if the kernel requirements are not satisfied.
We will use 2-level checking.

  • Fire alert if we discover nodes with unmet kernel requirements.
  • Add module (cilium, istio, openvpn) init containers to prevent controllers start if kernel requirements unmet.

What is the expected result?

Checklist

  • The code is covered by unit tests.
  • e2e tests passed.
  • Documentation updated according to the changes.
  • Changes were tested in the Kubernetes cluster manually.

Changelog entries

section: deckhouse
type: feature
summary: Check kernel version dependencies for sensitive modules.
impact: In case of unmet kernel dependencies, cilium or cilium + istio or cilium + openvpn or cilium + node-local-dns  modules will be locked by special init-contaiters.
impact_level: default 

Copy link
Member

@yalosev yalosev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move monitoring rules please

@RomanenkoDenys RomanenkoDenys force-pushed the check-kernel-versions branch 2 times, most recently from fd02587 to a9cb3c0 Compare October 19, 2022 10:21
@RomanenkoDenys RomanenkoDenys added e2e/run/gcp Run e2e tests in Google Cloud e2e/use/k8s/1.23 labels Oct 19, 2022
@deckhouse-BOaTswain
Copy link
Collaborator

deckhouse-BOaTswain commented Oct 19, 2022

🟢 e2e: GCP for deckhouse:check-kernel-versions succeeded in 28m12s.

Workflow details

🟢 e2e: GCP, Containerd, Kubernetes 1.23 succeeded in 27m32s.

@github-actions github-actions bot removed the e2e/run/gcp Run e2e tests in Google Cloud label Oct 19, 2022
yalosev
yalosev previously approved these changes Oct 19, 2022
@deckhouse-BOaTswain
Copy link
Collaborator

deckhouse-BOaTswain commented Oct 19, 2022

🔴 e2e: GCP for deckhouse:check-kernel-versions failed in 47m27s.

Workflow details (1 job failed)

🔴 e2e: GCP, Containerd, Kubernetes 1.23 failed in 46m35s.

@github-actions github-actions bot removed the e2e/run/gcp Run e2e tests in Google Cloud label Oct 19, 2022
apolovov
apolovov previously approved these changes Oct 20, 2022
RomanenkoDenys and others added 19 commits November 8, 2022 13:18
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
Co-authored-by: flsixtyfour <pavel.tishkov@flant.com>
Signed-off-by: Denys Romanenko <65756796+RomanenkoDenys@users.noreply.github.com>
Co-authored-by: flsixtyfour <pavel.tishkov@flant.com>
Signed-off-by: Denys Romanenko <65756796+RomanenkoDenys@users.noreply.github.com>
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
Co-authored-by: Andrey Polovov <andrey.polovov@flant.com>
Signed-off-by: Denys Romanenko <65756796+RomanenkoDenys@users.noreply.github.com>
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
Co-authored-by: Andrey Klimentyev <andrey.klimentyev@flant.com>
Signed-off-by: Denys Romanenko <65756796+RomanenkoDenys@users.noreply.github.com>
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
…ernel-requirements.yaml

Co-authored-by: Maksim Nabokikh <maksim.nabokikh@flant.com>
Signed-off-by: Denys Romanenko <65756796+RomanenkoDenys@users.noreply.github.com>
…ernel-requirements.yaml

Co-authored-by: Maksim Nabokikh <maksim.nabokikh@flant.com>
Signed-off-by: Denys Romanenko <65756796+RomanenkoDenys@users.noreply.github.com>
…ernel-requirements.yaml

Co-authored-by: Maksim Nabokikh <maksim.nabokikh@flant.com>
Signed-off-by: Denys Romanenko <65756796+RomanenkoDenys@users.noreply.github.com>
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
Signed-off-by: Denis Romanenko <denis.romanenko@flant.com>
@RomanenkoDenys RomanenkoDenys added the e2e/run/gcp Run e2e tests in Google Cloud label Nov 8, 2022
@deckhouse-BOaTswain
Copy link
Collaborator

deckhouse-BOaTswain commented Nov 8, 2022

🟢 e2e: GCP for deckhouse:check-kernel-versions succeeded in 28m33s.

Workflow details

🟢 e2e: GCP, Containerd, Kubernetes 1.23 succeeded in 27m40s.

@github-actions github-actions bot removed the e2e/run/gcp Run e2e tests in Google Cloud label Nov 8, 2022
@nabokihms nabokihms merged commit 4c45742 into main Nov 8, 2022
@nabokihms nabokihms deleted the check-kernel-versions branch November 8, 2022 11:54
This was referenced Nov 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/cluster-and-infrastructure Pull requests that update infra modules
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants