fleet/orbit/pkg/table/extension_linux.go
Zach Wasserman 4a977cfff3
Add containerd_containers table to fleetd (#29384)
# Checklist for submitter

Implementation for #28315 

<!-- Note that API documentation changes are now addressed by the
product design team. -->

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.
- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)
- [ ] Added/updated automated tests (automated testing seemed
infeasible)
- [x] Manual QA for all new/changed functionality (tested on Ubuntu 24)
- For Orbit and Fleet Desktop changes:
- [x] Make sure fleetd is compatible with the latest released version of
Fleet (see [Must
rule](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/workflows/fleetd-development-and-release-strategy.md)).
- [x] Orbit runs on macOS, Linux and Windows. Check if the orbit
feature/bugfix should only apply to one platform (`runtime.GOOS`).
- [x] Manual QA must be performed in the three main OSs, macOS, Windows
and Linux. (tested on Ubuntu 24, code does not compile on other
platforms)
2025-05-27 10:55:38 -07:00

41 lines
1.8 KiB
Go

//go:build linux
package table
import (
"github.com/fleetdm/fleet/v4/orbit/pkg/table/containerd_containers"
"github.com/fleetdm/fleet/v4/orbit/pkg/table/crowdstrike/falcon_kernel_check"
"github.com/fleetdm/fleet/v4/orbit/pkg/table/crowdstrike/falconctl"
"github.com/fleetdm/fleet/v4/orbit/pkg/table/cryptsetup"
"github.com/fleetdm/fleet/v4/orbit/pkg/table/cryptsetup_luks_salt"
"github.com/fleetdm/fleet/v4/orbit/pkg/table/dataflattentable"
"github.com/fleetdm/fleet/v4/orbit/pkg/table/dconf_read"
"github.com/osquery/osquery-go"
"github.com/osquery/osquery-go/plugin/table"
"github.com/rs/zerolog/log"
)
func PlatformTables(_ PluginOpts) ([]osquery.OsqueryPlugin, error) {
return []osquery.OsqueryPlugin{
cryptsetup.TablePlugin(log.Logger), // table name is "cryptsetup_status"
falconctl.NewFalconctlOptionTable(log.Logger), // table name is "falconctl_option"
falcon_kernel_check.TablePlugin(log.Logger), // table name is "falcon_kernel_check"
dataflattentable.TablePluginExec(log.Logger, "nftables", dataflattentable.JsonType, []string{"nft", "-jat", "list", "ruleset"}, dataflattentable.WithBinDirs("/usr/bin", "/usr/sbin")), // -j (json) -a (show object handles) -t (terse, omit set contents)
table.NewPlugin("dconf_read", dconf_read.Columns(), dconf_read.Generate),
table.NewPlugin("containerd_containers", containerd_containers.Columns(), containerd_containers.Generate),
dataflattentable.TablePluginExec(
log.Logger,
"lsblk",
dataflattentable.JsonType,
[]string{"lsblk", "-n", "-O", "--json"}, // -n (no header) -O (all vars) --json (output in json)
dataflattentable.WithBinDirs("/usr/bin", "/usr/sbin"),
),
table.NewPlugin(
cryptsetup_luks_salt.TblName,
cryptsetup_luks_salt.Columns(),
cryptsetup_luks_salt.Generate,
),
}, nil
}