diff options
author | gjoranv <gjoranv@gmail.com> | 2023-03-09 10:29:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-09 10:29:42 +0100 |
commit | 1ff513821015fc87ab078d53075e5be41f8f73af (patch) | |
tree | b7a6a72b9598d32f8442c487c159320a0b764304 /node-admin | |
parent | 48135d0ee789ead6081ca3d25861cef07f3c478e (diff) | |
parent | 7bca5731f1bcc5bc1c3fa64152f6997ca8c2bf25 (diff) |
Merge pull request #26365 from vespa-engine/restart-wg-early
Add workaround to restart wg process early after host-admin restart.
Diffstat (limited to 'node-admin')
-rw-r--r-- | node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java index e363e85b898..20359410321 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java @@ -483,6 +483,13 @@ public class NodeAgentImpl implements NodeAgent { storageMaintainer.cleanDiskIfFull(context); storageMaintainer.handleCoreDumpsForContainer(context, container, false); + // TODO: this is a workaround for restarting wireguard as early as possible after host-admin has been down. + var runOrdinaryWireguardTasks = true; + if (container.isPresent() && container.get().state().isRunning()) { + wireguardTasks.forEach(task -> task.converge(context)); + runOrdinaryWireguardTasks = false; + } + if (downloadImageIfNeeded(context, container)) { context.log(logger, "Waiting for image to download " + context.node().wantedDockerImage().get().asString()); return; @@ -493,12 +500,13 @@ public class NodeAgentImpl implements NodeAgent { containerState = STARTING; container = Optional.of(startContainer(context)); containerState = UNKNOWN; + runOrdinaryWireguardTasks = true; } else { container = Optional.of(updateContainerIfNeeded(context, container.get())); } aclMaintainer.ifPresent(maintainer -> maintainer.converge(context)); - wireguardTasks.forEach(task -> task.converge(context)); + if (runOrdinaryWireguardTasks) wireguardTasks.forEach(task -> task.converge(context)); startServicesIfNeeded(context); resumeNodeIfNeeded(context); if (healthChecker.isPresent()) { |