Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
a77d7ec
Bump actions/download-artifact from 6 to 7 (#13346)
dependabot[bot] Dec 22, 2025
d208eeb
Bump actions/cache from 4 to 5 (#13347)
dependabot[bot] Jan 5, 2026
e71047f
Bump golangci-lint for go1.25
brandond Dec 12, 2025
d65dd16
Add lint/validate job
brandond Dec 12, 2025
26a5c61
lint: file is not properly formatted
brandond Dec 15, 2025
ff6564e
lint: redundant-build-tag
brandond Dec 15, 2025
5f1c5ab
lint: use-any
brandond Dec 15, 2025
71a7044
lint: dot-imports
brandond Dec 15, 2025
4adac95
lint: comment-spacings
brandond Dec 15, 2025
a591850
lint: deep-exit
brandond Dec 15, 2025
63c2dc6
lint: bare-return
brandond Dec 15, 2025
38dc578
lint: bool-literal-in-expr
brandond Dec 15, 2025
9aefc4c
lint: defer,get-return
brandond Dec 15, 2025
080d4a9
lint: duplicated-imports
brandond Dec 15, 2025
156e57d
lint: empty-lines
brandond Dec 15, 2025
2ef5ffe
lint: exported
brandond Dec 15, 2025
6099e37
lint: if-return
brandond Dec 15, 2025
6d1ac0e
lint: import-alias-naming
brandond Dec 15, 2025
2e5f5cb
lint: indent-error-flow
brandond Dec 15, 2025
f9c6290
lint: redefines-builtin-id
brandond Dec 15, 2025
7e15571
lint: struct-tag
brandond Dec 15, 2025
80b9861
lint: superfluous-else
brandond Dec 15, 2025
8acaf9e
lint: unchecked-type-assertion
brandond Dec 16, 2025
cfd15a4
lint: unexported-naming
brandond Dec 16, 2025
e5f7839
lint: unexported-return
brandond Dec 16, 2025
91e5ed8
lint: unnecessary-stmt
brandond Dec 16, 2025
5075da0
lint: useless-break
brandond Dec 16, 2025
dcc99ea
lint: identical-switch-branches
brandond Dec 16, 2025
ee0dbdf
lint: unhandled-error
brandond Dec 16, 2025
e67ebaf
lint: unnecessary-format,use-errors-new
brandond Dec 16, 2025
8771220
lint: nested-structs
brandond Dec 16, 2025
9a3f799
Fix PR lint checkout depth
brandond Dec 18, 2025
f8a04ad
Bump stable to 1.34 and add 1.35
brandond Dec 19, 2025
b15c943
Don't enforce use of wg.Go instead of Add/Done
brandond Dec 18, 2025
719c1a3
Replace temporary etcd server with raw mvcc store access
brandond Dec 18, 2025
d8118e0
Fix etcd reconcile with empty TLS dirs
brandond Dec 19, 2025
0d4cada
Add tests for etcd local reconcile
brandond Dec 19, 2025
6918aa6
Remove flannel external-ip annotations when disabled
brandond Jan 6, 2026
5d6f54e
Bump CNI plugins
brandond Jan 7, 2026
484737f
Drop use of deprecated docker reexec package
brandond Jan 7, 2026
03cba3c
Fix atomic write in WriteSubnetFile
luojiyin1987 Dec 26, 2025
8ebcd5e
Bump expr-lang/expr
brandond Jan 7, 2026
f8ef0e5
Bump spegel to v0.6.0
brandond Nov 12, 2025
ac3c94d
Add deferred store implimentation
brandond Nov 12, 2025
3f46da3
Update longhorn version in integration test from v1.4.0 to v1.10.1
brandond Jan 8, 2026
f6aa1dd
Bump kine for NATS conformance fixes
brandond Jan 7, 2026
0e40dd7
Fix setup-go cache issues
brandond Jan 9, 2026
44cc8ba
Remove download/generate from vulncheck
brandond Jan 9, 2026
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
31 changes: 23 additions & 8 deletions .github/actions/setup-go/action.yaml
Original file line number Diff line number Diff line change
@@ -1,29 +1,44 @@
name: 'Setup golang with main only caching'
name: 'Setup Go with Limited Cache'
description: 'A composite action that installs golang, but with a caching strategy that only updates the cache on main branch.'
inputs:
go-version:
description: 'The Go version to download (if necessary) and use. Supports semver spec and ranges. Be sure to enclose this option in single quotation marks.'
default: ''

runs:
using: 'composite'
steps:
- uses: actions/setup-go@v5
- name: Find Latest Release Branch
shell: bash
run: |
LATEST_RELEASE_BRANCH=$(gh api repos/k3s-io/k3s/branches?per_page=100 --jq '[.[].name | select(startswith("release-"))] | sort_by(ltrimstr("release-") | tonumber) | last')
echo "LATEST_RELEASE_REF=refs/heads/$LATEST_RELEASE_BRANCH" | tee -a "$GITHUB_ENV"
env:
GH_TOKEN: ${{ github.token }}

- name: Setup Go
uses: actions/setup-go@v6
with:
go-version-file: 'go.mod' # Just use whatever version is in the go.mod file
cache: ${{ github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release-1.32' }}
go-version: ${{ env.INPUT_GO_VERSION }}
go-version-file: 'go.mod' # if go-version is not set, just use whatever version is in the go.mod file
cache: ${{ github.ref == 'refs/heads/main' || github.ref == env.LATEST_RELEASE_REF }} # use default cache for main and most recent minor

- name: Prepare for go cache
if: github.ref != 'refs/heads/main' && github.ref != 'refs/heads/release-1.32'
if: github.ref != 'refs/heads/main' && github.ref != env.LATEST_RELEASE_REF # use custom cache for older minors
shell: bash
run: |
echo "GO_CACHE=$(go env GOCACHE)" | tee -a "$GITHUB_ENV"
echo "GO_MODCACHE=$(go env GOMODCACHE)" | tee -a "$GITHUB_ENV"
echo "GO_VERSION=$(go env GOVERSION | tr -d 'go')" | tee -a "$GITHUB_ENV"

- name: Setup read-only cache
if: github.ref != 'refs/heads/main' && github.ref != 'refs/heads/release-1.32'
uses: actions/cache/restore@v4
if: github.ref != 'refs/heads/main' && github.ref != env.LATEST_RELEASE_REF # use custom cache for older minors
uses: actions/cache/restore@v5
with:
path: |
${{ env.GO_MODCACHE }}
${{ env.GO_CACHE }}
# Match the cache key to the setup-go action https://github.com/actions/setup-go/blob/main/src/cache-restore.ts#L34
key: setup-go-${{ runner.os }}-${{ env.ImageOS }}-go-${{ env.GO_VERSION }}-${{ hashFiles('go.sum') }}
restore-keys: |
setup-go-${{ runner.os }}-
setup-go-${{ runner.os }}-
84 changes: 43 additions & 41 deletions .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,25 @@ jobs:
etest: [btrfs, embeddedmirror, externalip, privateregistry, rootless, s3, startup, wasm, multus]
max-parallel: 5
steps:
- name: Remove Unnecessary Tools
working-directory: /
run: |
sudo rm -rf \
/home/linuxbrew \
/home/packer \
/opt/az \
/opt/microsoft \
/usr/lib/firefox \
/usr/lib/google-cloud-sdk \
/usr/local/julia* \
/usr/local/share/boost \
/usr/local/share/chromium \
/usr/local/share/powershell \
/usr/share/az* \
/usr/share/dotnet \
/usr/share/miniconda \
/usr/share/swift
df -khl
- name: "Checkout"
uses: actions/checkout@v6
with: {fetch-depth: 1}
Expand All @@ -67,14 +86,14 @@ jobs:
uses: ./.github/actions/vagrant-setup
- name: Vagrant R/W Cache
if: matrix.etest != 'btrfs' && github.ref == 'refs/heads/main'
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
~/.vagrant.d/boxes
key: ${{ matrix.etest != 'btrfs' && 'vagrant-box-ubuntu-2404' || 'vagrant-box-leap' }}
- name: Vagrant Read Cache
if: matrix.etest != 'btrfs' && github.ref != 'refs/heads/main'
uses: actions/cache/restore@v4
uses: actions/cache/restore@v5
with:
path: |
~/.vagrant.d/boxes
Expand All @@ -88,28 +107,10 @@ jobs:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
- name: "Download k3s binary"
uses: actions/download-artifact@v6
uses: actions/download-artifact@v7
with:
name: k3s-amd64
path: ./dist/artifacts
- name: Remove Unnecessary Tools
run: |
sudo rm -rf \
/home/linuxbrew \
/home/packer \
/opt/az \
/opt/microsoft \
/usr/lib/firefox \
/usr/lib/google-cloud-sdk \
/usr/local/julia* \
/usr/local/share/boost \
/usr/local/share/chromium \
/usr/local/share/powershell \
/usr/share/az* \
/usr/share/dotnet \
/usr/share/miniconda \
/usr/share/swift
df -khl
- name: Run ${{ matrix.etest }} Test
env:
E2E_GOCOVER: "true"
Expand Down Expand Up @@ -202,10 +203,29 @@ jobs:
env:
CHANNEL: ${{ needs.build-go-tests.outputs.channel }}
steps:
- name: Remove Unnecessary Tools
working-directory: /
run: |
sudo rm -rf \
/home/linuxbrew \
/home/packer \
/opt/az \
/opt/microsoft \
/usr/lib/firefox \
/usr/lib/google-cloud-sdk \
/usr/local/julia* \
/usr/local/share/boost \
/usr/local/share/chromium \
/usr/local/share/powershell \
/usr/share/az* \
/usr/share/dotnet \
/usr/share/miniconda \
/usr/share/swift
df -khl
- name: Checkout
uses: actions/checkout@v6
- name: "Download K3s image"
uses: actions/download-artifact@v6
uses: actions/download-artifact@v7
with:
name: k3s-${{ matrix.arch }}
path: ./dist/artifacts
Expand All @@ -225,28 +245,10 @@ jobs:
IMAGE_TAG=$(docker image ls --format '{{.Repository}}:{{.Tag}}' | grep 'rancher/k3s')
echo "K3S_IMAGE=$IMAGE_TAG" >> $GITHUB_ENV
- name: Download Go Tests
uses: actions/download-artifact@v6
uses: actions/download-artifact@v7
with:
name: docker-go-tests-${{ matrix.arch }}
path: ./dist/artifacts
- name: Remove Unnecessary Tools
run: |
sudo rm -rf \
/home/linuxbrew \
/home/packer \
/opt/az \
/opt/microsoft \
/usr/lib/firefox \
/usr/lib/google-cloud-sdk \
/usr/local/julia* \
/usr/local/share/boost \
/usr/local/share/chromium \
/usr/local/share/powershell \
/usr/share/az* \
/usr/share/dotnet \
/usr/share/miniconda \
/usr/share/swift
df -khl
- name: Run ${{ matrix.dtest }} Test
# Put the compiled test binary back in the same place as the test source
run: |
Expand Down
4 changes: 0 additions & 4 deletions .github/workflows/govulncheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@ jobs:
uses: actions/checkout@v6
- name: Install Go
uses: ./.github/actions/setup-go
- name: Go Generate
run: |
./scripts/download
./scripts/generate
- name: Install govulncheck
run: go install golang.org/x/vuln/cmd/govulncheck@latest
- name: Run govulncheck
Expand Down
37 changes: 19 additions & 18 deletions .github/workflows/install.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,25 +38,8 @@ jobs:
env:
INSTALL_K3S_SKIP_DOWNLOAD: binary
steps:
- name: "Checkout"
uses: actions/checkout@v6
with: {fetch-depth: 1}
- name: Set up vagrant and libvirt
uses: ./.github/actions/vagrant-setup
- name: "Vagrant Cache"
uses: actions/cache@v4
with:
path: |
~/.vagrant.d/boxes
key: vagrant-box-${{ matrix.vm }}
- name: "Vagrant Plugin(s)"
run: vagrant plugin install vagrant-k3s vagrant-reload vagrant-scp
- name: "Download k3s binary"
uses: actions/download-artifact@v6
with:
name: k3s-amd64
path: tests/install/${{ matrix.vm }}
- name: Remove Unnecessary Tools
working-directory: /
run: |
sudo rm -rf \
/home/linuxbrew \
Expand All @@ -74,6 +57,24 @@ jobs:
/usr/share/miniconda \
/usr/share/swift
df -khl
- name: "Checkout"
uses: actions/checkout@v6
with: {fetch-depth: 1}
- name: Set up vagrant and libvirt
uses: ./.github/actions/vagrant-setup
- name: "Vagrant Cache"
uses: actions/cache@v5
with:
path: |
~/.vagrant.d/boxes
key: vagrant-box-${{ matrix.vm }}
- name: "Vagrant Plugin(s)"
run: vagrant plugin install vagrant-k3s vagrant-reload vagrant-scp
- name: "Download k3s binary"
uses: actions/download-artifact@v7
with:
name: k3s-amd64
path: tests/install/${{ matrix.vm }}
- name: "Vagrant Up"
run: vagrant up --no-tty --no-provision
- name: "Upload k3s binary to VM"
Expand Down
23 changes: 21 additions & 2 deletions .github/workflows/integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,33 @@ jobs:
itest: [certrotation, cacertrotation, etcdrestore, localstorage, startup, custometcdargs, etcdsnapshot, kubeflags, longhorn, secretsencryption, flannelnone]
max-parallel: 3
steps:
- name: Remove Unnecessary Tools
working-directory: /
run: |
sudo rm -rf \
/home/linuxbrew \
/home/packer \
/opt/az \
/opt/microsoft \
/usr/lib/firefox \
/usr/lib/google-cloud-sdk \
/usr/local/julia* \
/usr/local/share/boost \
/usr/local/share/chromium \
/usr/local/share/powershell \
/usr/share/az* \
/usr/share/dotnet \
/usr/share/miniconda \
/usr/share/swift
df -khl
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 1
- name: Install Go
uses: ./.github/actions/setup-go
- name: "Download k3s binary"
uses: actions/download-artifact@v6
uses: actions/download-artifact@v7
with:
name: k3s-amd64
path: ./dist/artifacts
Expand Down Expand Up @@ -101,7 +120,7 @@ jobs:
- name: Install Go
uses: ./.github/actions/setup-go
- name: Download k3s binary
uses: actions/download-artifact@v6
uses: actions/download-artifact@v7
with:
name: k3s-windows
path: dist/artifacts/
Expand Down
25 changes: 13 additions & 12 deletions .github/workflows/nightly-install.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,8 @@ jobs:
env:
INSTALL_K3S_CHANNEL: ${{ matrix.channel }}
steps:
- name: "Checkout"
uses: actions/checkout@v6
with: {fetch-depth: 1}
- name: Set up vagrant and libvirt
uses: ./.github/actions/vagrant-setup
- name: "Vagrant Cache"
uses: actions/cache@v4
with:
path: |
~/.vagrant.d/boxes
key: vagrant-box-${{ matrix.vm }}
id: vagrant-cache
- name: Remove Unnecessary Tools
working-directory: /
run: |
sudo rm -rf \
/home/linuxbrew \
Expand All @@ -54,6 +43,18 @@ jobs:
/usr/share/miniconda \
/usr/share/swift
df -khl
- name: "Checkout"
uses: actions/checkout@v6
with: {fetch-depth: 1}
- name: Set up vagrant and libvirt
uses: ./.github/actions/vagrant-setup
- name: "Vagrant Cache"
uses: actions/cache@v5
with:
path: |
~/.vagrant.d/boxes
key: vagrant-box-${{ matrix.vm }}
id: vagrant-cache
- name: "Vagrant Plugin(s)"
run: vagrant plugin install vagrant-k3s vagrant-reload
- name: "Vagrant Up ⏩ Install K3s"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/trivy-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ jobs:

steps:
- name: Download Trivy Report artifact
uses: actions/download-artifact@v6
uses: actions/download-artifact@v7
if: needs.trivy_scan.result == 'success'
with:
name: trivy-report
Expand Down
6 changes: 2 additions & 4 deletions .github/workflows/updatecli.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,8 @@ jobs:
uses: actions/checkout@v6

- name: Install Go
uses: actions/setup-go@v6
with:
go-version: 'stable'
cache: false
uses: ./.github/actions/setup-go

- name: Delete leftover UpdateCLI branches
run: |
gh pr list --search "is:closed is:pr head:updatecli_" --json headRefName --jq ".[].headRefName" | sort -u > closed_prs_branches.txt
Expand Down
Loading