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
I've forgot to mention that this is problem is only with containerized deployment
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.
(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.
can you point me at these docs?
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
(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?
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
(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.
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.
Change posted, there is no python-paunch component to reassign this to.
The packaging fix landed 4 months ago, so I believe it can be on ON_QA
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