Blob Blame History Raw
From 786f44f9ab2731c8fc7d534689d5925cd6d3d98e Mon Sep 17 00:00:00 2001
From: Andrew Beekhof <andrew@beekhof.net>
Date: Tue, 18 Jul 2017 14:31:45 +1000
Subject: [PATCH] Fix: PE: Ensure nested container connections run on the same
 host

---
 pengine/container.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/pengine/container.c b/pengine/container.c
index f742660..280a61a 100644
--- a/pengine/container.c
+++ b/pengine/container.c
@@ -100,11 +100,22 @@ container_color(resource_t * rsc, node_t * prefer, pe_working_set_t * data_set)
 
     for (GListPtr gIter = container_data->tuples; gIter != NULL; gIter = gIter->next) {
         container_grouping_t *tuple = (container_grouping_t *)gIter->data;
+        pe_node_t *docker_host = tuple->docker->allocated_to;
 
         CRM_ASSERT(tuple);
         if(tuple->ip) {
             tuple->ip->cmds->allocate(tuple->ip, prefer, data_set);
         }
+
+        if(tuple->remote && is_remote_node(docker_host)) {
+            /* We need 'nested' connection resources to be on the same
+             * host because pacemaker-remoted only supports a single
+             * active connection
+             */
+            rsc_colocation_new("child-remote-with-docker-remote", NULL,
+                               INFINITY, tuple->remote, docker_host->details->remote_rsc, NULL, NULL, data_set);
+        }
+
         if(tuple->remote) {
             tuple->remote->cmds->allocate(tuple->remote, prefer, data_set);
         }
-- 
1.8.3.1