Changing Default Instance Types within Nucleator Cages and Stacksets
Some Nucleator Stacksets (such as nucleator-core-beanstalk and nucleator-core-redshift) support command line options that allow you directly select appropriate EC2 instance types when provisioning the Stackset. These Stacksets generally default to the smallest possible instance type to minimize cost when getting started with Nucleator. Unless otherwise stated, Stacksets that support passing instance type on the command line will accept any instance type that is supported for the given AWS service - see the AWS documentation for the particular service to see the set of instance types that are supported for that service.
Other more complex Stacksets that provision many resources, such as the nucleator-core-cage and nucleator-core-builder stacksets may require modification of the Stackset itself to set the desired instance type for various Stackset resources appropriately.
In such cases you will want to fork the Stackset that you want to modify into your GitHub or other source control repository. After forking you may need to edit files within the Stackset to ensure that appropriate instance types are used for Stackset resources.
The modifications required may differ between Stacksets. To change the instance types of the bastion and nat hosts provisioned by nucleator-core-cage, for example, you will need to edit the CloudFormation templates located in ansible/roles/instantiate_stackset_templates/templates/cage/.
To modify the instance types provisioned by the nucleator-core-builder stackset, edit the YAML file located at ansible/roles/builder_provision/vars/main.yml, which configures the instance types to be used for each of the stackset's resources.
After modifying your forked version of a Stackset, you will need to update the .nucleator/sources.yml file to point to your modified Stackset. After updating sources.yml, you will need to run "nucleator update" to pull your modified version into your Nucleator installation.