Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
c473d65
[inttest] containerd v1 to v2 live migration
juanluisvaladas Mar 26, 2026
d36a96d
Bump k0sproject/k0sctl to v0.29.0
k0s-bot Mar 26, 2026
76cf2b7
Bump requests from 2.32.5 to 2.33.0 in /docs
dependabot[bot] Mar 26, 2026
b12be89
Bump DavidAnson/markdownlint-cli2-action from 22.0.0 to 23.0.0
dependabot[bot] Mar 26, 2026
67e5e74
Bump docker.io/library/traefik Docker tag to v3.6.12
k0s-bot Mar 27, 2026
e170b06
Bump moby/buildkit to v0.28.1
k0s-bot Mar 27, 2026
149902c
Bump korthout/backport-action from 4.2.0 to 4.3.0
dependabot[bot] Mar 26, 2026
f07f083
Update the traefik ingress controller example
olofvndrhr Mar 22, 2026
32f8c96
Update metallb docs to use the correct namespace and fix formatting
olofvndrhr Mar 22, 2026
27a5d5f
Fix indentation for markdownlint
olofvndrhr Mar 22, 2026
e4d6b3d
Remove minio from storage.md docs
Mar 21, 2026
5350ae0
Bump docker.io/library/nginx Docker tag to v1.29.7
k0s-bot Mar 27, 2026
695d148
[renovate] Don't bump go in release-1.34
juanluisvaladas Mar 27, 2026
67aa552
Bump pymdown-extensions from 10.21 to 10.21.2 in /docs
dependabot[bot] Mar 30, 2026
fa08f7f
Bump renovatebot/github-action from 46.1.6 to 46.1.7
dependabot[bot] Mar 30, 2026
765a1e2
Bump pygments from 2.19.2 to 2.20.0 in /docs
dependabot[bot] Mar 31, 2026
f151685
Bump modernc.org/sqlite from 1.47.0 to 1.48.0
dependabot[bot] Mar 30, 2026
898b872
Bump regex from 2026.2.28 to 2026.3.32 in /docs
dependabot[bot] Mar 30, 2026
8baec2a
Simplify checking if containerd config k0s managed
juanluisvaladas Mar 31, 2026
b343ace
Require containerd imports to be version 3
juanluisvaladas Mar 31, 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
2 changes: 1 addition & 1 deletion .github/workflows/backport.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
git config merge.mergiraf.driver '${{ github.workspace }}/.git/mergiraf/mergiraf merge --git %O %A %B -s %S -x %X -y %Y -p %P -l %L'

- name: Create backport PRs
uses: korthout/backport-action@v4.2.0
uses: korthout/backport-action@v4.3.0
with:
# Inputs documented here: https://github.com/korthout/backport-action?tab=readme-ov-file#inputs
github_token: ${{ secrets.GH_BACKPORT_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: DavidAnson/markdownlint-cli2-action@v22.0.0
- uses: DavidAnson/markdownlint-cli2-action@v23.0.0
with:
config: .markdownlint.jsonc
globs: '**/*.md'
1 change: 0 additions & 1 deletion .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -461,7 +461,6 @@ jobs:
- name: "Docker prune"
if: always()
run: docker system prune --force --filter "until=$((24*7))h"

win-wsl-smoketest:
name: "Windows WSL Smoketest"
needs: [build-k0s]
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ostests-e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ on:
k0sctl-version:
type: string
description: The k0sctl version to use when bootstrapping the test cluster.
default: 0.28.0 # renovate: datasource=github-releases depName=k0sproject/k0sctl
default: 0.29.0 # renovate: datasource=github-releases depName=k0sproject/k0sctl
secrets:
aws-access-key-id:
description: The AWS access key ID to use when provisioning test resources.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ostests-matrix.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
k0sctl-version:
type: string
description: The k0sctl version to use when bootstrapping test clusters.
default: 0.28.0 # renovate: datasource=github-releases depName=k0sproject/k0sctl
default: 0.29.0 # renovate: datasource=github-releases depName=k0sproject/k0sctl
e2e-concurrency-level:
type: number
description: The number of tests that may be run concurrently.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/renovate.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
uses: actions/checkout@v4

- name: Self-hosted Renovate
uses: renovatebot/github-action@v46.1.6
uses: renovatebot/github-action@v46.1.7
with:
configurationFile: renovate.json
# Use the same token as the backport workflow. If this token is
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ airgap-image-bundle-linux-riscv64.tar: k0s airgap-images.txt

ipv6-test-images.txt: $(GO_ENV_REQUISITES) embedded-bins/Makefile.variables hack/gen-test-images-list/main.go
{ \
echo "docker.io/library/nginx:1.29.6-alpine"; \
echo "docker.io/library/nginx:1.29.7-alpine"; \
echo "docker.io/curlimages/curl:8.18.0"; \
echo "docker.io/library/alpine:$(alpine_version)"; \
echo "docker.io/sonobuoy/sonobuoy:v$(sonobuoy_version)"; \
Expand Down
2 changes: 1 addition & 1 deletion docs/compose-cluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ networks:

services:
k0s-lb:
image: docker.io/library/traefik:v3.6.11
image: docker.io/library/traefik:v3.6.12
container_name: k0s-lb
hostname: k0s-lb
networks:
Expand Down
76 changes: 46 additions & 30 deletions docs/examples/metallb-loadbalancer.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,10 @@ See the MetalLB requirements in the [MetalLB's official documentation](https://m
```yaml
apiVersion: k0s.k0sproject.io/v1beta1
kind: ClusterConfig

metadata:
name: k0s

spec:
network:
kubeProxy:
Expand All @@ -42,44 +44,53 @@ Port 7946 (TCP & UDP) must be allowed between the nodes. In addition, before ins

1. Install MetalLB using the official Helm chart and k0s Helm [extension manager](../helm-charts.md):

```shell
apiVersion: k0s.k0sproject.io/v1beta1
kind: ClusterConfig
metadata:
name: k0s
spec:
extensions:
helm:
repositories:
- name: metallb
url: https://metallb.github.io/metallb
charts:
- name: metallb
chartname: metallb/metallb
namespace: metallb
```

Other installation methods are available in the [MetalLB's official documentation](https://metallb.org/installation/).
```yaml
apiVersion: k0s.k0sproject.io/v1beta1
kind: ClusterConfig

metadata:
name: k0s

spec:
extensions:
helm:
repositories:
- name: metallb
url: https://metallb.github.io/metallb

charts:
- name: metallb
chartname: metallb/metallb
version: "0.15.3"
namespace: metallb-system
```

Other installation methods are available in the [MetalLB's official documentation](https://metallb.org/installation/).

2. Create ConfigMap for MetalLB

Next you need to create ConfigMap, which includes an IP address range for the load balancer. The pool of IPs must be dedicated to MetalLB's use. You can't reuse for example the Kubernetes node IPs or IPs controlled by other services. You can, however, use private IP addresses, for example 192.168.1.180-192.168.1.199, but then you need to take care of the routing from the external network if you need external access. In this example, we don't need it.
Next you need to create ConfigMap, which includes an IP address range for the load balancer. The pool of IPs must be dedicated to MetalLB's use. You can't reuse for example the Kubernetes node IPs or IPs controlled by other services. You can, however, use private IP addresses, for example 192.168.1.180-192.168.1.199, but then you need to take care of the routing from the external network if you need external access. In this example, we don't need it.

Create a YAML file accordingly, and deploy it: ```kubectl apply -f metallb-l2-pool.yaml```
Create a YAML file accordingly, and deploy it: `kubectl apply -f metallb-l2-pool.yaml`

```YAML
---
apiVersion: metallb.io/v1beta1
kind: IPAddressPool

metadata:
name: first-pool
namespace: metallb-system

spec:
addresses:
- <ip-address-range-start>-<ip-address-range-stop>
- <ip-address-range-start>-<ip-address-range-stop>
# or
- <ip-address>/<cidr>
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement

metadata:
name: example
namespace: metallb-system
Expand All @@ -90,14 +101,17 @@ Port 7946 (TCP & UDP) must be allowed between the nodes. In addition, before ins
```YAML
apiVersion: v1
kind: Namespace

metadata:
name: web
---
apiVersion: apps/v1
kind: Deployment

metadata:
name: web-server
namespace: web

spec:
selector:
matchLabels:
Expand All @@ -115,9 +129,11 @@ Port 7946 (TCP & UDP) must be allowed between the nodes. In addition, before ins
---
apiVersion: v1
kind: Service

metadata:
name: web-server-service
namespace: web

spec:
selector:
app: web
Expand All @@ -130,21 +146,21 @@ Port 7946 (TCP & UDP) must be allowed between the nodes. In addition, before ins

4. Check your LoadBalancer

Run the following command to see your LoadBalancer with the external-ip and port.
Run the following command to see your LoadBalancer with the external-ip and port.

```shell
kubectl get service -n web
```
```shell
kubectl get service -n web
```

5. Access your example application

If you used private IP addresses for MetalLB in the ConfigMap (in step 2), you should run the following command from the local network. Use the IP address from the previous step.
If you used private IP addresses for MetalLB in the ConfigMap (in step 2), you should run the following command from the local network. Use the IP address from the previous step.

```shell
curl <EXTERNAL-IP>
```
```shell
curl <EXTERNAL-IP>
```

If you are successful, you should see ```<html><body><h1>It works!</h1></body></html>```.
If you are successful, you should see `<html><body><h1>It works!</h1></body></html>`.

## Additional information

Expand Down
Loading
Loading