Custom Backends

DC/OS E2E supports pluggable backends. You may wish to create a new backend to support a new cloud provider for example.

How to Create a Custom Backend

To create a cluster Cluster backend, you need to create two classes. You need to create a ClusterManager and a ClusterBackend.

A ClusterBackend may take custom parameters and is useful for storing backend-specific options. A ClusterManager implements the nuts and bolts of cluster management for a particular backend. This implements things like creating nodes and installing DC/OS on those nodes.

Please consider contributing your backend to this repository if it is stable and could be of value to a wider audience.

References

class dcos_e2e.backends._base_classes.ClusterBackend

Cluster backend base class.

cluster_cls

Return the ClusterManager class to use to create and manage a cluster.

Return type:Type[ClusterManager]
class dcos_e2e.backends._base_classes.ClusterManager(masters, agents, public_agents, files_to_copy_to_installer, cluster_backend)

Create a DC/OS cluster with the given cluster_backend.

Parameters:
  • masters – The number of master nodes to create.
  • agents – The number of agent nodes to create.
  • public_agents – The number of public agent nodes to create.
  • files_to_copy_to_installer – Pairs of host paths to paths on the installer node. These are files to copy from the host to the installer node before installing DC/OS.
  • cluster_backend – Details of the specific DC/OS Docker backend to use.
install_dcos_from_url(build_artifact, extra_config, log_output_live)

Install DC/OS from a build artifact passed as an URL string.

Parameters:
  • build_artifact – The URL string to a build artifact to install DC/OS from.
  • extra_config – This may contain extra installation configuration variables that are applied on top of the default DC/OS configuration for a particular backend.
  • log_output_live – If True, log output of the installation live.
Return type:

None

install_dcos_from_path(build_artifact, extra_config, log_output_live)

Install DC/OS from a build artifact passed as a file system Path.

Parameters:
  • build_artifact – The path to a build artifact to install DC/OS from.
  • extra_config – May contain extra installation configuration variables that are applied on top of the default DC/OS configuration for a particular backend.
  • log_output_live – If True, log output of the installation live.
Return type:

None

destroy()

Destroy all nodes in the cluster.

Return type:None
masters

Return all DC/OS master node.Node s.

Return type:Set[Node]
agents

Return all DC/OS agent node.Node s.

Return type:Set[Node]
public_agents

Return all DC/OS public agent node.Node s.

Return type:Set[Node]