Before creating an issue, make sure you've checked the following:
[X] You are running the latest released version of k0s
[X] Make sure you've searched for existing issues, both open and closed
[X] Make sure you've searched for PRs too, a fix might've been merged already
[X] You're looking at docs for the released version, "main" branch docs are usually ahead of released versions.
Platform
No response
Version
No response
Sysinfo
`k0s sysinfo`
➡️ Please replace this text with the output of `k0s sysinfo`. ⬅️
What happened?
In case we end up having broken config in dynamic ClusterConfig, e.g. both externalAddress and NLLB enabled, the additional controller can wipe out the system services such as kube-router.
In this case the second controller joining had empty stacks for all system services. At some point in time it had, supposedly, been the leader for a bit and thus applied some of the stacks. The stacks being empty, kube-router and some other stacks were completely removed.
Steps to reproduce
Create a controller with --dynamic-config and some config
Once the controller is up, create invalid ClusterConfig. Invalid from k0s point of view but valid (enough) to be accepted by the API
Bootup second controller with --dynamic-config
Depending on timing, and leader elections, second controller can wipe out system stacks
Expected behavior
When we receive invalid dynamic config we would need to stop reconciling it completely to not possibly borking already functioning cluster completely.
Before creating an issue, make sure you've checked the following:
Platform
No response
Version
No response
Sysinfo
`k0s sysinfo`
What happened?
In case we end up having broken config in dynamic
ClusterConfig
, e.g. bothexternalAddress
and NLLB enabled, the additional controller can wipe out the system services such as kube-router.In this case the second controller joining had empty stacks for all system services. At some point in time it had, supposedly, been the leader for a bit and thus applied some of the stacks. The stacks being empty, kube-router and some other stacks were completely removed.
Steps to reproduce
--dynamic-config
and some configClusterConfig
. Invalid from k0s point of view but valid (enough) to be accepted by the API--dynamic-config
Expected behavior
When we receive invalid dynamic config we would need to stop reconciling it completely to not possibly borking already functioning cluster completely.
Actual behavior
No response
Screenshots and logs
No response
Additional context
No response