summaryrefslogtreecommitdiffstats
path: root/flags
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2022-03-15 11:28:35 +0100
committerGitHub <noreply@github.com>2022-03-15 11:28:35 +0100
commite37849db3567f33e131201e6daeba743550b9882 (patch)
treed896f92d1eee112210ad77f791d29d8fc587d691 /flags
parent31be6ae0ee943e5598658de92ed0eeb3149a3d5a (diff)
parent8e72c805a07276f81bc201e45e994060f90dc41d (diff)
Merge pull request #21680 from vespa-engine/jonmv/major-upgrade-orchestration
Jonmv/major upgrade orchestration
Diffstat (limited to 'flags')
-rw-r--r--flags/src/main/java/com/yahoo/vespa/flags/InMemoryFlagSource.java4
-rw-r--r--flags/src/main/java/com/yahoo/vespa/flags/PermanentFlags.java14
2 files changed, 17 insertions, 1 deletions
diff --git a/flags/src/main/java/com/yahoo/vespa/flags/InMemoryFlagSource.java b/flags/src/main/java/com/yahoo/vespa/flags/InMemoryFlagSource.java
index 9a69adfc1a6..d21e21b44c8 100644
--- a/flags/src/main/java/com/yahoo/vespa/flags/InMemoryFlagSource.java
+++ b/flags/src/main/java/com/yahoo/vespa/flags/InMemoryFlagSource.java
@@ -1,6 +1,8 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.flags;
+import com.yahoo.component.AbstractComponent;
+
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -14,7 +16,7 @@ import java.util.concurrent.ConcurrentHashMap;
*
* @author freva
*/
-public class InMemoryFlagSource implements FlagSource {
+public class InMemoryFlagSource extends AbstractComponent implements FlagSource {
private final Map<FlagId, RawFlag> rawFlagsById = new ConcurrentHashMap<>();
public InMemoryFlagSource withBooleanFlag(FlagId flagId, boolean value) {
diff --git a/flags/src/main/java/com/yahoo/vespa/flags/PermanentFlags.java b/flags/src/main/java/com/yahoo/vespa/flags/PermanentFlags.java
index 225c45fbfdb..72a16a37a8f 100644
--- a/flags/src/main/java/com/yahoo/vespa/flags/PermanentFlags.java
+++ b/flags/src/main/java/com/yahoo/vespa/flags/PermanentFlags.java
@@ -240,6 +240,20 @@ public class PermanentFlags {
"Takes effect immediately.",
ZONE_ID, APPLICATION_ID);
+ public static final UnboundListFlag<String> INCOMPATIBLE_VERSIONS = defineListFlag(
+ "incompatible-versions", List.of("8"), String.class,
+ "A list of versions which are binary-incompatible with earlier versions. " +
+ "A platform version A and an application package compiled against version B are thus incompatible if this " +
+ "list contains a version X such that (A >= X) != (B >= X). " +
+ "A version specifying only major, or major and minor, imply 0s for the unspecified parts." +
+ "This list may also contain '*' wildcards for any suffix of its version number; see the VersionCompatibility " +
+ "class for further details. " +
+ "The controller will attempt to couple platform upgrades to application changes if their compile versions are " +
+ "incompatible with any current deployments. " +
+ "The config server will refuse to serve config to nodes running a version which is incompatible with their " +
+ "current wanted node version, i.e., nodes about to upgrade to a version which is incompatible with the current.",
+ "Takes effect immediately");
+
public static final UnboundListFlag<Integer> INCOMPATIBLE_MAJOR_VERSIONS = defineListFlag(
"incompatible-major-versions", List.of(8), Integer.class,
"A list of major versions which are binary-incompatible and requires an application package to " +