Red Hat Bugzilla – Bug 1310903
Kubernetes packages requirements broken with docker-engine
Last modified: 2018-02-01 21:03:19 EST
Description of problem:
The Kubernetes packages in 'Extra' have a hard requirement on the package 'docker' being installed, however if you're using the official Docker packages rather than the old versions supplied in the Redhat repo the package is called 'docker-engine'.
The Kubernetes packages need to be satisfied with either the 'docker' or 'docker-engine' package installed and should not assume that people will be using Redhat's custom named Docker package simply name 'docker'.
Most people I've seen do not use the Redhat Docker package as it's quite out of date and as it's a fast moving piece of software it is critical to run up to date versions.
Steps to Reproduce:
1. Use the official 'docker-engine' package from Docker's Redhat (or any other Docker repo / self built packages)
2. Install 'kubernetes-node' (or several of the other kubernetes packages)
Broken dependencies as the kubernetes packages are looking specificity for a package called 'docker' installed rather than 'docker' (Redhat naming) or 'docker-engine' (official naming)
The package dependencies should be satisfied by the 'docker-engine' package being installed.
- docker-engine is the official naming for the core Docker package
- docker is the name of the company and used to describe various parts of the ecosystem.
I'm not suggesting fix the Redhat packages to also be called 'docker-engine' like upstream, I'm simply suggesting that the kubernetes packages should have their Docker dependency satisfied by 'docker-engine'.
Note that this was also reported to Docker to suggest that the 'docker-engine' package could provide 'docker', but this has been flagged as a bug with Redhat/CentOS as they should not override existing package names, see https://github.com/docker/docker/issues/20567
there is not way to support both docker and docker-engine at the same time. If there will be any support for docker-engine it must first start at docker package.
> I'm not suggesting fix the Redhat packages to also be called 'docker-engine'
> like upstream, I'm simply suggesting that the kubernetes packages should have
> their Docker dependency satisfied by 'docker-engine'.
At the moment, extras ships docker package only. I can not make kubernetes require docker-engine as it would make kubernetes uninstallable and broken update path.
Maybe kubernetes could require virtual "container" or similar name covering any supported containerization technology. Then, docker vs. docker-engine would not be the issue.
For either way I encourage you to solve this problem via customer portal first or your TAM.
This is one of those situations where Docker says it's a Redhat problem and Redhat says it's a Docker problem so we're not going to get anywhere.
Is there really no way that the Kubernetes packages can be satisfied by either package 'docker' or package 'docker-engine'.
Can you not make the RH Kubernetes packages require '/usr/bin/docker' which can be provided by 'docker' or 'docker-engine'?
With apt, this is easy, you simply have an either dependency, with yum/rpm it looks like this is the way you do it.