From 21f4672e0f521da11caffaeabaa4a5af6e88e17d Mon Sep 17 00:00:00 2001 From: Frank Scholten Date: Sun, 4 Dec 2016 00:21:09 +0100 Subject: [PATCH] Replaced Consul and Registrator with Mesos DNS. --- Makefile | 3 +- .../minimesos/main/CommandInitTest.java | 3 +- .../minimesos/main/CommandTest.java | 2 +- .../configFiles/complete-minimesosFile | 11 +--- .../marathonAppConfig-minimesosFile | 11 +--- .../minimesos/main/CommandInit.java | 6 +- docs/index.md | 6 +- .../minimesos/config/ClusterConfig.groovy | 21 ++----- .../minimesos/config/ConsulConfig.groovy | 16 ----- .../minimesos/config/MesosDNSConfig.groovy | 13 ++++ .../minimesos/config/RegistratorConfig.groovy | 13 ---- .../minimesos/cluster/ClusterUtil.java | 2 +- .../minimesos/cluster/Consul.java | 7 --- .../minimesos/cluster/Filter.java | 5 -- .../minimesos/cluster/MesosCluster.java | 5 -- .../minimesos/cluster/MesosDNS.java | 8 +++ .../minimesos/cluster/Registrator.java | 9 --- .../mesos/MesosClusterContainersFactory.java | 36 +++-------- .../minimesos/mesos/MesosDNSContainer.java | 63 +++++++++++++++++++ .../minimesos/mesos/RegistratorContainer.java | 58 ----------------- .../main/resources/marathon/mesos-consul.json | 18 ------ .../minimesos/config/ConfigWriterTest.groovy | 6 +- .../minimesos/mesos/ClusterUtilTest.java | 15 +---- .../minimesosFile-mesosClusterTest | 5 -- 24 files changed, 115 insertions(+), 227 deletions(-) delete mode 100644 minimesos/src/main/groovy/com/containersol/minimesos/config/ConsulConfig.groovy create mode 100644 minimesos/src/main/groovy/com/containersol/minimesos/config/MesosDNSConfig.groovy delete mode 100644 minimesos/src/main/groovy/com/containersol/minimesos/config/RegistratorConfig.groovy delete mode 100644 minimesos/src/main/java/com/containersol/minimesos/cluster/Consul.java create mode 100644 minimesos/src/main/java/com/containersol/minimesos/cluster/MesosDNS.java delete mode 100644 minimesos/src/main/java/com/containersol/minimesos/cluster/Registrator.java create mode 100644 minimesos/src/main/java/com/containersol/minimesos/mesos/MesosDNSContainer.java delete mode 100644 minimesos/src/main/java/com/containersol/minimesos/mesos/RegistratorContainer.java delete mode 100644 minimesos/src/main/resources/marathon/mesos-consul.json diff --git a/Makefile b/Makefile index b9a95815..f3788ca9 100644 --- a/Makefile +++ b/Makefile @@ -7,8 +7,7 @@ setup: deps: docker pull containersol/mesos-agent:1.0.0-0.1.0 docker pull containersol/mesos-master:1.0.0-0.1.0 - docker pull gliderlabs/registrator:v6 - docker pull consul:0.7.1 + docker pull mesosphere/mesos-dns:v0.6.0 docker pull mesosphere/marathon:v1.3.5 docker pull jplock/zookeeper:3.4.6 docker pull containersol/alpine3.3-java8-jre:v1 diff --git a/cli/src/integration-test/java/com/containersol/minimesos/main/CommandInitTest.java b/cli/src/integration-test/java/com/containersol/minimesos/main/CommandInitTest.java index 08e51a35..7e6b4c8b 100644 --- a/cli/src/integration-test/java/com/containersol/minimesos/main/CommandInitTest.java +++ b/cli/src/integration-test/java/com/containersol/minimesos/main/CommandInitTest.java @@ -30,8 +30,7 @@ public void testFileContent() throws IOException { assertTrue("agent section is not found", fileContent.contains("agent {")); assertTrue("agent resources section is not found", fileContent.contains("resources {")); assertTrue("zookeeper section is not found", fileContent.contains("zookeeper {")); - assertTrue("consul section is not found", fileContent.contains("consul {")); - assertTrue("registrator section is not found", fileContent.contains("registrator {")); + assertTrue("mesosdns section is not found", fileContent.contains("mesosdns {")); } @Test(expected = MinimesosException.class) diff --git a/cli/src/integration-test/java/com/containersol/minimesos/main/CommandTest.java b/cli/src/integration-test/java/com/containersol/minimesos/main/CommandTest.java index 74f7d25b..074274dd 100644 --- a/cli/src/integration-test/java/com/containersol/minimesos/main/CommandTest.java +++ b/cli/src/integration-test/java/com/containersol/minimesos/main/CommandTest.java @@ -45,7 +45,7 @@ public void testUpAndDestroy() { assertTrue("Minimesos file at " + minimesosFile + " should exist", minimesosFile.exists()); - assertEquals(6, cluster.getMemberProcesses().size()); + assertEquals(5, cluster.getMemberProcesses().size()); cluster.destroy(new MesosClusterContainersFactory()); diff --git a/cli/src/integration-test/resources/configFiles/complete-minimesosFile b/cli/src/integration-test/resources/configFiles/complete-minimesosFile index ffb46e9f..2816d86c 100644 --- a/cli/src/integration-test/resources/configFiles/complete-minimesosFile +++ b/cli/src/integration-test/resources/configFiles/complete-minimesosFile @@ -36,11 +36,6 @@ minimesos { } } - consul { - imageName = "consul" - imageTag = "0.7.1" - } - marathon { imageName = "mesosphere/marathon" imageTag = "v1.3.5" @@ -54,9 +49,9 @@ minimesos { loggingLevel = "# INHERIT FROM CLUSTER" } - registrator { - imageName = "gliderlabs/registrator" - imageTag = "v6" + mesosdns { + imageName = "xebia/mesos-dns" + imageTag = "0.0.5" } zookeeper { diff --git a/cli/src/integration-test/resources/configFiles/marathonAppConfig-minimesosFile b/cli/src/integration-test/resources/configFiles/marathonAppConfig-minimesosFile index ca56a5e3..026e3ba8 100644 --- a/cli/src/integration-test/resources/configFiles/marathonAppConfig-minimesosFile +++ b/cli/src/integration-test/resources/configFiles/marathonAppConfig-minimesosFile @@ -35,11 +35,6 @@ minimesos { } } - consul { - imageName = "consul" - imageTag = "0.7.1" - } - marathon { imageName = "mesosphere/marathon" imageTag = "v1.3.5" @@ -55,9 +50,9 @@ minimesos { imageTag = "1.0.0-0.1.0" } - registrator { - imageName = "gliderlabs/registrator" - imageTag = "v6" + mesosdns { + imageName = "xebia/mesos-dns" + imageTag = "0.0.5" } zookeeper { diff --git a/cli/src/main/java/com/containersol/minimesos/main/CommandInit.java b/cli/src/main/java/com/containersol/minimesos/main/CommandInit.java index ddfdccee..0d288a16 100644 --- a/cli/src/main/java/com/containersol/minimesos/main/CommandInit.java +++ b/cli/src/main/java/com/containersol/minimesos/main/CommandInit.java @@ -15,11 +15,10 @@ import com.containersol.minimesos.config.AppConfig; import com.containersol.minimesos.config.ClusterConfig; import com.containersol.minimesos.config.ConfigParser; -import com.containersol.minimesos.config.ConsulConfig; import com.containersol.minimesos.config.MarathonConfig; import com.containersol.minimesos.config.MesosAgentConfig; import com.containersol.minimesos.config.MesosMasterConfig; -import com.containersol.minimesos.config.RegistratorConfig; +import com.containersol.minimesos.config.MesosDNSConfig; import com.containersol.minimesos.config.ZooKeeperConfig; import org.slf4j.Logger; @@ -85,8 +84,7 @@ public String getConfigFileContent() { config.setMaster(new MesosMasterConfig(ClusterConfig.DEFAULT_MESOS_VERSION)); config.setZookeeper(new ZooKeeperConfig()); config.getAgents().add(new MesosAgentConfig(ClusterConfig.DEFAULT_MESOS_VERSION)); - config.setConsul(new ConsulConfig()); - config.setRegistrator(new RegistratorConfig()); + config.setMesosdns(new MesosDNSConfig()); AppConfig weaveConfig = new AppConfig(); weaveConfig.setMarathonJson("https://raw.githubusercontent.com/ContainerSolutions/minimesos/master/opt/apps/weave-scope.json"); diff --git a/docs/index.md b/docs/index.md index 4fb89c03..e90e244d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -128,8 +128,9 @@ Scalar values are simple key-value strings. | agent resources mem | Block | Describes memory resources | | agent resources ports | Block | Describes network ports resources | -## Consul and registrator -By default, minimesos starts consul and registrator containers giving you ability to configure service discovery. +## Mesos DNS + +Mesos DNS registers Mesos processes and frameworks in its DNS server ## Java API @@ -228,7 +229,6 @@ export MINIMESOS_NETWORK_GATEWAY=172.17.0.1 export MINIMESOS_AGENT=http://172.17.0.5:5051; export MINIMESOS_AGENT_IP=172.17.0.5 export MINIMESOS_ZOOKEEPER=zk://172.17.0.3:2181/mesos; export MINIMESOS_ZOOKEEPER_IP=172.17.0.3 export MINIMESOS_MARATHON=http://172.17.0.6:8080; export MINIMESOS_MARATHON_IP=172.17.0.6 -export MINIMESOS_CONSUL=http://172.17.0.7:8500; export MINIMESOS_CONSUL_IP=172.17.0.7 export MINIMESOS_MASTER=http://172.17.0.4:5050; export MINIMESOS_MASTER_IP=172.17.0.4 $ minimesos state | jq ".version" diff --git a/minimesos/src/main/groovy/com/containersol/minimesos/config/ClusterConfig.groovy b/minimesos/src/main/groovy/com/containersol/minimesos/config/ClusterConfig.groovy index e9b3f0b6..e24d483c 100644 --- a/minimesos/src/main/groovy/com/containersol/minimesos/config/ClusterConfig.groovy +++ b/minimesos/src/main/groovy/com/containersol/minimesos/config/ClusterConfig.groovy @@ -31,8 +31,7 @@ class ClusterConfig extends GroovyBlock { List agents = new ArrayList<>() ZooKeeperConfig zookeeper = null MarathonConfig marathon = null - ConsulConfig consul = null - RegistratorConfig registrator = null + MesosDNSConfig mesosdns = null def master(@DelegatesTo(MesosMasterConfig) Closure cl) { if (master != null) { @@ -64,20 +63,12 @@ class ClusterConfig extends GroovyBlock { delegateTo(marathon, cl) } - def consul(@DelegatesTo(ConsulConfig) Closure cl) { - if (consul != null) { - throw new RuntimeException("Cannot have more than 1 Consul server") + def mesosdns(@DelegatesTo(MesosDNSConfig) Closure cl) { + if (mesosdns != null) { + throw new RuntimeException("Cannot have more than 1 mesosDNS") } - consul = new ConsulConfig() - delegateTo(consul, cl) - } - - def registrator(@DelegatesTo(RegistratorConfig) Closure cl) { - if (registrator != null) { - throw new RuntimeException("Cannot have more than 1 registrator") - } - registrator = new RegistratorConfig() - delegateTo(registrator, cl) + mesosdns = new MesosDNSConfig() + delegateTo(mesosdns, cl) } void setLoggingLevel(String loggingLevel) { diff --git a/minimesos/src/main/groovy/com/containersol/minimesos/config/ConsulConfig.groovy b/minimesos/src/main/groovy/com/containersol/minimesos/config/ConsulConfig.groovy deleted file mode 100644 index dff363c7..00000000 --- a/minimesos/src/main/groovy/com/containersol/minimesos/config/ConsulConfig.groovy +++ /dev/null @@ -1,16 +0,0 @@ -package com.containersol.minimesos.config; - -public class ConsulConfig extends ContainerConfigBlock implements ContainerConfig { - - public static final String CONSUL_IMAGE_NAME = "consul" - public static final String CONSUL_TAG_NAME = "0.7.1" - - public static final int CONSUL_HTTP_PORT = 8500 - public static final int CONSUL_DNS_PORT = 8600 - - public ConsulConfig() { - imageName = CONSUL_IMAGE_NAME - imageTag = CONSUL_TAG_NAME - } - -} diff --git a/minimesos/src/main/groovy/com/containersol/minimesos/config/MesosDNSConfig.groovy b/minimesos/src/main/groovy/com/containersol/minimesos/config/MesosDNSConfig.groovy new file mode 100644 index 00000000..b25110bb --- /dev/null +++ b/minimesos/src/main/groovy/com/containersol/minimesos/config/MesosDNSConfig.groovy @@ -0,0 +1,13 @@ +package com.containersol.minimesos.config; + +public class MesosDNSConfig extends ContainerConfigBlock implements ContainerConfig { + + public static final String MESOS_DNS_IMAGE_NAME = "xebia/mesos-dns" + public static final String MESOS_DNS_TAG_NAME = "0.0.5" + + public MesosDNSConfig() { + imageName = MESOS_DNS_IMAGE_NAME + imageTag = MESOS_DNS_TAG_NAME + } + +} diff --git a/minimesos/src/main/groovy/com/containersol/minimesos/config/RegistratorConfig.groovy b/minimesos/src/main/groovy/com/containersol/minimesos/config/RegistratorConfig.groovy deleted file mode 100644 index cb74547a..00000000 --- a/minimesos/src/main/groovy/com/containersol/minimesos/config/RegistratorConfig.groovy +++ /dev/null @@ -1,13 +0,0 @@ -package com.containersol.minimesos.config; - -public class RegistratorConfig extends ContainerConfigBlock implements ContainerConfig { - - public static final String REGISTRATOR_IMAGE_NAME = "gliderlabs/registrator" - public static final String REGISTRATOR_TAG_NAME = "v6" - - public RegistratorConfig() { - imageName = REGISTRATOR_IMAGE_NAME - imageTag = REGISTRATOR_TAG_NAME - } - -} diff --git a/minimesos/src/main/java/com/containersol/minimesos/cluster/ClusterUtil.java b/minimesos/src/main/java/com/containersol/minimesos/cluster/ClusterUtil.java index 0d9941ba..ca9295bd 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/cluster/ClusterUtil.java +++ b/minimesos/src/main/java/com/containersol/minimesos/cluster/ClusterUtil.java @@ -38,7 +38,7 @@ public static List getDistinctRoleProcesses(List } for (Map.Entry role : roles.entrySet() ) { - if (role.getValue() == 1) { + if (role.getValue() >= 1) { Optional process = processes.stream().filter(withRole(role.getKey())).findFirst(); distinct.add(process.get()); } diff --git a/minimesos/src/main/java/com/containersol/minimesos/cluster/Consul.java b/minimesos/src/main/java/com/containersol/minimesos/cluster/Consul.java deleted file mode 100644 index 58ae1a05..00000000 --- a/minimesos/src/main/java/com/containersol/minimesos/cluster/Consul.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.containersol.minimesos.cluster; - -/** - * Consul functionality - */ -public interface Consul extends ClusterProcess { -} diff --git a/minimesos/src/main/java/com/containersol/minimesos/cluster/Filter.java b/minimesos/src/main/java/com/containersol/minimesos/cluster/Filter.java index 50636545..b6b58a52 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/cluster/Filter.java +++ b/minimesos/src/main/java/com/containersol/minimesos/cluster/Filter.java @@ -11,10 +11,6 @@ public static Predicate zooKeeper() { return process -> process instanceof ZooKeeper; } - public static Predicate consul() { - return process -> process instanceof Consul; - } - public static Predicate mesosMaster() { return process -> process instanceof MesosMaster; } @@ -31,5 +27,4 @@ public static Predicate withRole(String role) { return process -> role.equals(process.getRole()); } - public static Predicate registrator() { return process -> process instanceof Registrator; } } diff --git a/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosCluster.java b/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosCluster.java index e38311e8..77a221ab 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosCluster.java +++ b/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosCluster.java @@ -310,11 +310,6 @@ public Marathon getMarathon() { return marathon.isPresent() ? marathon.get() : null; } - public Consul getConsul() { - Optional container = getOne(Filter.consul()); - return container.isPresent() ? container.get() : null; - } - /** * Optionally get one of a certain type of type T. Note, this cast will always work because we are filtering on that type. * If it doesn't find that type, the optional is empty so the cast doesn't need to be performed. diff --git a/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosDNS.java b/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosDNS.java new file mode 100644 index 00000000..7d1502e6 --- /dev/null +++ b/minimesos/src/main/java/com/containersol/minimesos/cluster/MesosDNS.java @@ -0,0 +1,8 @@ +package com.containersol.minimesos.cluster; + +/** + * Mesos DNS + */ +public interface MesosDNS extends ClusterProcess { + +} diff --git a/minimesos/src/main/java/com/containersol/minimesos/cluster/Registrator.java b/minimesos/src/main/java/com/containersol/minimesos/cluster/Registrator.java deleted file mode 100644 index b8bbd47c..00000000 --- a/minimesos/src/main/java/com/containersol/minimesos/cluster/Registrator.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.containersol.minimesos.cluster; - -/** - * Consul functionality - */ -public interface Registrator extends ClusterProcess { - - void setConsul(Consul consul); -} diff --git a/minimesos/src/main/java/com/containersol/minimesos/mesos/MesosClusterContainersFactory.java b/minimesos/src/main/java/com/containersol/minimesos/mesos/MesosClusterContainersFactory.java index e9661868..f6d0325a 100644 --- a/minimesos/src/main/java/com/containersol/minimesos/mesos/MesosClusterContainersFactory.java +++ b/minimesos/src/main/java/com/containersol/minimesos/mesos/MesosClusterContainersFactory.java @@ -9,14 +9,13 @@ import com.containersol.minimesos.MinimesosException; import com.containersol.minimesos.cluster.ClusterProcess; -import com.containersol.minimesos.cluster.Consul; import com.containersol.minimesos.cluster.Filter; import com.containersol.minimesos.cluster.Marathon; import com.containersol.minimesos.cluster.MesosAgent; import com.containersol.minimesos.cluster.MesosCluster; import com.containersol.minimesos.cluster.MesosClusterFactory; import com.containersol.minimesos.cluster.MesosMaster; -import com.containersol.minimesos.cluster.Registrator; +import com.containersol.minimesos.cluster.MesosDNS; import com.containersol.minimesos.cluster.ZooKeeper; import com.containersol.minimesos.config.ClusterConfig; import com.containersol.minimesos.config.ConfigParser; @@ -54,12 +53,8 @@ public Marathon createMarathon(MesosCluster mesosCluster, String uuid, String co return new MarathonContainer(mesosCluster, uuid, containerId); } - public Consul createConsul(MesosCluster mesosCluster, String uuid, String containerId) { - return new ConsulContainer(mesosCluster, uuid, containerId); - } - - public Registrator createRegistrator(MesosCluster mesosCluster, String uuid, String containerId) { - return new RegistratorContainer(mesosCluster, uuid, containerId); + public MesosDNS createMesosDNS(MesosCluster mesosCluster, String uuid, String containerId) { + return new MesosDNSContainer(mesosCluster, uuid, containerId); } @Override @@ -98,11 +93,8 @@ public void loadRunningCluster(MesosCluster cluster) { case "marathon": containers.add(createMarathon(cluster, uuid, containerId)); break; - case "consul": - containers.add(createConsul(cluster, uuid, containerId)); - break; - case "registrator": - containers.add(createRegistrator(cluster, uuid, containerId)); + case "mesosDNS": + containers.add(createMesosDNS(cluster, uuid, containerId)); break; } } @@ -175,12 +167,8 @@ private static ClusterContainers createProcesses(ClusterConfig clusterConfig) { clusterContainers.add(new MarathonContainer(clusterConfig.getMarathon())); } - if (clusterConfig.getConsul() != null) { - clusterContainers.add(new ConsulContainer(clusterConfig.getConsul())); - } - - if (clusterConfig.getRegistrator() != null) { - clusterContainers.add(new RegistratorContainer(clusterConfig.getRegistrator())); + if (clusterConfig.getMesosdns() != null) { + clusterContainers.add(new MesosDNSContainer(clusterConfig.getMesosdns())); } return clusterContainers; @@ -200,10 +188,6 @@ private static void validateProcesses(ClusterContainers clusterContainers) { if (!isPresent(clusterContainers, Filter.mesosAgent())) { throw new MinimesosException("Cluster requires at least 1 Mesos Agent. Please add one in the minimesosFile."); } - - if (isPresent(clusterContainers, Filter.registrator()) && !isPresent(clusterContainers, Filter.consul())) { - throw new MinimesosException("Registrator requires a single Consul. Please add consul in the minimesosFile."); - } } private static void connectProcesses(ClusterContainers clusterContainers) { @@ -222,12 +206,6 @@ private static void connectProcesses(ClusterContainers clusterContainers) { MesosAgent agent = (MesosAgent) a; agent.setZooKeeper(zookeeper); }); - - if (clusterContainers.getOne(Filter.registrator()).isPresent()) { - Consul consul = (Consul) clusterContainers.getOne(Filter.consul()).get(); - Registrator registrator = (Registrator) clusterContainers.getOne(Filter.registrator()).get(); - registrator.setConsul(consul); - } } private static Boolean isPresent(ClusterContainers clusterContainers, Predicate filter) { diff --git a/minimesos/src/main/java/com/containersol/minimesos/mesos/MesosDNSContainer.java b/minimesos/src/main/java/com/containersol/minimesos/mesos/MesosDNSContainer.java new file mode 100644 index 00000000..f03c7bf7 --- /dev/null +++ b/minimesos/src/main/java/com/containersol/minimesos/mesos/MesosDNSContainer.java @@ -0,0 +1,63 @@ +package com.containersol.minimesos.mesos; + +import com.containersol.minimesos.cluster.MesosCluster; +import com.containersol.minimesos.cluster.MesosDNS; +import com.containersol.minimesos.config.MesosDNSConfig; +import com.containersol.minimesos.integrationtest.container.AbstractContainer; +import com.containersol.minimesos.docker.DockerClientFactory; +import com.github.dockerjava.api.command.CreateContainerCmd; + +import java.util.HashMap; +import java.util.Map; + +import static com.containersol.minimesos.util.EnvironmentBuilder.newEnvironment; + +/** + * Mesos DNS automatically registers and deregisters Mesos services. + */ +public class MesosDNSContainer extends AbstractContainer implements MesosDNS { + + private static final String DNS_PORT = "5353"; + + private static final String DOMAIN = "mm"; + + private MesosDNSConfig config; + + public MesosDNSContainer(MesosCluster cluster, String uuid, String containerId) { + this(cluster, uuid, containerId, new MesosDNSConfig()); + } + + private MesosDNSContainer(MesosCluster cluster, String uuid, String containerId, MesosDNSConfig config) { + super(cluster, uuid, containerId, config); + this.config = config; + } + + public MesosDNSContainer(MesosDNSConfig mesosDNS) { + super(mesosDNS); + this.config = mesosDNS; + } + + @Override + public String getRole() { + return "mesosdns"; + } + + @Override + protected CreateContainerCmd dockerCommand() { + return DockerClientFactory.build() + .createContainerCmd(config.getImageName() + ":" + config.getImageTag()) + .withEnv(newEnvironment() + .withValues(getMesosDNSEnvVars()) + .createEnvironment()) + .withCmd("-v=2", "-config=/etc/mesos-dns/config.json") + .withName(getName()); + } + + private Map getMesosDNSEnvVars() { + Map mesosDNSEnvVars = new HashMap<>(); + mesosDNSEnvVars.put("MESOS_DNS_ZK", getCluster().getZooKeeper().getFormattedZKAddress() + "/mesos"); + mesosDNSEnvVars.put("MESOS_DNS_DOMAIN", DOMAIN); + mesosDNSEnvVars.put("MESOS_DNS_PORT", DNS_PORT); + return mesosDNSEnvVars; + } +} diff --git a/minimesos/src/main/java/com/containersol/minimesos/mesos/RegistratorContainer.java b/minimesos/src/main/java/com/containersol/minimesos/mesos/RegistratorContainer.java deleted file mode 100644 index b910d436..00000000 --- a/minimesos/src/main/java/com/containersol/minimesos/mesos/RegistratorContainer.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.containersol.minimesos.mesos; - -import com.containersol.minimesos.cluster.Consul; -import com.containersol.minimesos.cluster.MesosCluster; -import com.containersol.minimesos.cluster.Registrator; -import com.containersol.minimesos.config.ConsulConfig; -import com.containersol.minimesos.config.RegistratorConfig; -import com.containersol.minimesos.integrationtest.container.AbstractContainer; -import com.containersol.minimesos.docker.DockerClientFactory; -import com.github.dockerjava.api.command.CreateContainerCmd; -import com.github.dockerjava.api.model.Bind; - -/** - * Registrator automatically registers and deregisters services for any Docker container by inspecting containers as they come online. - */ -public class RegistratorContainer extends AbstractContainer implements Registrator { - - private RegistratorConfig config; - - private Consul consul; - - public RegistratorContainer(MesosCluster cluster, String uuid, String containerId) { - this(cluster, uuid, containerId, new RegistratorConfig()); - } - - private RegistratorContainer(MesosCluster cluster, String uuid, String containerId, RegistratorConfig config) { - super(cluster, uuid, containerId, config); - this.config = config; - } - - public RegistratorContainer(RegistratorConfig registrator) { - super(registrator); - this.config = registrator; - } - - @Override - public String getRole() { - return "registrator"; - } - - @Override - protected CreateContainerCmd dockerCommand() { - return DockerClientFactory.build().createContainerCmd(config.getImageName() + ":" + config.getImageTag()) - .withNetworkMode("host") - .withBinds(Bind.parse("/var/run/docker.sock:/tmp/docker.sock")) - .withCmd("-internal", String.format("consul://%s:%d", consul.getIpAddress(), ConsulConfig.CONSUL_HTTP_PORT)) - .withName(getName()); - } - - public void setConsul(ConsulContainer consul) { - this.consul = consul; - } - - @Override - public void setConsul(Consul consul) { - this.consul = consul; - } -} diff --git a/minimesos/src/main/resources/marathon/mesos-consul.json b/minimesos/src/main/resources/marathon/mesos-consul.json deleted file mode 100644 index 6aa3ea0b..00000000 --- a/minimesos/src/main/resources/marathon/mesos-consul.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "args": [ - "--zk={{MINIMESOS_ZOOKEEPER}}", - "--consul=1", - "--consul-ip={{MINIMESOS_CONSUL_IP}}" - ], - "container": { - "type": "DOCKER", - "docker": { - "network": "BRIDGE", - "image": "containersol/mesos-consul:latest" - } - }, - "id": "mesos-consul", - "instances": 1, - "cpus": 0.1, - "mem": 256 -} diff --git a/minimesos/src/test/groovy/com/containersol/minimesos/config/ConfigWriterTest.groovy b/minimesos/src/test/groovy/com/containersol/minimesos/config/ConfigWriterTest.groovy index 75bccf2e..6eefc1f7 100644 --- a/minimesos/src/test/groovy/com/containersol/minimesos/config/ConfigWriterTest.groovy +++ b/minimesos/src/test/groovy/com/containersol/minimesos/config/ConfigWriterTest.groovy @@ -31,8 +31,7 @@ public class ConfigWriterTest { config.zookeeper = new ZooKeeperConfig() config.marathon = new MarathonConfig() config.agents.add(new MesosAgentConfig()) - config.consul = new ConsulConfig() - config.registrator = new RegistratorConfig() + config.mesosdns = new MesosDNSConfig() AppConfig appConfig = new AppConfig() appConfig.setMarathonJson("http://www.google.com") @@ -63,8 +62,7 @@ public class ConfigWriterTest { compareContainers(first.marathon, second.marathon) compareContainers(first.zookeeper, second.zookeeper) - compareContainers(first.consul, second.consul) - compareContainers(first.registrator, second.registrator) + compareContainers(first.mesosdns, second.mesosdns) compareMesosContainers(first.master, second.master) diff --git a/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterUtilTest.java b/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterUtilTest.java index 51851844..e4239b88 100644 --- a/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterUtilTest.java +++ b/minimesos/src/test/java/com/containersol/minimesos/mesos/ClusterUtilTest.java @@ -3,7 +3,6 @@ import com.containersol.minimesos.cluster.ClusterProcess; import com.containersol.minimesos.cluster.ClusterUtil; import com.containersol.minimesos.config.ClusterConfig; -import com.containersol.minimesos.config.ConsulConfig; import com.containersol.minimesos.config.MesosAgentConfig; import com.containersol.minimesos.config.MesosMasterConfig; import com.containersol.minimesos.integrationtest.container.AbstractContainer; @@ -35,17 +34,6 @@ public String getRole() { return "master"; } }; - ClusterProcess consul = new AbstractContainer(new ConsulConfig()) { - @Override - protected CreateContainerCmd dockerCommand() { - return null; - } - - @Override - public String getRole() { - return "consul"; - } - }; ClusterProcess agent1 = new AbstractContainer(new MesosAgentConfig(ClusterConfig.DEFAULT_MESOS_VERSION)) { @Override protected CreateContainerCmd dockerCommand() { @@ -69,12 +57,11 @@ public String getRole() { } }; - List processes = Arrays.asList(master, consul, agent1, agent2); + List processes = Arrays.asList(master, agent1, agent2); List distinct = ClusterUtil.getDistinctRoleProcesses(processes); assertEquals(2, distinct.size()); assertTrue("master has a distinct role", distinct.contains(master)); - assertTrue("consul has a distinct role", distinct.contains(consul)); } } diff --git a/minimesos/src/test/resources/configFiles/minimesosFile-mesosClusterTest b/minimesos/src/test/resources/configFiles/minimesosFile-mesosClusterTest index e3278c67..b9bdb607 100644 --- a/minimesos/src/test/resources/configFiles/minimesosFile-mesosClusterTest +++ b/minimesos/src/test/resources/configFiles/minimesosFile-mesosClusterTest @@ -96,11 +96,6 @@ minimesos { } } - consul { - imageName = "consul" - imageTag = "0.7.1" - } - master { imageName = "containersol/mesos-master" imageTag = "1.0.0-0.1.0"