ci: plan for when the windows-2022 runner is retired
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 30/100
Research direction
Start from the e2e test on windows job in the GitHub Actions workflow files, where #1464 pinned windows-2022, and from the k3s setup that uses knicknic/temp-kubernetes-ci. Check whether DISM /Online /Add-Capability /CapabilityName:WMIC~~~~ works on a windows-2025 runner and how long it takes. Done means a recorded comparison of the three options, with one of them tested on a fork's CI run.
Written by the indexing model from the issue text.
Description
What would you like to be added?
A plan to move the e2e test on windows job off windows-2022 before GitHub retires that runner image.
#1464 pinned the job to windows-2022 because windows-latest (Windows Server 2025) no longer ships wmic, and the kubelet in the k3s from knicknic/temp-kubernetes-ci fails to start without it:
exec: "wmic": executable file not found in %PATH%
Options, roughly from smallest to largest:
- Stay on
windows-2025and add WMIC back before k3s starts. It is still available as a Windows optional feature:DISM /Online /Add-Capability /CapabilityName:WMIC~~~~. This needs a check that the capability can be installed on the hosted runner, and how long it takes. - Replace
knicknic/temp-kubernetes-ciwith a cluster setup that does not needwmic, for example kind or k3d with Docker on Windows, if that works on hosted Windows runners. - Run the Windows job against a cluster started on a Linux job, so Windows only runs the
kusionbinary.
Why is this needed?
GitHub has not announced a retirement date for windows-2022 yet. Under its runner image policy, the oldest Windows image is deprecated once a newer one is GA, with an announcement and brownouts before removal. When that happens, the Windows nightly will go red again with the same error as #1237.
Suggested by @elliotxx in the review of #1464. I'm happy to try option 1 first on my fork's CI and report back.
- Dominant language
- Go
- Stars
- 1.3k
- Forks
- 110
- Avg merge
- 10h 43m
- Merged PRs (30d)
- 1
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from KusionStack/kusion
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
KusionStack/kusion#1450 ·
-
CI pinned to Go 1.22 and golangci-lint v1.56.2 blocks all Go dependency updatesPossibly taken @Iamrushabhshahh claimed this 3 days ago. Open
Difficulty 4/5 3-5 days Newbie friendliness 18/100
KusionStack/kusion#1462 · 2 comments ·
-
Difficulty 5/5 Over a week Newbie friendliness 10/100
KusionStack/kusion#1448 ·
-
Feat: AI-coding/vibe-coding support for writing Kusion modulesMay be free again @ruquanzhao claimed this 468 days ago, and no pull request is open. Openkind/feature
KusionStack/kusion#1436 · 1 reaction · 1 assignee ·
-
kind/feature
Difficulty 5/5 Over a week Newbie friendliness 25/100
KusionStack/kusion#1431 ·
All issues in KusionStack/kusion
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Billionmail/BillionMail#389 ·
-
good first issue help wanted v3
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
oras-project/oras-go#1621 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
Maintainers usually reply within 4 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
kaimahi-agents/kaimahi#570 ·
Maintainers usually reply within 1 day