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

Add OS details in machine spec #880

Closed
2 of 5 tasks
etiennnr opened this issue Dec 12, 2023 · 7 comments · Fixed by gardener/gardener-extension-provider-gcp#689
Closed
2 of 5 tasks

Add OS details in machine spec #880

etiennnr opened this issue Dec 12, 2023 · 7 comments · Fixed by gardener/gardener-extension-provider-gcp#689
Assignees
Labels
area/ops-productivity Operator productivity related (how to improve operations) area/robustness Robustness, reliability, resilience related exp/beginner Issue that requires only basic skills kind/enhancement Enhancement, improvement, extension needs/planning Needs (more) planning with other MCM maintainers priority/3 Priority (lower number equals higher priority) status/closed Issue is closed (either delivered or triaged)

Comments

@etiennnr
Copy link

etiennnr commented Dec 12, 2023

How to categorize this issue?

/area ops-productivity robustness
/kind enhancement
/priority 3

What would you like to be added:
Context: I'm trying to detect shoots that are in failed state with either k8s or worker version expired. However, when a version is expired in the cloudProfile (aka later than the expiration date), the shoots yaml is automatically updated at the first maintenance period (aka max 24h after). This means that the k8s and worker version data in the shoot yaml is not "trustable" for my use case.

So I have to go get that data from either the seed or the shoot itself. It's pretty easy for the k8s version (simply get the /version of the shoot's kapi) but it's proving to be much harder than expected for the workers...

In order to compare the versions with the cloudProfile, I need both the OS name and version. So I first tried looking at the nodes directly. There's the .status.nodeInfo.osImage but that data is a string (eg. Garden Linux 934.8) so I'd have to create a regex that supports all ways of displaying the OS name + version. Also, this is quite cumbersome, and the version is not always the same as in the cloud profile depending on the OS.

So, instead, I'd like to have that data (os name and os version) as an annotation / spec in the machine (and/or machineDeployment, machineclass, machinesets, node).

Changes will be needed in all gardener-extension-providers:-

Why is this needed:
When running some reports, we want to be able to fetch the version of the actual nodes in the shoot vs what's in the cloud profile.

@etiennnr etiennnr added the kind/enhancement Enhancement, improvement, extension label Dec 12, 2023
@gardener-robot gardener-robot added area/ops-productivity Operator productivity related (how to improve operations) area/robustness Robustness, reliability, resilience related priority/3 Priority (lower number equals higher priority) labels Dec 12, 2023
@tedteng
Copy link

tedteng commented Jan 5, 2024

I like to have a look if no objections.
/assign

@tedteng tedteng removed their assignment Jan 7, 2024
@rishabh-11
Copy link
Contributor

Post Grooming Decision:-

Two options:-

  1. Add an annotation on the machine after creation which will reflect the OS version and name.
  2. Add immutable status fields in the machine status for OS name and version.

We will go with option 1 for ease of implementation.

@rishabh-11 rishabh-11 added exp/beginner Issue that requires only basic skills needs/planning Needs (more) planning with other MCM maintainers labels Jan 11, 2024
@tedteng
Copy link

tedteng commented Jan 17, 2024

Add an annotation on the machine after creation which will reflect the OS version and name.

Thanks. I will follow this option.
/assign

@rishabh-11
Copy link
Contributor

Change in Post Grooming Decision:-

It is not possible for MCM to get the OS name and version from the current information that it has. The extension providers do have the information of os name and version via the worker custom resource. The decision is made to make a change in respective gardener extension providers to add two labels in the machine class while generating it.

@rishabh-11
Copy link
Contributor

/reopen as changes are not done in all extensions

@tedteng
Copy link

tedteng commented Apr 22, 2024

all extension PRs merged and closed

@etiennnr
Copy link
Author

Since all PRs have been merged and everything has been released (except for OpenStack, which should happen within the next 2 weeks), I think we can close this issue. Thanks y'all for your support :)

@gardener-robot gardener-robot added status/closed Issue is closed (either delivered or triaged) and removed status/accepted Issue was accepted as something we need to work on labels May 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/ops-productivity Operator productivity related (how to improve operations) area/robustness Robustness, reliability, resilience related exp/beginner Issue that requires only basic skills kind/enhancement Enhancement, improvement, extension needs/planning Needs (more) planning with other MCM maintainers priority/3 Priority (lower number equals higher priority) status/closed Issue is closed (either delivered or triaged)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants