Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

installing kubernetes sysext on azure doesn't autostart kubelet #50

Closed
jepio opened this issue Mar 4, 2024 · 3 comments · Fixed by flatcar/scripts#1729
Closed

installing kubernetes sysext on azure doesn't autostart kubelet #50

jepio opened this issue Mar 4, 2024 · 3 comments · Fixed by flatcar/scripts#1729
Labels
kind/bug Something isn't working

Comments

@jepio
Copy link
Member

jepio commented Mar 4, 2024

Description

Kubelet is not autostarted after a reboot. In the merged /usr ls /usr/lib/systemd/multi-user.target.d shows that only the waagent conf is present. Manually mounting the kubernetes sysext confirms that it has a config that should uphold it.

Impact

[ 1 sentence detailing the impact this bug is creating for you ]

Environment and steps to reproduce

  1. Set-up: [ describe the environment Flatcar/Lokomotive/Nebraska etc was running in when encountering the bug; Platform etc. ]
  2. Task: [ describe the task performing when encountering the bug ]
  3. Action(s): [ sequence of actions that triggered the bug, see example below ]
    a. [ requested the start of a new pod or container ]
    b. [ container image downloaded ]
  4. Error: [describe the error that was triggered]

Expected behavior

[ describe what you expected to happen at 4. above but instead got an error ]

Additional information

Please add any information here that does not fit the above format.

@jepio jepio added the kind/bug Something isn't working label Mar 4, 2024
@pothos
Copy link
Member

pothos commented Mar 5, 2024

It's a bug in the OEM sysext. The way the directory usr/lib/systemd/system/multi-user.target.d got created led to it being opaque, i.e., attr -R -g overlay.opaque says y which means that lower layer directories get ignored.

@pothos
Copy link
Member

pothos commented Mar 5, 2024

This is a problem for many directories:

sudo systemd-dissect --with  ./oem-azure.raw find usr/ -xdev -type d -exec sh -c 'if [ "$(attr -R -q -g overlay.opaque {} 2>/dev/null)" = y ]; then echo {}; fi' \;
usr/lib/python
usr/lib/python-exec
usr/lib/python3.11
usr/lib/systemd/system/multi-user.target.d
usr/share/waagent
$ sudo systemd-dissect --with oem-vmware.raw find usr/ -xdev -type d -exec sh -c 'if [ "$(attr -R -q -g overlay.opaque {} 2>/dev/null)" = y ]; then echo {}; fi' \;
usr/lib/systemd/system/multi-user.target.d
usr/lib/systemd/system/vgauthd.service.d
usr/lib/systemd/system/vmtoolsd.service.d
usr/lib64/open-vm-tools
usr/share/flatcar/oem-vmware/vmware-tools
usr/share/open-vm-tools

In theory it's correct but since we want to have multiple overlays merge their contents, we should postprocess this.

@pothos
Copy link
Member

pothos commented Mar 5, 2024

Turns out it was also masking the containerd upholds we ship through the internal containerd sysext

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants