Closed r-tierney closed 1 year ago
Puppetfiles
.These results were generated with Rangefinder, a tool that helps predict the downstream impact of breaking changes to elements used in Puppet modules. You can run this on the command line to get a full report.
Exact matches are those that we can positively identify via namespace and the declaring modules' metadata. Non-namespaced items, such as Puppet 3.x functions, will always be reported as near matches only.
Discovery token fixed in: https://github.com/puppetlabs/puppetlabs-kubernetes/pull/627/commits/1871b5cc6ef1771cbb0d3c287ada675193c4f5fe
Using pkey instead of rsa
@r-tierney this is brilliant - can you rebase the PR?
Thanks @jordanbreen28, I've updated this branch from main
@r-tierney apologies... I missed the notification. Can you rebase once again and clean up the merge commits? Then we can get this progressed. Thanks
@jordanbreen28 Sure thing, updating now
rebase complete
Nice one @r-tierney - I'll merge in once green! thanks again for this massive effort.
Not a problem at all, glad to help.
The issue which took the longest to troubleshoot was actually this modules default setting for the cgroup_driver located on line 741 of init.pp which had it set to cgroupfs by default instead of systemd and would cause a conflict with kubelet as kubelets default setting on Debian is systemd.
With the pods and kubelet crashlooping it took some time to work out that was the issue as without the kubelet running it's hard to run a kubectl describe
etc to figure out why a pod is crashlooping.
I understand changing the default for a setting like this may break those not running systemd so I left it out of this pull request but thought I'd mention it anyway and leave the decision up to your team whether or not to change it or add a mention in some docs somewhere.
Not a problem at all, glad to help.
The issue which took the longest to troubleshoot was actually this modules default setting for the cgroup_driver located on line 741 of init.pp which had it set to cgroupfs by default instead of systemd and would cause a conflict with kubelet as kubelets default setting on Debian is systemd.
With the pods and kubelet crashlooping it took some time to work out that was the issue as without the kubelet running it's hard to run a
kubectl describe
etc to figure out why a pod is crashlooping.I understand changing the default for a setting like this may break those not running systemd so I left it out of this pull request but thought I'd mention it anyway and leave the decision up to your team whether or not to change it or add a mention in some docs somewhere.
Yeah the removal of cgroupfs as the default driver would need to be part of a major release due to the high possibility it may break things, we would need to document this also. Systemd is now the recommended for both debian and rhel based distros, so should probably be progressed in the next major release.
If you want to go ahead and create a seperate PR for that, I will try to ensure its included in the next major release (which should be in the next week or two due to puppet 8).
Anyways, happy to merge this! 🥇
This was tested on Debian bookworm with kubernetes version 1.26 and 1.27, calico v3.25
UdpIdleTimeout has been deprecated:
Kubernetes has moved the registry to:
Calico requires a
v
before the version number without it you get a 404 Example:container-runtime remote has been deprecated as the only possible value was remote
discovery token from kubetool didnt work ( found that i needed to change rsa to pkey ) as we can see from 2 different clusters using the command with rsa gives the same result.
I found that on Debian the kubelet would constantly crash as the kubelet's default cgroupDriver on Debian is set to systemd
and this modules default sets containerd's cgroup_driver to cgroupfs if its not running on redhat ( found in init.pp ) The fix for Debian ( Should this just be the default for both Debian and Redhat now? ) as recommended by kubernetes reference
The above change sets the following in containerd's config which causes kubelet and containerd to work on Debian
And lastly calico required the mount to be shared: Error reported
The fix ( This solution requires the puppet module mount_core ):
Fixes https://github.com/puppetlabs/puppetlabs-kubernetes/issues/584