DC/OS E2E¶
DC/OS E2E is a tool for spinning up and managing DC/OS clusters in test environments.
Installation¶
DC/OS E2E consists of a Python Library and a dcos-docker CLI.
The CLI works only with the Docker Backend, while the library supports multiple Backends.
The CLI can be installed with Homebrew on macOS, and the library and CLI can be installed together with pip
on any Linux and macOS.
Windows is not currently supported, but we provide instructions on using DC/OS E2E on Windows with Vagrant on particular Backends’ documentation.
CLI macOS With Homebrew¶
To install the CLI on macOS, install Homebrew.
Then install the latest stable version:
brew install https://raw.githubusercontent.com/mesosphere/dcos-e2e/master/dcosdocker.rb
To upgrade from an older version, run the following command:
brew upgrade https://raw.githubusercontent.com/mesosphere/dcos-e2e/master/dcosdocker.rb
Or the latest master
:
Homebrew installs the dependencies for the latest released version and so installing master
may not work.
brew install --HEAD https://raw.githubusercontent.com/mesosphere/dcos-e2e/master/dcosdocker.rb
Run dcos-docker doctor to make sure that your system is ready to go:
$ dcos-docker doctor
Library and CLI with Python¶
If the CLI has been installed with Homebrew, you do not need to install the library to use the CLI.
Requires Python 3.5.2+.
Check the Python version:
python3 --version
Optionally replace master
with a particular version of DC/OS E2E.
The latest release is 2018.04.30.2.
See available versions.
pip3 install git+https://github.com/mesosphere/dcos-e2e.git@master
Run dcos-docker doctor to make sure that your system is ready to go for the Docker backend:
$ dcos-docker doctor
Getting Started with the Library¶
To create a DC/OS Cluster
, you need a backend.
Backends are customizable, but for now let’s use a standard Docker backend.
Each backend has different system requirements.
See the Docker backend documentation for details of what is needed for the Docker backend.
from dcos_e2e.backends import Docker
from dcos_e2e.cluster import Cluster
cluster = Cluster(cluster_backend=Docker())
It is also possible to use Cluster
as a context manager.
Doing this means that the cluster is destroyed on exit.
To install DC/OS on a cluster, you need a DC/OS build artifact.
You can download one from the DC/OS releases page.
In this example we will use a open source DC/OS artifact downloaded to /tmp/dcos_generate_config.sh
.
from pathlib import Path
oss_artifact = Path('/tmp/dcos_generate_config.sh')
cluster.install_dcos_from_path(
build_artifact=oss_artifact,
extra_config={
'resolvers': ['8.8.8.8'],
}
)
cluster.wait_for_dcos_oss()
With a Cluster
you can then run commands on arbitrary Node
s.
for master in cluster.masters:
result = master.run(args=['echo', '1'])
print(result.stdout)
There is much more that you can do with Cluster
s and Node
s, and there are other ways to create a cluster.
CLI¶
DC/OS E2E also provides a command line interface for the Docker backend. It allows you to create, manage and destroy DC/OS clusters. See dcos-docker CLI for details.
Reference¶
- Installation
- Python Library
dcos-docker
CLI- Versioning, Support and API Stability
- Contributing