Skip to content

[containerd] Declare containerd in the services tuple - #4443

Open
suraj-cmd wants to merge 1 commit into
sosreport:mainfrom
suraj-cmd:containerd-services-tuple
Open

[containerd] Declare containerd in the services tuple#4443
suraj-cmd wants to merge 1 commit into
sosreport:mainfrom
suraj-cmd:containerd-services-tuple

Conversation

@suraj-cmd

Copy link
Copy Markdown
Contributor

setup() calls add_journal() for the containerd unit but the plugin declares
no services tuple and never collects the service status. An sosreport from a
node where containerd has failed to start therefore contains the journal but
nothing showing whether the unit is loaded, enabled or running — which is the
first thing checked when kubelet cannot reach the CRI socket.

Plugin._collect_services() runs each entry of the tuple through
is_service() and calls both add_service_status() and add_journal(), so
declaring the unit adds the missing status and replaces the explicit call.

It also gives the plugin an enablement trigger beyond the package name.
containerd ships as containerd or containerd.io depending on the source,
and neither matches on a node where it arrived through a bundled installer,
while the unit name is the same in every case.

docker.py has the same gap at line 42; happy to follow up with that
separately if this approach is acceptable.


Please place an 'X' inside each '[]' to confirm you adhere to our Contributor Guidelines

  • Is the commit message split over multiple lines and hard-wrapped at 72 characters?
  • Is the subject and message clear and concise?
  • Does the subject start with [plugin_name] if submitting a plugin patch or a [section_name] if part of the core sosreport code?
  • Does the commit contain a Signed-off-by: First Lastname email@example.com?
  • Are any related Issues or existing PRs properly referenced via a Closes (Issue) or Resolved (PR) line?
  • Are all passwords or private data gathered by this PR obfuscated?

setup() calls add_journal() for the containerd unit but the
plugin declares no services tuple and never collects the service
status. An sosreport from a node where containerd has failed to
start therefore contains the journal but nothing showing whether
the unit is loaded, enabled or running, which is the first thing
checked when kubelet cannot reach the CRI socket.

Plugin._collect_services() runs each entry of the tuple through
is_service() and calls both add_service_status() and
add_journal(), so declaring the unit adds the missing status and
replaces the explicit call.

It also gives the plugin an enablement trigger beyond the
package name. containerd ships as containerd or containerd.io
depending on the source, and neither matches on a node where it
arrived through a bundled installer, while the unit name is the
same in every case.

Signed-off-by: Suraj Patil <surajpatil522@gmail.com>
@packit-as-a-service

Copy link
Copy Markdown

Congratulations! One of the builds has completed. 🍾

You can install the built RPMs by following these steps:

  • sudo dnf install -y 'dnf*-command(copr)'
  • dnf copr enable packit/sosreport-sos-4443
  • And now you can install the packages.

Please note that the RPMs should be used only in a testing environment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant