Bug 1474021 - splitstack: python-heat-agent-docker-cmd should require docker
Summary: splitstack: python-heat-agent-docker-cmd should require docker
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: python-paunch
Version: unspecified
Hardware: Unspecified
OS: Unspecified
medium
high
Target Milestone: ga
: 12.0 (Pike)
Assignee: Steve Baker
QA Contact: Gurenko Alex
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-07-23 07:49 UTC by Gurenko Alex
Modified: 2018-02-19 21:54 UTC (History)
13 users (show)

Fixed In Version: python-paunch-1.4.0-0.20170730221552.039f2c9.el7ost
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-12-13 21:43:17 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
RDO 7977 0 None None None 2017-07-30 21:17:19 UTC
Red Hat Product Errata RHEA-2017:3462 0 normal SHIPPED_LIVE Red Hat OpenStack Platform 12.0 Enhancement Advisory 2018-02-16 01:43:25 UTC

Description Gurenko Alex 2017-07-23 07:49:58 UTC
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 07:50:50 UTC
I've forgot to mention that this is problem is only with containerized deployment

Comment 2 Steve Baker 2017-07-24 03:51:57 UTC
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 10:44:13 UTC
(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 19:20:49 UTC
can you point me at these docs?

Comment 5 Steve Baker 2017-07-24 21:23:05 UTC
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 16:18:50 UTC
(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 20:46:19 UTC
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 12:29:16 UTC
(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 21:04:38 UTC
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 21:17:20 UTC
Change posted, there is no python-paunch component to reassign this to.

Comment 13 Steve Baker 2017-11-20 21:22:40 UTC
The packaging fix landed 4 months ago, so I believe it can be on ON_QA

Comment 24 errata-xmlrpc 2017-12-13 21:43:17 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://access.redhat.com/errata/RHEA-2017:3462


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