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: Return type: None
-
destroy
()¶ Destroy all nodes in the cluster.
Return type: None