Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
| ... | ... |
@@ -109,7 +109,7 @@ func resolveAddr(addrOrInterface string) (net.IP, error) {
|
| 109 | 109 |
return addr.IP, nil |
| 110 | 110 |
} |
| 111 | 111 |
|
| 112 |
-func (c *Controller) handleKeyChange(keys []*types.EncryptionKey) error {
|
|
| 112 |
+func (c *Controller) handleKeyChange(encryptionKeys []*types.EncryptionKey) error {
|
|
| 113 | 113 |
drvEnc := discoverapi.DriverEncryptionUpdate{}
|
| 114 | 114 |
|
| 115 | 115 |
agent := c.getAgent() |
| ... | ... |
@@ -126,7 +126,7 @@ func (c *Controller) handleKeyChange(keys []*types.EncryptionKey) error {
|
| 126 | 126 |
j := len(c.keys) |
| 127 | 127 |
for i := 0; i < j; {
|
| 128 | 128 |
same := false |
| 129 |
- for _, key := range keys {
|
|
| 129 |
+ for _, key := range encryptionKeys {
|
|
| 130 | 130 |
if same = key.LamportTime == c.keys[i].LamportTime; same {
|
| 131 | 131 |
break |
| 132 | 132 |
} |
| ... | ... |
@@ -150,7 +150,7 @@ func (c *Controller) handleKeyChange(keys []*types.EncryptionKey) error {
|
| 150 | 150 |
c.keys = c.keys[:j] |
| 151 | 151 |
|
| 152 | 152 |
// Find the new key and add it to the key ring |
| 153 |
- for _, key := range keys {
|
|
| 153 |
+ for _, key := range encryptionKeys {
|
|
| 154 | 154 |
same := false |
| 155 | 155 |
for _, cKey := range c.keys {
|
| 156 | 156 |
if same = cKey.LamportTime == key.LamportTime; same {
|
| ... | ... |
@@ -198,16 +198,23 @@ func (c *Controller) handleKeyChange(keys []*types.EncryptionKey) error {
|
| 198 | 198 |
return false |
| 199 | 199 |
} |
| 200 | 200 |
if err := dr.DiscoverNew(discoverapi.EncryptionKeysUpdate, drvEnc); err != nil {
|
| 201 |
- log.G(context.TODO()).Warnf("Failed to update datapath keys in driver %s: %v", name, err)
|
|
| 201 |
+ log.G(context.TODO()).WithFields(log.Fields{
|
|
| 202 |
+ "error": err, |
|
| 203 |
+ "driver": name, |
|
| 204 |
+ }).Warn("Failed to update datapath keys; resetting datapath keys")
|
|
| 202 | 205 |
// Attempt to reconfigure keys in case of a update failure |
| 203 | 206 |
// which can arise due to a mismatch of keys |
| 204 | 207 |
// if worker nodes get temporarily disconnected |
| 205 |
- log.G(context.TODO()).Warnf("Reconfiguring datapath keys for %s", name)
|
|
| 206 |
- drvCfgEnc := discoverapi.DriverEncryptionConfig{}
|
|
| 207 |
- drvCfgEnc.Keys, drvCfgEnc.Tags = c.getKeys(subsysIPSec) |
|
| 208 |
- err = dr.DiscoverNew(discoverapi.EncryptionKeysConfig, drvCfgEnc) |
|
| 208 |
+ keys, tags := c.getKeys(subsysIPSec) |
|
| 209 |
+ err = dr.DiscoverNew(discoverapi.EncryptionKeysConfig, discoverapi.DriverEncryptionConfig{
|
|
| 210 |
+ Keys: keys, |
|
| 211 |
+ Tags: tags, |
|
| 212 |
+ }) |
|
| 209 | 213 |
if err != nil {
|
| 210 |
- log.G(context.TODO()).Warnf("Failed to reset datapath keys in driver %s: %v", name, err)
|
|
| 214 |
+ log.G(context.TODO()).WithFields(log.Fields{
|
|
| 215 |
+ "error": err, |
|
| 216 |
+ "driver": name, |
|
| 217 |
+ }).Warn("Failed to reset datapath keys")
|
|
| 211 | 218 |
} |
| 212 | 219 |
} |
| 213 | 220 |
return false |