aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-05-05 08:28:28 +0000
committerArne Juul <arnej@verizonmedia.com>2021-05-05 08:28:28 +0000
commit2cda575c128587d9668d867338cf73668337287b (patch)
treeb4ffdbd43554ef84e016dba136efa8cec1a58f83
parent47827f0e8ee70a2676fc14885e6781ae9db06c77 (diff)
skip adding logforwarder on hosts if they have membership with cluster type admin
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java18
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java4
-rw-r--r--config-model/src/main/resources/schema/admin.rnc1
3 files changed, 19 insertions, 4 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
index 2b850d8f3eb..269a638ce4e 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
@@ -9,6 +9,7 @@ import com.yahoo.config.model.ConfigModelContext.ApplicationType;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.Zone;
import com.yahoo.vespa.model.AbstractService;
import com.yahoo.vespa.model.ConfigProxy;
@@ -60,11 +61,13 @@ public class Admin extends AbstractConfigProducer<Admin> implements Serializable
private Logserver logserver;
private LogForwarder.Config logForwarderConfig = null;
+ private boolean logForwarderUnconditional = false;
private ApplicationType applicationType = ApplicationType.DEFAULT;
- public void setLogForwarderConfig(LogForwarder.Config cfg) {
+ public void setLogForwarderConfig(LogForwarder.Config cfg, boolean unconditional) {
this.logForwarderConfig = cfg;
+ this.logForwarderUnconditional = unconditional;
}
/**
@@ -236,7 +239,18 @@ public class Admin extends AbstractConfigProducer<Admin> implements Serializable
addConfigProxy(deployState.getDeployLogger(), host);
addFileDistribution(host);
if (logForwarderConfig != null) {
- addLogForwarder(deployState.getDeployLogger(), host);
+ boolean actuallyAdd = true;
+ var membership = host.spec().membership();
+ if (membership.isPresent()) {
+ var clustertype = membership.get().cluster().type();
+ // XXX should skip only if this.isHostedVespa is true?
+ if (clustertype == ClusterSpec.Type.admin) {
+ actuallyAdd = logForwarderUnconditional;
+ }
+ }
+ if (actuallyAdd) {
+ addLogForwarder(deployState.getDeployLogger(), host);
+ }
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
index c5edfb9bbf7..c4ec80c1b8a 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
@@ -114,14 +114,14 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu
void addLogForwarders(ModelElement logForwardingElement, Admin admin) {
if (logForwardingElement == null) return;
-
+ boolean alsoForAdminCluster = logForwardingElement.booleanAttribute("unconditional");
for (ModelElement e : logForwardingElement.children("splunk")) {
LogForwarder.Config cfg = LogForwarder.cfg()
.withSplunkHome(e.stringAttribute("splunk-home"))
.withDeploymentServer(e.stringAttribute("deployment-server"))
.withClientName(e.stringAttribute("client-name"))
.withPhoneHomeInterval(e.integerAttribute("phone-home-interval"));
- admin.setLogForwarderConfig(cfg);
+ admin.setLogForwarderConfig(cfg, alsoForAdminCluster);
}
}
diff --git a/config-model/src/main/resources/schema/admin.rnc b/config-model/src/main/resources/schema/admin.rnc
index 784fb82d319..e584bb1c6a7 100644
--- a/config-model/src/main/resources/schema/admin.rnc
+++ b/config-model/src/main/resources/schema/admin.rnc
@@ -105,6 +105,7 @@ ClusterControllers = element cluster-controllers {
}
LogForwarding = element logforwarding {
+ attribute unconditional { xsd:boolean }? &
element splunk {
attribute splunk-home { xsd:string }? &
attribute deployment-server { xsd:string } &