Bug 1474021 - splitstack: python-heat-agent-docker-cmd should require docker
splitstack: python-heat-agent-docker-cmd should require docker
Status: CLOSED ERRATA
Product: Red Hat OpenStack
Classification: Red Hat
Component: python-paunch (Show other bugs)
unspecified
Unspecified Unspecified
medium Severity high
: ga
: 12.0 (Pike)
Assigned To: Steve Baker
Gurenko Alex
: Reopened, Triaged
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2017-07-23 03:49 EDT by Gurenko Alex
Modified: 2018-02-19 16:54 EST (History)
13 users (show)

See Also:
Fixed In Version: python-paunch-1.4.0-0.20170730221552.039f2c9.el7ost
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2017-12-13 16:43:17 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
RDO 7977 None None None 2017-07-30 17:17 EDT

  None (edit)
Description Gurenko Alex 2017-07-23 03:49:58 EDT
Description of problem: splitstack deployment fails due to docker not being installed along with python-heat-agent-docker-cmd package


Version-Release number of selected component (if applicable):


How reproducible: 100%


Steps to Reproduce:
1. Try deploying with splitstack
2.
3.

Actual results:

Deployment fails at controller-step1


Expected results:

Deployment passes


Additional info:
Workaround is to pre-install docker and its dependencies on the overcloud nodes manually
Comment 1 Gurenko Alex 2017-07-23 03:50:50 EDT
I've forgot to mention that this is problem is only with containerized deployment
Comment 2 Steve Baker 2017-07-23 23:51:57 EDT
The package python-heat-agent-docker-cmd should be depending on python-paunch which depends on docker-common. This should ensure that the docker *client* is installed.

Since a client can talk to a server on another machine I don't think the dependencies should go further than that for paunch.

Can you elaborate on what the issue is for splitstack? If the issue is that there is no running and configured docker service then the solution would likely be some boot-time orchestration which ensures this happens.
Comment 3 Gurenko Alex 2017-07-24 06:44:13 EDT
(In reply to Steve Baker from comment #2)
> The package python-heat-agent-docker-cmd should be depending on
> python-paunch which depends on docker-common. This should ensure that the
> docker *client* is installed.
> 
> Since a client can talk to a server on another machine I don't think the
> dependencies should go further than that for paunch.
> 
> Can you elaborate on what the issue is for splitstack? If the issue is that
> there is no running and configured docker service then the solution would
> likely be some boot-time orchestration which ensures this happens.

The problem right now is that official docks suggest installing python-heat-agent* packages on the overcloud nodes before splitstack deployment. So there deployment fails due to paunch cannot connect to docker-server since it's not pulled with any of the mentioned above packages. Installation of the package also does not start&enable service, so it also needs manual action.
Comment 4 Steve Baker 2017-07-24 15:20:49 EDT
can you point me at these docs?
Comment 5 Steve Baker 2017-07-24 17:23:05 EDT
btw, installing a package will never enable and start a service, so some orchestration will be required to enable docker.

For the standard overcloud deployment, the docker service package is installed during the overcloud-full image build, and the docker service is started by invoking the following puppet

  https://github.com/openstack/tripleo-heat-templates/blob/master/puppet/services/docker.yaml#L53
Comment 6 Gurenko Alex 2017-07-25 12:18:50 EDT
(In reply to Steve Baker from comment #4)
> can you point me at these docs?

https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/11/html/director_installation_and_usage/chap-configuring_basic_overcloud_requirements_on_pre_provisioned_nodes#sect-Installing_the_User_Agent_on_Nodes

(In reply to Steve Baker from comment #5)
> btw, installing a package will never enable and start a service, so some
> orchestration will be required to enable docker.
> 
> For the standard overcloud deployment, the docker service package is
> installed during the overcloud-full image build, and the docker service is
> started by invoking the following puppet
> 
>  
> https://github.com/openstack/tripleo-heat-templates/blob/master/puppet/
> services/docker.yaml#L53

 Yes, I understand that, I'm just adding it since it's kind of related. Do we want to track it separately?
Comment 7 Steve Baker 2017-07-25 16:46:19 EDT
OK, I don't think there is anything in openstack-heat-agents which should be done to improve this.

This looks like a docs bug, the Pre-Provisioned Nodes docs need to include instructions for:
- installing docker service
- configuring it for the overlay2 storage driver
- enabling and start the service
- anything else the puppet ::tripleo::profile::base::docker is doing
Comment 8 James Slagle 2017-07-30 08:29:16 EDT
(In reply to Steve Baker from comment #7)
> OK, I don't think there is anything in openstack-heat-agents which should be
> done to improve this.
> 
> This looks like a docs bug, the Pre-Provisioned Nodes docs need to include
> instructions for:
> - installing docker service
> - configuring it for the overlay2 storage driver
> - enabling and start the service
> - anything else the puppet ::tripleo::profile::base::docker is doing

the configuration bit and starting the service i agree with, but as for the installation, i really think the package ought to be doing this.

As a parallel:

python-heat-agent-apply-config requires os-apply-config
python-heat-agent-puppet requires puppet
python-heat-agent-ansible requires ansible
...
python-heat-agent-docker-cmd *doesn't* require docker?

For that matter python-paunch also ought to require docker. 
For the case of paunch, it will actually take 30 minutes to time out if docker isn't running (which is a separate issue).

These are hard deps, these packages are useless without docker. It's not optional. We should just "do the right thing" as far as package dependencies. That is friendly to users.
Comment 9 Steve Baker 2017-07-30 17:04:38 EDT
python-heat-agent-docker-cmd requires python-paunch which requires docker-common which installs /usr/bin/docker.

I've just realised that /usr/bin/docker is a wrapper script and the actual docker client comes from the docker-client package, so that needs to be fixed.

And yeah, docker-client is the technical dependency but we only ever connect to docker on the local socket, so I'll just make python-paunch depend on docker.
Comment 10 Steve Baker 2017-07-30 17:17:20 EDT
Change posted, there is no python-paunch component to reassign this to.
Comment 13 Steve Baker 2017-11-20 16:22:40 EST
The packaging fix landed 4 months ago, so I believe it can be on ON_QA
Comment 24 errata-xmlrpc 2017-12-13 16:43:17 EST
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://access.redhat.com/errata/RHEA-2017:3462

Note You need to log in before you can comment on or make changes to this bug.