open-nomad/client/fingerprint
Seth Hoenig 9960f96446 client/fingerprint: detect unloaded dynamic bridge kernel module
In Nomad v0.12.0, the client added additional fingerprinting around the
presense of the bridge kernel module. The fingerprinter only checked in
`/proc/modules` which is a list of loaded modules. In some cases, the
bridge kernel module is builtin rather than dynamically loaded. The fix
for that case is in #8721. However we were still missing the case where
the bridge module is dynamically loaded, but not yet loaded during the
startup of the Nomad agent. In this case the fingerprinter would believe
the bridge module was unavailable when really it gets loaded on demand.

This PR now has the fingerprinter scan the kernel module dependency file,
which will contain an entry for the bridge module even if it is not yet
loaded.

In summary, the client now looks for the bridge kernel module in
 - /proc/modules
 - /lib/modules/<kernel>/modules.builtin
 - /lib/modules/<kernel>/modules.dep

Closes #8423
2020-11-09 13:56:14 -06:00
..
test_fixtures/cni CNI Implementation (#7518) 2020-06-18 11:05:29 -07:00
arch.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
arch_test.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
bridge.go client/fingerprint: detect unloaded dynamic bridge kernel module 2020-11-09 13:56:14 -06:00
bridge_default.go CNI Implementation (#7518) 2020-06-18 11:05:29 -07:00
bridge_linux.go client/fingerprint: detect unloaded dynamic bridge kernel module 2020-11-09 13:56:14 -06:00
bridge_linux_test.go client/fingerprint: detect unloaded dynamic bridge kernel module 2020-11-09 13:56:14 -06:00
cgroup.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
cgroup_default.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
cgroup_linux.go Adjust cgroup change in libcontainer 2020-08-20 00:31:07 +08:00
cgroup_test.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
cni.go multi-interface network support 2020-06-19 09:42:10 -04:00
cni_test.go CNI Implementation (#7518) 2020-06-18 11:05:29 -07:00
consul.go Add consul segment fingerprint (#7214) 2020-10-02 15:15:59 -04:00
consul_test.go Add consul segment fingerprint (#7214) 2020-10-02 15:15:59 -04:00
cpu.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
cpu_test.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
env_aws.go env_aws: get ec2 cpu perf data from AWS API 2020-10-08 12:01:09 -05:00
env_aws_cpu.go env_aws: get ec2 cpu perf data from AWS API 2020-10-08 12:01:09 -05:00
env_aws_test.go env_aws: fixup test case node attr detection 2020-10-08 12:59:07 -05:00
env_azure.go fingerprint: changed unique.platform.azure.hostname to unique.platform.azure.name (#9016) 2020-10-02 16:50:12 -04:00
env_azure_test.go fingerprint: changed unique.platform.azure.hostname to unique.platform.azure.name (#9016) 2020-10-02 16:50:12 -04:00
env_gce.go goimports 2019-01-22 15:44:31 -08:00
env_gce_test.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
fingerprint.go client: added azure fingerprinting support (#8979) 2020-10-01 09:10:27 -04:00
fingerprint_default.go Alpha-sort the build platforms 2016-07-11 12:23:46 -07:00
fingerprint_linux.go CNI Implementation (#7518) 2020-06-18 11:05:29 -07:00
fingerprint_test.go fingerprint code refactor 2019-11-26 10:51:28 -05:00
host.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
host_test.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
memory.go fingerprint: Add backwards compatibility comment 2019-09-04 17:38:35 +02:00
memory_test.go fingerprint: Restore support for legacy memory fingerprint 2019-09-04 17:10:28 +02:00
network.go honor config.NetworkInterface in NodeNetworks 2020-07-21 15:43:45 -04:00
network_default.go Link speed for windows network fingerprinting 2016-07-20 22:13:50 +02:00
network_linux.go fix build errors post merges 2018-10-16 16:53:31 -07:00
network_test.go tests: avoid os.Exit in a test 2020-07-01 15:25:13 -04:00
network_windows.go compile on windows 2018-10-16 16:56:56 -07:00
network_windows_test.go fingerprinter: Use HCLogger for windows 2019-01-17 18:43:13 +01:00
nomad.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
nomad_test.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
signal.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
signal_test.go client uses passed logger and fix fingerprinters 2018-10-16 16:53:30 -07:00
storage.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
storage_test.go client uses passed logger and fix fingerprinters 2018-10-16 16:53:30 -07:00
storage_unix.go Stub out FreeBSD support for Nomad 2016-05-09 11:56:35 -07:00
storage_windows.go Revert "lint: ignore generated windows syscall wrappers" 2019-10-22 08:23:44 -04:00
structs.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
vault.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
vault_test.go client: Move fingerprint structs to pkg 2018-12-01 17:10:39 +01:00
zstorage_windows.go Revert "lint: ignore generated windows syscall wrappers" 2019-10-22 08:23:44 -04:00