This is an automated email from the ASF dual-hosted git repository.

jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 68264d294de Enforce broker instance tags configuration at startup 
(#17786)
68264d294de is described below

commit 68264d294de086fefedf5cd13068ce05f0f4e336
Author: Suvodeep Pyne <[email protected]>
AuthorDate: Tue Mar 3 12:36:50 2026 -0800

    Enforce broker instance tags configuration at startup (#17786)
---
 .../org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java    | 7 +++++++
 .../src/main/java/org/apache/pinot/spi/utils/CommonConstants.java  | 5 +++++
 2 files changed, 12 insertions(+)

diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
index 5ce5521662c..02a1e9bca59 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
@@ -681,6 +681,13 @@ public abstract class BaseBrokerStarter implements 
ServiceStartable {
           instanceConfig.addTag(instanceTag);
         }
         shouldUpdateBrokerResource = true;
+      } else if 
(_brokerConf.getProperty(Broker.CONFIG_OF_BROKER_ENFORCE_INSTANCE_TAGS,
+          Broker.DEFAULT_BROKER_ENFORCE_INSTANCE_TAGS)) {
+        throw new IllegalStateException(String.format(
+            "Broker instance tags enforcement is enabled ('%s' = true), but 
'%s' is not configured. "
+                + "Please set it for this broker or disable enforcement to 
allow startup.",
+            Broker.CONFIG_OF_BROKER_ENFORCE_INSTANCE_TAGS,
+            Broker.CONFIG_OF_BROKER_INSTANCE_TAGS));
       } else if 
(ZKMetadataProvider.getClusterTenantIsolationEnabled(_propertyStore)) {
         instanceConfig.addTag(TagNameUtils.getBrokerTagForTenant(null));
         shouldUpdateBrokerResource = true;
diff --git 
a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/CommonConstants.java 
b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/CommonConstants.java
index 7b5e6cf3685..f5c9e45b537 100644
--- a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/CommonConstants.java
+++ b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/CommonConstants.java
@@ -385,6 +385,11 @@ public class CommonConstants {
     public static final long DEFAULT_EXTRA_PASSIVE_TIMEOUT_MS = 100L;
     public static final String CONFIG_OF_BROKER_ID = 
"pinot.broker.instance.id";
     public static final String CONFIG_OF_BROKER_INSTANCE_TAGS = 
"pinot.broker.instance.tags";
+    // When enabled, brokers must have pinot.broker.instance.tags configured 
to start.
+    // Prevents misconfigured brokers from joining multi-tenant clusters 
without tenant tags.
+    public static final String CONFIG_OF_BROKER_ENFORCE_INSTANCE_TAGS =
+        "pinot.broker.enforce.instance.tags";
+    public static final boolean DEFAULT_BROKER_ENFORCE_INSTANCE_TAGS = false;
     public static final String CONFIG_OF_BROKER_HOSTNAME = 
"pinot.broker.hostname";
     public static final String CONFIG_OF_SWAGGER_USE_HTTPS = 
"pinot.broker.swagger.use.https";
     // Comma separated list of packages that contains javax service resources.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to