Skip to content
This repository has been archived by the owner on Oct 24, 2023. It is now read-only.

feat: make Moby version configurable #407

Merged
merged 6 commits into from Feb 4, 2019

Conversation

CecileRobertMichon
Copy link
Contributor

@CecileRobertMichon CecileRobertMichon commented Jan 31, 2019

Reason for Change:

Moby version should be configurable in apimodel.

Issue Fixed:

Fixes #107

Requirements:

Notes:

@codecov
Copy link

codecov bot commented Jan 31, 2019

Codecov Report

Merging #407 into master will increase coverage by 0.01%.
The diff coverage is 83.33%.

@@            Coverage Diff             @@
##           master     #407      +/-   ##
==========================================
+ Coverage   53.41%   53.42%   +0.01%     
==========================================
  Files          95       95              
  Lines       14360    14366       +6     
==========================================
+ Hits         7670     7675       +5     
- Misses       6027     6028       +1     
  Partials      663      663

@@ -25,3 +25,4 @@ steps:
inputs:
artifactName: '${{ parameters.job }}_logs'
targetPath: '$(modulePath)/_logs'
condition: always()
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is just for testing, will move to a different PR

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -11,7 +11,11 @@ CONTAINERD_DOWNLOAD_URL="${CONTAINERD_DOWNLOAD_URL_BASE}cri-containerd-${CRI_CON
CONTAINERD_TGZ_TMP=$(echo ${CONTAINERD_DOWNLOAD_URL} | cut -d "/" -f 5)

removeEtcd() {
rm -rf /usr/bin/etcd &
rm -rf /usr/bin/etcd
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removing the & here because I was about to do the same for Moby but realized this could lead to a race condition: we install etcd in /usr/bin/etcd right after calling removeEtcd

"allowedValues": [
"3.0.1",
"3.0.2",
"3.0.3"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure if we want to have this validation or just allow free form strings as versions to allow AKS to install a version AKS-Engine doesn't support yet but risk failing moby install later with a CSE error code

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think let's include it. We can always spike on weird, experimental stuff on PRs by overriding the installMoby func to do an alternate installation, ignoring the value in mobyVersion

@@ -20,6 +20,7 @@ if [[ ${FEATURE_FLAGS} == *"docker-engine"* ]]; then
installDockerEngine
installGPUDrivers
else
MOBY_VERSION="3.0.1"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for now, we can only install one version on the VHD at a time (that's because we actually install the packages as opposed to downloading a binary as we do for other things), same as for etcd

@jackfrancis jackfrancis added this to In progress in backlog Feb 1, 2019
@CecileRobertMichon CecileRobertMichon changed the title (WIP) feat: make Moby version configurable feat: make Moby version configurable Feb 2, 2019
@jackfrancis
Copy link
Member

/lgtm

@acs-bot acs-bot added the lgtm label Feb 4, 2019
@acs-bot acs-bot merged commit b96163c into Azure:master Feb 4, 2019
backlog automation moved this from In progress to Done Feb 4, 2019
@acs-bot
Copy link

acs-bot commented Feb 4, 2019

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: CecileRobertMichon, jackfrancis

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:
  • OWNERS [CecileRobertMichon,jackfrancis]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

juhacket pushed a commit to juhacket/aks-engine that referenced this pull request Mar 14, 2019
* feat: make Moby version configurable

* remove extra comma

* mobyVersion should be a parameter

* removeMoby before install, specify version in packer script

* Add default version in doc

* convert api/vlabs types
@aw-was-here
Copy link

Just a heads up that this pretty much broke the ability for shell scripts to determine what features the command line supports compared to other 'docker' commands. For example, if the client version is => 18, then scripts know that the docker command supports the --cache-from option. [Note that this is different than the Client API version.]

@CecileRobertMichon
Copy link
Contributor Author

@aw-was-here I'm not sure I understand how this particular PR (making the Moby version configurable) broke the scenario you described above. Can you please explain how this PR is breaking for that scenario?

@aw-was-here
Copy link

'docker version' is now returning docker client version 3.0.3 in azure pipelines. Prior it was 18.xxx.

@CecileRobertMichon
Copy link
Contributor Author

@aw-was-here this PR did not change that (it just makes the Moby version configurable). Switching to the Moby container runtime is what changed the version returned: Azure/acs-engine#3896. acs-engine (and now aks-engine) has been delivering moby as the default container runtime since v0.25.0, outlined in the release notes here: https://github.com/Azure/acs-engine/releases/tag/v0.25.0

Docker CE was never supported on acs-engine/aks-engine Linux nodes because of licensing issues (see Azure/acs-engine#4029 for context). The Moby version 3.0.x that you see when running docker version is a Moby build. The problem with moby is that they do not have actual releases and versions - there is no 1:1 to docker CE so any direct comparison isn’t great.

@aw-was-here
Copy link

Ah, ok, thanks. I guess we'll likely just yank Azure support for Apache Yetus in Docker mode then since it's unlikely we'll get around to support moby any time soon.

@CecileRobertMichon CecileRobertMichon deleted the configurable-moby branch April 18, 2019 22:42
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

Moby version should be configurable
5 participants