You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@heron.apache.org by sa...@apache.org on 2022/07/19 23:40:10 UTC
[incubator-heron] 02/02: [StatefulSet] cluster configuration container added.
This is an automated email from the ASF dual-hosted git repository.
saadurrahman pushed a commit to branch saadurrahman/3846-Refactoring-K8s-Shim-dev
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git
commit bc18ba8c3255d093ec4f03ee65c3816114f51f01
Author: Saad Ur Rahman <sa...@apache.org>
AuthorDate: Tue Jul 19 19:35:14 2022 -0400
[StatefulSet] cluster configuration container added.
---
.../heron/scheduler/kubernetes/StatefulSet.java | 50 +++++++++++++++++++---
1 file changed, 45 insertions(+), 5 deletions(-)
diff --git a/heron/schedulers/src/java/org/apache/heron/scheduler/kubernetes/StatefulSet.java b/heron/schedulers/src/java/org/apache/heron/scheduler/kubernetes/StatefulSet.java
index 4a1893918e1..cea3a91fc05 100644
--- a/heron/schedulers/src/java/org/apache/heron/scheduler/kubernetes/StatefulSet.java
+++ b/heron/schedulers/src/java/org/apache/heron/scheduler/kubernetes/StatefulSet.java
@@ -22,6 +22,8 @@ package org.apache.heron.scheduler.kubernetes;
import java.util.HashMap;
import java.util.Map;
+import org.apache.heron.scheduler.utils.Runtime;
+import org.apache.heron.spi.common.Config;
import org.apache.heron.spi.packing.Resource;
import io.kubernetes.client.openapi.models.V1StatefulSet;
@@ -34,25 +36,61 @@ final class StatefulSet {
Manager
}
+ /**
+ * Container class of all the Kubernetes cluster configurations. The methods contained within
+ * <code>KubernetesController</code> cannot be accessed externally since it is an abstract class.
+ */
+ static final class Configs {
+ private final String namespace;
+ private final String topologyName;
+ private final Config configuration;
+ private final Config runtimeConfiguration;
+
+ Configs(String namespace, Config configuration, Config runtimeConfiguration) {
+ this.namespace = namespace;
+ this.topologyName = Runtime.topologyName(runtimeConfiguration);
+ this.configuration = configuration;
+ this.runtimeConfiguration = runtimeConfiguration;
+ }
+
+ Config getConfiguration() {
+ return configuration;
+ }
+
+ Config getRuntimeConfiguration() {
+ return runtimeConfiguration;
+ }
+
+ String getNamespace() {
+ return namespace;
+ }
+
+ String getTopologyName() {
+ return topologyName;
+ }
+ }
+
private StatefulSet() {
statefulsets.put(Type.Executor, new ExecutorFactory());
statefulsets.put(Type.Manager, new ManagerFactory());
}
interface IStatefulSetFactory {
- V1StatefulSet create(Resource containerResources, int numberOfInstances);
+ V1StatefulSet create(Configs configs, Resource containerResources, int numberOfInstances);
}
/**
* Creates configured <code>Executor</code> or <code>Manager</code> <code>Stateful Set</code>.
* @param type One of <code>Executor</code> or <code>Manager</code>
+ * @param configs Cluster configuration information container.
* @param containerResources The container system resource configurations.
* @param numberOfInstances The container count.
* @return Fully configured <code>Stateful Set</code> or <code>null</code> on invalid <code>type</code>.
*/
- V1StatefulSet create(Type type, Resource containerResources, int numberOfInstances) {
+ V1StatefulSet create(Type type, Configs configs, Resource containerResources,
+ int numberOfInstances) {
if (statefulsets.containsKey(type)) {
- return statefulsets.get(type).create(containerResources, numberOfInstances);
+ return statefulsets.get(type).create(configs, containerResources, numberOfInstances);
}
return null;
}
@@ -60,7 +98,8 @@ final class StatefulSet {
static class ExecutorFactory implements IStatefulSetFactory {
@Override
- public V1StatefulSet create(Resource containerResources, int numberOfInstances) {
+ public V1StatefulSet create(Configs configs, Resource containerResources,
+ int numberOfInstances) {
return null;
}
}
@@ -68,7 +107,8 @@ final class StatefulSet {
static class ManagerFactory implements IStatefulSetFactory {
@Override
- public V1StatefulSet create(Resource containerResources, int numberOfInstances) {
+ public V1StatefulSet create(Configs configs, Resource containerResources,
+ int numberOfInstances) {
return null;
}
}