summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorgjoranv <gjoranv@gmail.com>2023-03-09 10:29:42 +0100
committerGitHub <noreply@github.com>2023-03-09 10:29:42 +0100
commit1ff513821015fc87ab078d53075e5be41f8f73af (patch)
treeb7a6a72b9598d32f8442c487c159320a0b764304 /node-admin
parent48135d0ee789ead6081ca3d25861cef07f3c478e (diff)
parent7bca5731f1bcc5bc1c3fa64152f6997ca8c2bf25 (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.java10
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()) {