Bug 1135026

Summary: docker support for pacemaker clusters
Product: Red Hat Enterprise Linux 7 Reporter: David Vossel <dvossel>
Component: resource-agentsAssignee: David Vossel <dvossel>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: high Docs Contact:
Priority: unspecified    
Version: 7.1CC: agk, cluster-maint, djansa, fdinitto, mnovacek, sghosh
Target Milestone: rcKeywords: TechPreview
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: resource-agents-3.9.5-38.el7 Doc Type: Technology Preview
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 08:00:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1139843    
Bug Blocks:    

Description David Vossel 2014-08-28 16:59:41 UTC
Description of problem:

We need to support managing docker containers in an HA environment in the same way virtual machines are already supported with the VirtualDomain resource-agent.

Additional info:

There is already an upstream resource-agent started that supports docker management. It can be found here. https://github.com/ClusterLabs/resource-agents/pull/370

Comment 4 David Vossel 2014-10-28 16:51:25 UTC
Unit Test

# yum install -y docker resource-agentsech
# wget https://raw.githubusercontent.com/davidvossel/phd/master/misc/docker-agent-test.sh
# chmod 755 docker-agent-test.sh
# ./docker-agent-test.sh
.
.
.
.
.
. ______ ALL TESTS PASSED ______
# echo $?
0

Comment 5 David Vossel 2014-10-28 16:53:42 UTC
(In reply to David Vossel from comment #4)
> Unit Test
> 
> # yum install -y docker resource-agentsech

typo. s/resource-agentsech/resource-agents/

Comment 6 michal novacek 2014-12-11 11:28:13 UTC
I have verified that the docker resource agent functionality seems correctr
with resource-agents-3.9.5-38.el7.x86_64

-----

# wget https://raw.githubusercontent.com/davidvossel/phd/master/misc/docker-agent-test.sh
# chmod 755 docker-agent-test.sh
# ./docker-agent-test.sh
Pulling image for test. This could take several minutes.
centos:centos7: The image you are pulling has been verified
511136ea3c5a: Pull complete 
5b12ef8fd570: Pull complete 
34943839435d: Pull complete 
Status: Downloaded newer image for centos:centos7
STARTING TESTS: using image <centos:centos7> container name <hatest>
DEBUG: hatest monitor : 7
INFO: running container hatest for the first time
INFO: 10a6a46effd1b71886f1200a824d3158a59f4209c667184d2fd22a832e9eb7f8
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
DEBUG: hatest monitor : 0
DEBUG: hatest monitor : 0
DEBUG: hatest start : 0
DEBUG: hatest monitor : 0
DEBUG: waiting 10 second[s] before killing container
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
DEBUG: hatest monitor : 7
--------------- PASSED: simple
INFO: checking for nsenter, which is required when 'monitor_cmd' is specified
INFO: running container hatest for the first time
INFO: e00f451d10f2e0cefd0d1c44fef76feb73326a0b3743257e2ed33eec4b0bd509
INFO: monitor cmd passed: exit code = 0
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
INFO: checking for nsenter, which is required when 'monitor_cmd' is specified
INFO: running container hatest for the first time
INFO: 38aaadcf2104962fae9dea346b4451ae3c47fe60a44b5254cf8d34c16b9d4a55
INFO: monitor cmd exit code = 1
INFO: stdout/stderr: 
ocf-exit-reason:waiting on monitor_cmd to pass after start
INFO: monitor cmd passed: exit code = 0
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
INFO: checking for nsenter, which is required when 'monitor_cmd' is specified
INFO: running container hatest for the first time
INFO: 7b614f6e1371e996b60ed9d5f6cc8e8f5a505065fc83bc2736e84875e099a7ee
INFO: monitor cmd passed: exit code = 0
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
INFO: checking for nsenter, which is required when 'monitor_cmd' is specified
INFO: running container hatest for the first time
INFO: bbfffef8656a4b7c37d2f7e2a54843018b904be37729c63ea2f353a8651eeab1
INFO: monitor cmd passed: exit code = 0
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
INFO: checking for nsenter, which is required when 'monitor_cmd' is specified
INFO: running container hatest for the first time
INFO: abb794a957edcc63abcfc36dd9b45b947206126b2050e6e135101a61ee6cb8f9
INFO: monitor cmd exit code = 1
INFO: stdout/stderr: 
ocf-exit-reason:waiting on monitor_cmd to pass after start
INFO: monitor cmd exit code = 1
INFO: stdout/stderr: 
ocf-exit-reason:waiting on monitor_cmd to pass after start
INFO: monitor cmd exit code = 1
INFO: stdout/stderr: 
ocf-exit-reason:waiting on monitor_cmd to pass after start
INFO: monitor cmd passed: exit code = 0
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
INFO: checking for nsenter, which is required when 'monitor_cmd' is specified
INFO: running container hatest for the first time
INFO: 3cb8172b62a532c4bec4b84c8d66e50235b2aed4a7bfe0e01b01d279a8e5cb8a
INFO: monitor cmd exit code = 1
INFO: stdout/stderr: 
ocf-exit-reason:waiting on monitor_cmd to pass after start
INFO: monitor cmd passed: exit code = 0
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
INFO: checking for nsenter, which is required when 'monitor_cmd' is specified
INFO: running container hatest for the first time
INFO: d1694ff748ed1af52418292ff8d20ac2de5b08341d11b544292d686784f7a25e
INFO: monitor cmd exit code = 1
INFO: stdout/stderr: 
ocf-exit-reason:waiting on monitor_cmd to pass after start
INFO: monitor cmd exit code = 1
INFO: stdout/stderr: 
ocf-exit-reason:waiting on monitor_cmd to pass after start
INFO: monitor cmd passed: exit code = 0
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
INFO: checking for nsenter, which is required when 'monitor_cmd' is specified
INFO: running container hatest for the first time
INFO: 5b2a1d11159d12eea7e29a66b5ec4b34ba1c171de56b0352acff323b5fe0a82c
INFO: monitor cmd passed: exit code = 0
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
INFO: checking for nsenter, which is required when 'monitor_cmd' is specified
INFO: running container hatest for the first time
INFO: 20f2c60536c9a2654835a4a42b897f80db5a825681c25abc24b2f950beda54e5
INFO: monitor cmd exit code = 1
INFO: stdout/stderr: 
ocf-exit-reason:waiting on monitor_cmd to pass after start
INFO: monitor cmd passed: exit code = 0
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
INFO: checking for nsenter, which is required when 'monitor_cmd' is specified
INFO: running container hatest for the first time
INFO: f5aa7bb98f76cac7700d7d4127d80179b5be9958375181764480154746b5c572
INFO: monitor cmd exit code = 1
INFO: stdout/stderr: 
ocf-exit-reason:waiting on monitor_cmd to pass after start
INFO: monitor cmd exit code = 1
INFO: stdout/stderr: 
ocf-exit-reason:waiting on monitor_cmd to pass after start
INFO: monitor cmd passed: exit code = 0
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
--------------- PASSED: monitor_cmd_start
INFO: checking for nsenter, which is required when 'monitor_cmd' is specified
INFO: running container hatest for the first time
INFO: 5034c17e6d1ab4f88b7ba584b634ab7e49998f88eb4592e69ef22e1b7cbce747
INFO: monitor cmd passed: exit code = 0
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: monitor cmd passed: exit code = 0
DEBUG: hatest monitor : 0
INFO: monitor cmd exit code = 1
INFO: stdout/stderr: 
DEBUG: hatest monitor : 1
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
DEBUG: hatest monitor : 7
--------------- PASSED: monitor_cmd_fail
INFO: checking for nsenter, which is required when 'monitor_cmd' is specified
INFO: running container hatest for the first time
INFO: 5e735e225e63a0bd399c8cebe3d6d448a52eba6a3d8e48278ee559627e42837f
INFO: monitor cmd exit code = 127
INFO: stdout/stderr: -bash: line 1: /i/made/this/up: No such file or directory
ocf-exit-reason:monitor_cmd, /i/made/this/up , not found within container.
INFO: monitor cmd exit code = 127
INFO: stdout/stderr: -bash: line 1: /i/made/this/up: No such file or directory
ocf-exit-reason:monitor_cmd, /i/made/this/up , not found within container.
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
DEBUG: hatest monitor : 7
--------------- PASSED: invalid_monitor_cmd
DEBUG: hatest monitor : 7
INFO: checking for nsenter, which is required when 'monitor_cmd' is specified
INFO: running container hatest for the first time
INFO: 4a9aabfcb89237894fb89e9fa89338f5181e3494c3e1acb551c663f4b5654c8b
INFO: monitor cmd passed: exit code = 0
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: monitor cmd passed: exit code = 0
DEBUG: hatest monitor : 0
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
DEBUG: hatest monitor : 7
--------------- PASSED: custom_run_opts
DEBUG: hatest monitor : 7
INFO: running container customname for the first time
INFO: acb39091bde62886de7373c72ae145d41b5feec32f9db14195134df3c49c80ce
NOTICE: Container customname  started successfully
DEBUG: hatest start : 0
INFO: customname
NOTICE: Cleaning up inactive container, customname.
INFO: customname
DEBUG: hatest stop : 0
DEBUG: hatest monitor : 7
--------------- PASSED: custom_name
DEBUG: hatest monitor : 7
INFO: running container hatest for the first time
INFO: a3f683017406da09e26cbd45435d6eae4f454008e5b3c7184e15e2f43aba8d92
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: hatest
DEBUG: hatest stop : 0
DEBUG: hatest monitor : 7
hatest
--------------- PASSED: reuse
DEBUG: hatest monitor : 7
INFO: running container hatest for the first time
INFO: fef6e611b43c034eb791873378bcadfd3d3c5cec18acfd76ab041e0872f55c64
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
DEBUG: hatest monitor : 0
hatest
DEBUG: hatest monitor : 7
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
INFO: running container hatest for the first time
INFO: f6761d7c917c27ec80b27b52370545cca1eb8feeb8a5fec14508b26988f0b5b4
NOTICE: Container hatest  started successfully
DEBUG: hatest start : 0
INFO: hatest
NOTICE: Cleaning up inactive container, hatest.
INFO: hatest
DEBUG: hatest stop : 0
--------------- PASSED: failure_detection
______ ALL TESTS PASSED ______

# echo $?
0

Comment 8 errata-xmlrpc 2015-03-05 08:00:32 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2015-0351.html