Invoke FingerprintManager's Reload() func during agent's SIGHUP (#14615)

Fixes #14614
This commit is contained in:
Pablo Ruiz García 2022-10-06 22:22:59 +02:00 committed by GitHub
parent a625de2062
commit 40416be7b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 2 deletions

3
.changelog/14615.txt Normal file
View File

@ -0,0 +1,3 @@
```release-note:bug
client: Fixed a bug where network fingerprinters were not reloaded when the client configuration was reloaded with SIGHUP
```

View File

@ -298,6 +298,9 @@ type Client struct {
endpoints rpcEndpoints endpoints rpcEndpoints
streamingRpcs *structs.StreamingRpcRegistry streamingRpcs *structs.StreamingRpcRegistry
// fingerprintManager is the FingerprintManager registered by the client
fingerprintManager *FingerprintManager
// pluginManagers is the set of PluginManagers registered by the client // pluginManagers is the set of PluginManagers registered by the client
pluginManagers *pluginmanager.PluginGroup pluginManagers *pluginmanager.PluginGroup
@ -441,14 +444,14 @@ func NewClient(cfg *config.Config, consulCatalog consul.CatalogAPI, consulProxie
return nil, fmt.Errorf("node setup failed: %v", err) return nil, fmt.Errorf("node setup failed: %v", err)
} }
fingerprintManager := NewFingerprintManager( c.fingerprintManager = NewFingerprintManager(
cfg.PluginSingletonLoader, c.GetConfig, cfg.Node, cfg.PluginSingletonLoader, c.GetConfig, cfg.Node,
c.shutdownCh, c.updateNodeFromFingerprint, c.logger) c.shutdownCh, c.updateNodeFromFingerprint, c.logger)
c.pluginManagers = pluginmanager.New(c.logger) c.pluginManagers = pluginmanager.New(c.logger)
// Fingerprint the node and scan for drivers // Fingerprint the node and scan for drivers
if err := fingerprintManager.Run(); err != nil { if err := c.fingerprintManager.Run(); err != nil {
return nil, fmt.Errorf("fingerprinting failed: %v", err) return nil, fmt.Errorf("fingerprinting failed: %v", err)
} }
@ -743,6 +746,8 @@ func (c *Client) Reload(newConfig *config.Config) error {
return c.reloadTLSConnections(newConfig.TLSConfig) return c.reloadTLSConnections(newConfig.TLSConfig)
} }
c.fingerprintManager.Reload()
return nil return nil
} }