To see sample config files, see the sample_configs directory.
This is a WIP to more thoroughly document all the parameters. The code this is based off of is in dcos_launch/config.py. Please report any errors or unclear items.
TODO: blank template for each of the deployment types that contained all the possible params with blank values.
Here optional
means you don't have to manually provide it in the config.yaml file, and that it will be set to the default value if not provided.
The intention of this configuration file is to provide an interface by which all deployments of DC/OS, regardless of provider, have a similar format, thus complementing the goal of dcos-launch to provide a single tool for launching across a variety of provider APIs.
See sample_configs for a full list.
- Simple AWS Cloudformation
- Zen AWS Cloudformation
- Onprem Install on AWS Bare Cluster
- Azure Template Deployment
- Onprem Installation on Google Cloud Platform
- GCP Onprem with fault-domain helper
onprem
can only be provisioned viaaws
andgcp
platforms- DC/OS deployed from aws or azure provider do not technically need
ssh_user
orssh_private_key_filename
. However, without this additional data, the integration tests will not be trigger-able from dcos-launch. Thus, it is not recommended, but allowable, to omit these fields when not using the onprem provider
Sections
- Universal params
- Template-based deploy params
- Onprem deploy params
- AWS onprem params
- ACS (Azure) deploy params
- GCP (Google Cloud Platform) deploy params
- Terraform params
These options are for any config
boolean, optional
Generate private SSH keys for the underlying hosts if true
. In platform: aws
, this means the user does not have to supply KeyName
in the template parameters and dcos-launch will fill it in. Similarly, in platform: azure
, sshRSAPublicKey
is populated automatically. In the aws case, this key will be deleted from EC2 when the deployment is deleted with dcos-launch
Default: false
integer, required
This is still a tool under active development and as such a strict version specifier must be included. (Right now there is only v1.)
Allowed: 1
string, required
Which provider you will deploy a cluster to.
aws
: Uses Amazon Web Services (AWS) CloudFormation console. Supports both zen and simple templates. (Can only be used withplatform: aws
. Requires:template_url
,template_parameters
azure
: Uses Azure Resource Manager deployment templates. Supports both ACS (Azure Container Service) and DC/OS templates. (Can only be used withplatform: azure
. Requirestemplate_url
, andtemplate_parameters
onprem
: Uses the DC/OS bash installer to orchestrate a deployment on arbitrary hosts of a bare cluster. Requiresnum_masters
,num_private_agents
,num_public_agents
,installer_url
,instance_type
,os_name
, anddcos_config
Allowed: aws, azure, dcos-engine, onprem, gcp, terraform.
integer, optional
What port to use on SSH.
Default: 22
string, optional
If this is not set and you are not using key_helper
, you must provide ssh_private_key_filename
.
string, optional (required if you are doing an onprem deploy)
This is required if you don't use key_helper
or ssh_private_key
.
If key_helper: true
then this field cannot be supplied.
string, optional
Username to log into cluster with. If provider: onprem
then the host VM configuraiton is known to dcos-launch and this value will be calculated based on os_name
.
Default: core
dict, optional
Arbitrary tags to set on your deployment. This can be anything (subject to tag length restrictions according to which provider you're deploying on) as dcos-launch does not do anything with these other than pass them through.
One example on how to use this would be setting KubernetesCluster
tags when deploying via AWS CloudFormation templates (these are required if the cluster is running k8s).
Note that the expiration
tags in some of the example configurations are something meant to run with internal Mesosphere services that garbage collect clusters (e.g. expiration: 4h
creates a cluster that will be deleted after 4 hours, whereas leaving this blank will default to the cluster being deleted after 2 hours). An option to update tags after a cluster has been deployed is in the backlog.
boolean, optional
Only to be used with provider: aws
and zen templates. If true
, then the network prerequisites for launching a zen cluster will be provided if missing. The resources potentially covered are: Vpc, InternetGateway, PrivateSubnet, and PublicSubnet. As with key_helper
, these resources will be deleted if dcos-launch is used for destroying the deployment.
Default: false
These params should be present if you are deploying with a template.
dict, required
Parameters that should be injected into the template you are using. Example params for an AWS template:
template_parameters:
AdminLocation: 0.0.0.0/0
PublicSlaveInstanceCount: 1
SlaveInstanceCount: 2
DefaultInstanceType: m4.large
string, required
URL of template to use. E.g. should resolve to a page with a CloudFormation template if you are deploying on AWS.
dict, required
Config options for DC/OS itself (not options about resources for the provider).
Params that can be nested include:
ip_detect_filename
ip_detect_public_filename
fault_domain_detect_filename
license_key_filename
but it will also accept other options (TODO: Where are these defined?)
dcos_config:
cluster_name: My Awesome DC/OS
resolvers:
- 8.8.4.4
- 8.8.8.8
dns_search: mesos
master_discovery: static
string, required
The name of the cloud resource that will be provided by dcos-launch
. E.g. if you are deploying with an AWS CloudFormation template, then this will be the name of your stack.
dict, optional
Items in the dict should have dicts containing:
num_zones
int, required, default truenum_private_agents
, int, required, default 0num_public_agents
, int, required, default 0local
, boolean, required, default false
Only to be used with provider: onprem
. This option allows defining an arbitrary number of named regions by creating a spoofed fault-domain-detect script. Each region can configure the number of private agents, public agents, and sub-zones. One region must declared with local: true
to designate it as the region which will host the masters. Agents are assigned distributed evenly amongst the zones within a region per a given role (master/private/public). Do not set the num_private_agents
and num_public_agents
in the top-level config. These values will computed automatically from the numbers you provide in the fault_domain_helper.
For example consider this fault domain helper:
num_masters: 3
fault_domain_helper:
USA:
num_zones: 2
num_private_agents: 3
local: true
Germany:
num_zones: 3
num_public_agents: 2
num_private_agents: 4
Europe:
num_private_agents: 1
will produce the following region/zones:
USA-1:
masters: 2
private_agents: 1
USA-2:
masters: 1
private_agents: 2
Germany-1:
public_agents: 1
private_agents: 1
Germany-2:
public_agents: 1
private_agents: 1
Germany-3:
public_agents: 0
private_agents: 2
Europe-1:
private_agents: 1
string, optional
Default: genconf
boolean, optional
Do DC/OS system requirements need to be installed before installing DC/OS?
Default: false
integer, optional
Default: 9000
string, required
URL to the DC/OS installer for the version of DC/OS you want to use. For latest stable open source DC/OS, this would be https://downloads.dcos.io/dcos/stable/dcos_generate_config.sh
.
integer, required
Number of DC/OS masters
Allowed: 1, 3, 5, 7, 9
integer, optional
How many private agents the cluster should have.
Default: 0
integer, optional
Default: 0
integer, optional
Default: 10
string, required
Allowed: aws, gcp, gce
string, required if install_rereqs
is true
If the image you are going to be installing DC/OS on needs requirements (e.g. Docker) installed before running the installer script, provide a file to run to install those here.
Default: dcos_launch/scripts/install_prereqs.sh
string, required
Default: 0.0.0.0/0
list of dicts, optional
string, required if key_helper:false
and provider:aws
and platform:aws
Pre-existing EC2 SSH KeyPair to be supplied for launching the VPC
string, required (if not set, this will be set based on bootstrap_os_name
)
Example: centos
list of dict with keys Resource
, Action
, Effect
, optional
string, required
Default: /dev/xvda
if coreos else /dev/sda1
string, required
E.g. m4.large
string, optional (you can set the machine image directly with instance_ami
)
Default: cent-os-7-dcos-prereqs
Allowed: see OS_AMIS
in dcos_launch/aws.py
string, required (if not set, will be set based on os_name
)
string, optional
Default: 'https://github.com/Azure/dcos-engine/releases/download/v0.1.0/dcos-engine-v0.1.0-<sys.platform>-amd64.tar.gz'
string, optional
string, optional
string, required
string, optional
Default: azureuser
string, optional
Default: Standard_D2_v2
string, optional
Default: Standard_D2_v2
string, optional
Default: Standard_D2_v2
integer, optional
Default: 0
integer, optional
Default: 0
integer, required
Allowed: 1, 3, 5, 7, 9
integer, optional
Default: 0
integer, optional
Default: 0
string, optional
Default: Azure
string, optional
string, optional
dict, optional?
string, optional
Default: Replacepassword123
string, optional
Default azureuser
string, optional
string, optional
Default: WindowsServerSemiAnnual
string, optional
Default: Standard_D2_v2
string, optional
Default: Standard_D2_v2
string, optional
Default: MicrosoftWindowsServer
string, optional
Default: Datacenter-Core-1803-with-Containers-smalldisk
boolean, optional
Default: false
integer, optional
Default: 42
string, optional
Default: pd-ssd
string, optional Default: n1-standard-4
string, optional
string, optional
To see all image families: https://cloud.google.com/compute/docs/images
Default: coreos
string, optional
Default: family/<os_name>
string, optional
boolean, optional
Default: False
boolean
Are you installing Enterprise DC/OS (not open source DC/OS)?
Default: false
string, optional
Default: terraform-init-<uuid4>
boolean, optional
string, required
Allowed: aws, gcp, gce, azure
dict, optional
Default: empty dict
string, optional
Default: master
string, optional
Default: master
string, optional
Defaults: htts://releases.hashicorp.com/terraform/<terraform_version>/terraform_<terraform_version>_<system platform>_amd64.zip
string, optional
Default: latest Terraform