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

implement auto upgrades of wins.exe via the SUC image #260

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

HarrisonWAffel
Copy link
Contributor

Summary

Issue: rancher/rancher#47652

Problem

The rancher-wins system-upgrade-controller image does not automatically upgrade the wins.exe binary on the host. This forces users to reprovision Windows nodes in order to obtain the latest version of the system-agent and rancher-wins, and has resulted in unnecessary changes in Rancher to handle behavior differences between different versions of rancher-wins.

Solution

This PR introduces a new host package which embeds the latest version of wins.exe into the SUC image during compilation. When the SUC image runs, it will compare the version of wins installed onto the host (by invoking c:\Windows\wins.exe --version) and, if needed, write the embedded version to disk into the required directories (c:\Windows & c:\usr\local\bin).

This behavior can be disabled by setting the CATTLE_WINS_SKIP_BINARY_UPGRADE environment variable to true. This is required when running CI tests which do not fully install rancher-wins.

CI has been updated to cover this behavior during PRs and releases, ensuring that the proper version of wins.exe is always embedded into the SUC binary. Additionally, existing tests have been adjusted to ensure that we are tracking the proper exit code of certain commands.

Extra Context

This PR does not handle automatic upgrades of the csiproxy. Additional investigation needs to be done regarding this component.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant