aboutsummaryrefslogtreecommitdiffstats
path: root/config-model-api/src/main/java/com/yahoo/config/model
diff options
context:
space:
mode:
Diffstat (limited to 'config-model-api/src/main/java/com/yahoo/config/model')
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationClusterEndpoint.java8
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java3
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java34
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/container/package-info.java2
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/package-info.java2
5 files changed, 42 insertions, 7 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationClusterEndpoint.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationClusterEndpoint.java
index 69749ee6f96..0276985d6a6 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationClusterEndpoint.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationClusterEndpoint.java
@@ -168,13 +168,7 @@ public class ApplicationClusterEndpoint {
return name;
}
- public static DnsName sharedNameFrom(SystemName systemName, ClusterSpec.Id cluster, ApplicationId applicationId, String suffix) {
- String name = dnsParts(systemName, cluster, applicationId)
- .filter(Objects::nonNull) // remove null values that were "default"
- .collect(Collectors.joining("--"));
- return new DnsName(sanitize(name) + suffix); // Need to sanitize name since it is considered one label
- }
-
+ // TODO(mpolden): Remove when config-models < 8.232 are gone
public static DnsName sharedL4NameFrom(SystemName systemName, ClusterSpec.Id cluster, ApplicationId applicationId, String suffix) {
String name = dnsParts(systemName, cluster, applicationId)
.filter(Objects::nonNull) // remove null values that were "default"
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
index 37b24f0ac1d..57d013ebd01 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
@@ -47,6 +47,7 @@ public interface ModelContext {
default Optional<? extends Reindexing> reindexing() { return Optional.empty(); }
Properties properties();
default Optional<File> appDir() { return Optional.empty();}
+ OnnxModelCost onnxModelCost();
/** The Docker image repo we want to use for images for this deployment (optional, will use default if empty) */
default Optional<DockerImage> wantedDockerImageRepo() { return Optional.empty(); }
@@ -117,6 +118,8 @@ public interface ModelContext {
@ModelFeatureFlag(owners = {"baldersheim"}) default boolean enableNestedMultivalueGrouping() { return false; }
@ModelFeatureFlag(owners = {"jonmv"}) default boolean useReconfigurableDispatcher() { return false; }
@ModelFeatureFlag(owners = {"vekterli"}) default int contentLayerMetadataFeatureLevel() { return 0; }
+ @ModelFeatureFlag(owners = {"bjorncs"}) default boolean dynamicHeapSize() { return false; }
+ @ModelFeatureFlag(owners = {"hmusum"}) default String unknownConfigDefinition() { return "log"; }
}
/** Warning: As elsewhere in this package, do not make backwards incompatible changes that will break old config models! */
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java b/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java
new file mode 100644
index 00000000000..33ed55ecaef
--- /dev/null
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/OnnxModelCost.java
@@ -0,0 +1,34 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+package com.yahoo.config.model.api;
+
+import com.yahoo.config.ModelReference;
+import com.yahoo.config.application.api.ApplicationFile;
+import com.yahoo.config.application.api.ApplicationPackage;
+import com.yahoo.config.application.api.DeployLogger;
+
+import java.net.URI;
+
+/**
+ * @author bjorncs
+ */
+public interface OnnxModelCost {
+
+ Calculator newCalculator(ApplicationPackage appPkg, DeployLogger logger);
+
+ interface Calculator {
+ long aggregatedModelCostInBytes();
+ void registerModel(ApplicationFile path);
+ @Deprecated(forRemoval = true) void registerModel(ModelReference ref); // TODO(bjorncs): remove once no longer in use by old config models
+ void registerModel(URI uri);
+ }
+
+ static OnnxModelCost disabled() {
+ return (__, ___) -> new Calculator() {
+ @Override public long aggregatedModelCostInBytes() { return 0; }
+ @Override public void registerModel(ApplicationFile path) {}
+ @SuppressWarnings("removal") @Override public void registerModel(ModelReference ref) {}
+ @Override public void registerModel(URI uri) {}
+ };
+ }
+}
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/container/package-info.java b/config-model-api/src/main/java/com/yahoo/config/model/api/container/package-info.java
index df269bb42e8..fc525b2b589 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/container/package-info.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/container/package-info.java
@@ -1,5 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
@ExportPackage
+@PublicApi // Internal public API, not a real public API
package com.yahoo.config.model.api.container;
import com.yahoo.osgi.annotation.ExportPackage;
+import com.yahoo.api.annotations.PublicApi;
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/package-info.java b/config-model-api/src/main/java/com/yahoo/config/model/api/package-info.java
index 9560a9658d5..7f6c084863f 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/package-info.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/package-info.java
@@ -1,5 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
@ExportPackage
+@PublicApi // Internal public API, not a real public API
package com.yahoo.config.model.api;
import com.yahoo.osgi.annotation.ExportPackage;
+import com.yahoo.api.annotations.PublicApi;