Bug 1310903 - Kubernetes packages requirements broken with docker-engine
Kubernetes packages requirements broken with docker-engine
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: kubernetes (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: rc
: ---
Assigned To: Jan Chaloupka
: Extras, Reopened
Depends On:
  Show dependency treegraph
Reported: 2016-02-22 18:22 EST by Sam McLeod
Modified: 2018-02-01 21:03 EST (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2016-02-23 14:07:27 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Sam McLeod 2016-02-22 18:22:17 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.

How reproducible:

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)

Actual results:

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)

Expected results:

The package dependencies should be satisfied by the 'docker-engine' package being installed.

Additional info:

- 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'.
Comment 1 Sam McLeod 2016-02-22 18:23:29 EST
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
Comment 3 Jan Chaloupka 2016-02-23 14:07:27 EST
Hi Sam,

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.
Comment 4 Sam McLeod 2016-02-23 23:41:11 EST
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'.
Comment 5 Sam McLeod 2016-02-24 20:37:44 EST
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.

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