Rancher Machine, a fork of Docker Machine
Machine lets you create Docker hosts on your computer, on cloud providers, and inside your own data center. It creates servers, installs Docker on them, then configures the Docker client to talk to them.
The original full Docker Machine documentation is available here.
This project is intended to be embedded and executed by the full Rancher product and the stand alone cli functionality will remain but the human use of it will not be the primary focus as we will expect inputs provided by other things like Terraform or UIs.
Cli binaries can be found in our Releases Pages
For historical context you can read the Docker Machine Issues but all new issues created for Rancher Machine will need to be created in Rancher
In addition to the core driver plugins bundled alongside Rancher Machine, users can make and distribute their own plugin for any virtualization technology or cloud provider. To browse the list of known Rancher Machine plugins, please see this document in our docs repo.
The master branch is used for ongoing development and always contains the latest release.
Tags created from master are consumed by Rancher’s main branch.
In addition to master, this repository maintains multiple release branches.
Each branch name corresponds to the Rancher release line that consumes tags cut from that branch.
Whenever a new Rancher release branch is created, a corresponding branch is also created in this repository from master.
After a release branch is created, it only receives bug fixes and security patches.
New tags created from a release branch increment only the .x suffix of the version number.
For example, at the time of writing, v0.15.0-rancher142.2 is the latest tag in the release/v2.14 branch.
Subsequent tags from that branch would be v0.15.0-rancher142.3, v0.15.0-rancher142.4, and so on.
Release candidates will also be created from release branches before the corresponding release is published. This is necessary because CVE fixes may require a high volume of releases.
| Machine Branch | Rancher Releae line |
|---|---|
| master | main |
| release/v2.14 | v2.14 |
| release/v2.13 | v2.13 |
The daily Daily Master Tag workflow compares the current master commit with
the latest supported Rancher tag matching vX.Y.Z-rancherN or
vX.Y.Z-rancherN-rc.M. If they differ, it creates the next release-candidate
tag; otherwise it exits without creating a tag. Starting from a stable
vX.Y.Z-rancherN tag, the first candidate is
vX.Y.Z-rancher(N+1)-rc.0; each subsequent changed master commit increments
the rc number. RC tags are for validating the next release from master;
stable release tags continue to be created explicitly, and release branches
continue to use the dotted patch suffix described above. Other Rancher tag
formats, including dotted patch tags, are ignored by the automated RC tagger.
-
Prerequisite:
- Ensure all release changes are already merged into the
masterbranch before creating a tag. This process creates the tag from the latestmastercommit.
- Ensure all release changes are already merged into the
-
Prepare
masterand remote:-
Choose your release remote (replace
<remote>):git fetch <remote> --tagsgit checkout mastergit pull --ff-only <remote> master
-
-
Verify the latest tag (locally):
git describe --tags --abbrev=0
-
Create tag (from latest
master):git tag v0.15.0-rancher<NEW-VERSION>
-
Push the tag to your remote:
- Push single tag:
git push <remote> v0.15.0-rancher<NEW-VERSION>
- Push single tag:
-
Verify the tag is on the remote:
git ls-remote --tags <remote> | grep v0.15.0-rancher<NEW-VERSION>