Library¶
Overview¶
The Library section is used to add Virtual Images as custom Instance Types to the provisioning catalog. The Library section is composed of:
Instance Types
Layouts
Node Types
Option Types
Option Lists
File Templates
Scripts
Spec Templates
Cluster Layouts
When provisioning, the User selects an INSTANCE TYPE from the provisioning wizard. At this stage, we can present custom OPTION TYPES to the User which alter deployment in ways the administrator predetermines. Based on the selected Cloud technology and Version, the User is presented with applicable LAYOUTS selections. LAYOUTS can take advantage of Workflows which automate Tasks and can utilize a wide range of DevOps automation technologies. One or more NODE TYPES is associated with the LAYOUT. NODE TYPES are the bridge between LAYOUTS and Images. NODE TYPES can also take advantage of File Templates for custom configuration and Scripts which can be queued to run at any stage of the Instance lifecycle.

Instance Types¶
Adding an Instance Type creates a new Library item category. Multiple Layouts can be added to an Instance Type and these Layouts can have different Nodes attached. The Instance provisioning wizard will present the Layout options compatible with the selected Cloud. If Cloud selection is turned off, all Layouts will be presented for all Cloud types accessible by the User.

- Name
Name of the Instance Type in the provisioning Library
- Code
A useful shortcode for provisioning naming schemes and export reference
- Description
The description of the Instance Type shown in the Provisioning Library. (255 characters max)
- Category
For filtering in Instance sections and provisioning wizard
Web
SQL
NoSQL
Apps
Network
Messaging
Cache
OS
Cloud
Utility
- Icon
An identifiable icon to display in-line with your Instance Type in the provisioning wizard (Suggested dimensions: 150 x 51)
- Visibility
Private: Only accessible by assigned Accounts/Tenants
Public: Accessible by all Accounts/Tenants
- Option Types
Custom options presented to the user at provision time, Option Types are also created and stored in Morpheus Library
- Environment Prefix
Used for exportable environment variables when tying Instance Types together in App contexts. If not specified, a name will be generated
- Environment Variables
Name and value pairs for environment variables to be loaded on initialization
- Enable Settings
Allows for attachment of modifiable file templates to Node Types in a settings tab of the Instance after deployment
- Enable Scaling (Horizontal)
Enables load balancer assignment and auto-scaling features
- Support Deployments
Enables deployment features (Requires a data volume be configured on each version. Files will be copied into this location)
Upon saving, this Instance Type will be available in the provisioning catalog, per User Role access. However, we still need to add Layouts to the Instance Type, and prior to creating a Layout, we will add a Node Type.
Layouts¶
Layouts are attached to Instance Types. A Layout can only be attached to a single Instance Type and a single Technology. An Instance Type can have one or many Layouts attached to it, allowing for a single Instance Type to work with any Technology type. Node Types are added to Layouts. A Layout can have one or many node types attached to it. Node types can be shared across Layouts of matching Technology types.
Important
Once an Instance Type is defined on a Layout and saved, the Instance Type setting and Technology selections on the Layout cannot be changed.
Layout List View¶
The default page for Layouts is the Layout list view. Select + ADD to create a new Layout. Layouts can also be created from an Instance Type detail page.
The following fields are displayed for each Layout:
NAME: Links to the Layout detail page
VERSION
INSTANCE TYPE: Links to the associated Instance Type
DESCRIPTION
The Actions menu in each row reveals the following options:
Permissions: Scope the Layout to Group(s) to narrow the list of available groups for a chosen Instance Type at provision time
Edit: Edit the Layout
Delete: Delete the Layout
Note
A Layout that is in use cannot be deleted.
Available Filters:
Technology: Display Layouts by selected Cloud technology
Instance Type: Display Layouts by the associated Instance Type
Layout Detail View¶
The Layout Detail view shows details on the Layout including Name, Short Name, Version, and Category. It also lists all associated Node Types.
Select a Layout Name from the list page or Instance Type detail page to get to a Layout detail page.
Layout Configuration Options¶
- Instance Type
Select the Instance Type to add to the new Layout. Custom Instance Types must already be created and one Layout cannot be added to multiple instance types. The Instance Type also cannot be changed after creation.
Note
Layouts cannot be added to Morpheus pre-defined Instance Types
- Name
The name the Layout presents as in the Configuration Options dropdown of the provisioning wizard
- Version
The version number or name for the Layout. Layouts in an Instance Type with the same version will all show under the Configuration Options dropdown when that version is selected while provisioning
- Description
Description of the Layout, viewable on the Layout list view
- Creatable
When checked, this Layout will be selectable at provision time for the associated Instance Type (assuming the Layout is otherwise compatible with provisioning conditions). Instance Types with no Creatable Layouts will not be selectable from the provisioning wizard
- Technology
Technology determines which Cloud this layout will be available for and which Node Types can be added to it
- Minimum Memory
Defines the minimum amount of memory required for this Layout. Only Service Plans that meet the defined memory minimum will be available during provisioning when this Layout is selected. Custom memory values must also meet this minimum. Entering a minimum memory value of zero (the default value) indicates no minimum. This minimum memory value will override any Virtual Image minimum memory requirements
- Workflow
Select a Workflow to automatically run and be attached to associated Instances using this Layout. If a Workflow is defined, it is not presented in the provisioning wizard and is not user configurable
- Supports Convert to Managed
Enabled to allow users to select this layout when converting a Discovered workload to Managed
- Enable Scaling (Horizontal)
Enables Instances with this layout to use scaling features
- Environment Variables
Custom environment variables to be added to the Instance when provisioned
- Option Types
Search for and select one or multiple Option Types to add to the Layout. Option Type input fields (except for Hidden Option Types) will appear in Provisioning, App, Blueprint, and Cloning wizards when this layout is selected
- Nodes
Single or multiple nodes can be added to a Layout by searching for and selecting the Node(s)
Node Types¶
Node Types are the link between Images and Layouts.
Node Type Configuration Options¶
The following fields are for all Technology types:
- Name
Name of the Node Type in Morpheus
- Short Name
The short name is a lowercase name with no spaces used for display in your container list
- Version
Version for the Node Type. Examples: 7.5, 2012 R2, latest
- Technology
Select associated Technology. This will filter the available configuration options, images and which Layouts the Node Type can be added to
- Environment Variables
Add pre-set environment variables to the Node Type
- Category
Node Types of differing categories within the same Layout can have differing sizing
Technology-Specific Options¶
The Options fields will change depending on the Technology option selected. For VM provisioning technology options, select an image from the VM Image dropdown. This list is populated from the Morpheus Virtual Images section and will include images uploaded into Morpheus as well as synced images from added clouds.
Note
Amazon and Azure Marketplace Images can be added in the Virtual Images section for use as Node Types in custom library items.
Docker Options¶
For Docker, type in the name and version of the Docker Image, then select the integrated registry.
- Service Ports
To open ports on the node, enter the name and port to expose. The Load Balancer HTTP, HTTPS, or TCP setting is required when attaching to Load Balancers.
Defining an Exposed port will also create a hyperlink(s) on the container location (IP) in the VM or Container section of the associated Instance detail page.
- Scripts
Search for and select one or multiple scripts to be executed when the Node Type is provisioned
- File Templates
Search for and select one or multiple File Templates to be written when the Node Type is provisioned
Example port configuration:

VMware Options¶
When VMware Technology Type is selected, EXTRA OPTIONS will be available in the VMware VM Options section. These allow defining Advance vmx-file parameters during provisioning.
Some Example include:
tools.setinfo.sizeLimit : 1048576
vmci0.unrestricted : FALSE
isolation.tools.diskWiper.disable : TRUE
Note
Not all parameters can be set using extra config parameters. A sample reference list can be found at http://www.sanbarrow.com/vmx/vmx-advanced.html#vmx
Important
Use caution when setting Extra Options. Malformed config files can break provisioning. Troubleshooting issues related to Extra Options defined are beyond the scope of Morpheus product support.
Option Types¶
Option Types are custom input fields that can be added to Instance Types and Layouts, then presented in Instance, App, and Cloning wizards. The resulting value is available in the Instance config map as <%=customOptions.fieldName%>. The fieldName and value can also be exported as Tags.

Create Option Type¶
Note
All possible fields listed. Displayed fields depend on TYPE
selection
- NAME
Name of the Option Type
- DESCRIPTION
Description for reference in Option Type list view
- FIELD NAME
This is the input fieldName property that the value gets assigned to
- EXPORT AS TAG
Creates Tags for fieldName/value (key/value) on Instances
- DEPENDENT FIELD
The Field Name value for a field that will reload this Option List to present a different set of selections. Take a look at the section below on Cascading Option Types as well as the associated article in our KnowledgeBase for documented examples of this feature
- VISIBILITY FIELD
A Field Name and selection value that will trigger this field to become visible. Currently, this only works when the Option Type is associated with a Service Catalog Item and viewed from the Service Catalog Persona perspective. See the section below on the Visibility Field for instructions on configuring this value
- DISPLAY VALUE ON DETAILS
When selected, the Option Type label and value (label: value) will be visible in a list of custom options on the Instance detail page
- TYPE
Text: Text Input Field
Select List: Populated by Option Lists, presents a manual or REST-populated dropdown list
Checkbox: Checkbox for
on
oroff
valuesNumber: Input field allowing only numbers
Typeahead: Populated by Option Lists: Rather than presenting a potentially-large dropdown menu, the user can begin typing a selection into a text field and choose the desired option. Multiple selections can be allowed with this type by marking the ‘ALLOW MULTIPLE SELECTIONS’ box
Hidden: No field will be displayed, but the field name and default value will be added to the Instance config map for reference
Password: An input field with suitable encryption for accepting passwords
Radio List: Populated by Option Lists, presents a selection of radio buttons for the provisioning user
- LABEL
This is the input label that typically shows to the left of a custom option
- PLACEHOLDER
Background text that populates inside a field for adding example values, does not set a value
- DEFAULT VALUE
Pre-populates field with a default value
- HELP BLOCK
Helpful text that will appear under your Option Type field to inform users about their selection
- REQUIRED
Prevents User from proceeding without setting value
- DEFAULT CHECKED
For
Checkbox
types, when marked the Checkbox will be checked by default- OPTION LIST
For
Select List
types, select a pre-existing Option List to set dropdown valuesNote
Select List
andTypeahead
Option Types require creation and association of an Option List
Cascading Option Types¶
One powerful facet of Morpheus Option Types is the ability to present users with different lists of input options based on their selections in other Option Types within the same wizard or modal. One common example, which is fully illustrated in this section, is to have a user select:
The Group they wish to provision into…
Then select the target Cloud from a list limited to Clouds which are in the selected Group…
Then select the target network from a list limited to networks which are available to the selected Cloud and Group
To set this up, we’ll first configure our Option Types (custom option fields that can be applied to Instance Types and other Morpheus constructs) and Option Lists (dynamic lists of possible choices which can be associated with Option Types and presented in a dropdown or typeahead format). Once the custom options are configured, we’ll associate them with a new service catalog item and take a look at how the user would interact with them.
Group Custom Option¶
To begin, we’ll create a new Option List. In this case, we’ll select type of “Morpheus Api” which will populate the list based on a call to the internal Morpheus API. Option Lists can also be populated by calls to external REST APIs or even from static lists that you enter manually. When dynamically populating Option Lists, whether via Morpheus API or an external API, translation and/or request scripts may be needed to prepare the request or translate the results. More on that as we build out the example.
I’ve called my Option List “Groups” and selected “Groups” from the OPTION LIST menu. This simply indicates that Groups are the construct we want to call into our list from Morpheus API. In this case, we want to present a list of all Groups to the user by their name and pass the Group database ID in the background. Since it’s common to create Option Lists from Morpheus API where the construct name is displayed to the user and the ID is passed, we actually don’t need to input any translation scripts in this case. However, I’ll include a translation script here which does the same thing simply to provide more clarity to the example. Morpheus Option List documentation includes additional details on available translation script inputs and which are available without translation as a convenience feature.
for (var x = 0; x < data.length; x++) {
results.push({name: data[x].name, value:data[x].id});
}
After saving the Option List, create the Option Type that presents the list we just created. I gave my Option Type the name of “Selected Group”, field name of “selectedGroup”, and label of “Group”. For type, choose “Select List” and a new field will appear at the bottom of the modal where we can select the Option List we just created. With this configuration, the Option Type will present as a dropdown list containing the options called from our Option List.
Cloud Custom Option¶
Adding the Option List and Option Type for Clouds will be similar to the prior step with the exception that we will be including a request script which effectively filters the list of available Clouds to only those associated with the selected group. Follow the same process to start a new Option List, I’ve configured mine as follows:
NAME: Parsed Clouds
TYPE: Morpheus Api
OPTION LIST: Clouds
We also need a request script that loads the siteId
attribute of the results
variable with the Group ID if the user has made a group selection. Essentially it appends this input as a query parameter to the API call, calling (for example) .../api/clouds?siteId=1
rather than .../api/clouds
. It should be similar to the script below. Note that we are referencing the selectedGroup
field name we created previously and that a “site” is the term for Groups in the Morpheus database.
if (input.selectedGroup) {
results.siteId = input.selectedGroup
}
We also need a translation script which will be identical to the one used previously with the exception that if there is no input on the selectedGroups
field, nothing will be displayed for the Clouds option.
if (input.selectedGroup) {
for (var x = 0; x < data.length; x++) {
results.push({name:data[x].name, value:data[x].id});
}
}
We also need to create an Option Type to house this Option List. This process will be very similar to creating the previous Option Type except that we need to set selectedGroup as the Dependent Field. Setting a dependent field on an Option Type will trigger it to reload each time a selection is made in the indicated option. My configuration is as follows:
NAME: Parsed Cloud
FIELD NAME: parsedCloud
DEPENDENT FIELD: selectedGroup
TYPE: Select List
LABEL: Cloud
OPTION LIST: Parsed Clouds
Save your changes once done.
Network Custom Option¶
Finally, we’ll create and Option List/Option Type pair for network selection. In this case, it will be dependent on both the Group and Cloud selection. My Option List configuration is below:
NAME: Parsed Networks
TYPE: Morpheus Api
OPTION LIST: Networks
Request Script:
if (input.parsedCloud && input.selectedGroup) {
results.cloudId = input.parsedCloud
results.groupId = input.selectedGroup
}
Translation Script:
if (input.parsedCloud && input.selectedGroup) {
for (var x = 0; x < data.length; x++) {
results.push({name:data[x].name, value:data[x].id});
}
}
The Option Type is configured as follows:
NAME: Parsed Networks
FIELD NAME: parsedNetwork
DEPENDENT FIELD: parsedCloud
TYPE: Select List
LABEL: Network
OPTION LIST: Parsed Networks
Setting Custom Options at Provision Time¶
At this point, our dependent options are ready to be applied to custom Instance Types, Workflows or Service Catalog items as needed. When creating them, we can select an unlimited number of Option Types from a typeahead field on the create modal and they will be presented when a user goes to provision that element or run that Workflow. As an example, I’ve created a Service Catalog item that incorporates the three Option Types we’ve created. You can see how the dependent fields reload and present different options based on my selections.

Visibility Field¶
The Visibility field for Option Types allows users to set conditions under which the Option Type being created or edited is displayed. A very simple visibility configuration would look like the following: config.customOptions.color:(red)
where “color” represents the fieldName
for any other Option Type which will determine the visibility of the current one and “red” represents any JavaScript regular expression that matches to the values that meet your desired conditions.
Expanding on the simplified example above, we could trigger visibility based on any one of multiple selections from the same Option Type by using a different regular expression, such as config.customOptions.color:(red|blue|yellow)
. Additionally, we aren’t restricted to the conditions of just one Option Type to determine visibility as the following would also be valid: config.customOptions.color:(red|blue|yellow),config.customOptions.shape:(square)
. In the previous example, the Option Type “Color” would have to be set to red, blue, or yellow OR the Option Type “Shape” would have to be set to square in order to trigger visibility of the Option Type currently being configured. Prepend the previous example with matchAll::
in order to require both conditions to be met rather than one or the other (ex. matchAll::config.customOptions.color:(red|blue|yellow),config.customOptions.shape:(square)
).
Putting it all together, you’ll first configure visibility for your selected Option Types as described above. You can see in the screenshot below I’ve set the Option Type being edited to have a visibility dependent on another Option Type which you can see in the background.

Next, ensure the relevant Option Types are associated with the Service Catalog Item (Tools > Self Service).

Finally, when Service Catalog Persona users interact with my Catalog Item, they will be able to toggle additional Option Types to be visible based on their selections.

Option Lists¶
Option Lists allow you to give the user more choices during provisioning to then be passed to scripts and/or automation. Option Lists, however, are pre-defined insofar as they are not free-form. They can be manually entered CSV or JSON, they can be dynamically compiled from REST calls via GET or POST requests, or populated by LDAP queries.

Generic Option List Fields¶
The displayed fields in the create/edit Option List modal depend on the TYPE value selected.
- NAME
Name of the Option List
- DESCRIPTION
Description of the Option List for reference in Option List list view
- TYPE
REST: REST API call to populate Option List
Manual: Manually entered dataset, CSV or JSON
Morpheus API: Call to internal Morpheus API to populate the Option List
LDAP: Searches and returns a list of Active Directory objects
- VISIBILITY
If the account currently signed in is not in the master tenant, visibility will automatically change to private
Manual Option List Fields¶
- DATASET
Appears only for manual Option Lists. Add your CSV or JSON list to this field
Note
JSON entries must be formatted like the following example:
[{"name":"Test","value":1},{"name":"Testing","value":2}]
REST Option List Fields¶
- SOURCE URL
A REST URL used to fetch list data which is cached in the appliance database
- REAL TIME
When checked, a REST call will be made to update the Option List at the time its presented to the User
- IGNORE SSL ERRORS
Do not fail API query for self-signed or invalid certs on REST call target
- SOURCE METHOD
GET or POST
- SOURCE HEADERS
Custom HTTP Headers to include in the source request
- INITIAL DATASET
Create an initial JSON or CSV dataset to be used as the collection for this option list. It should be a list containing objects with properties ‘name’ and ‘value’
- TRANSLATION SCRIPT
Create a JS script to translate the result data object into an array containing objects with properties ‘name’ and ‘value’. The input data is provided as ‘data’ and the result should be put on the global variable ‘results’.
Example:
for(var x=0;x < data.length; x++) { results.push({name: data[x].name,value:data[x].id}); }- REQUEST SCRIPT
Create a JS script to prepare the request. Return a data object as the body for a POST request, and return an array containing properties ‘name’ and ‘value’ for a GET request. The input data is provided as ‘data’ and the result should be put on the global variable ‘results’
Example:
results.push({name: 'userId', value : data.users})
Morpheus API Option List Fields¶
- OPTION LIST
A list of available object types to return
- TRANSLATION SCRIPT
Create a JS script to translate the result data object into an array containing objects with properties ‘name’ and ‘value’. The input data is provided as ‘data’ and the result should be put on the global variable ‘results’.
Example:
var i=0; results = []; for(i; i<data.length; i++) { results.push({name: data[i].name, value: data[i].value}); }Translation script inputs:
Clouds
id: <Number>
value: <Number>
// id, convenience
name: <String>
displayName: <String>
category: <String>
description: <String>
apiKey: <String>
status: <String>
hourlyPrice: <Number>
hourlyCost: <Number>
instanceType: <Object>
id: <Number>
name: <String>
plan:<Object>
id: <Number>
name: <String>
site:<Object>
id: <Number>
name: <String>
Environments
id: <Number>
value: <Number>
// id, convenience attribute to avoid requiring translation
code: <String>
name: <String>
Groups
id: <Number>
value: <Number>
// id, convenience attribute to avoid requiring translation
name: <String>
code: <String>
uuid: <String>
location: <String>
datacenterId: <Number>
Instances
id: <Number>
value: <Number>
// id, convenience
name: <String>
displayName: <String>
category: <String>
description: <String>
apiKey: <String>
status: <String>
hourlyPrice: <Number>
hourlyCost: <Number>
instanceType: <Object>
id: <Number>
name: <String>
plan: <Object>
id: <Number>
name: <String>
site: <Object>
id: <Number>
name: <String>
Instances Wiki
id: <Number>
value: <Number>
// id, convenience
name: <String>
urlName: <String>
category: <String>
instanceId: <String>
content: <String>
contentFormatted: <String>
format: <String>
createdByUsername: <String>
updatedByUsername: <String>
Networks
id: <Number>
value: <Number>
// id, convenience
code: <String>
category: <String>
name: <String>
status: <String>
cloudId: <Number>
groupId: <Number>
networkType:<Object>
id: <Number>
code: <String>
name: <String>
externalId: <String>
externalNetworkType: <String>
networkDomain: <Object>
id: <Number>
name: <String>
networkPool: <Object>
id: <Number>
name: <String>
createdBy: <String>
Plans
id: <Number>
value: <Number>
// id, convenience
code: <String>
name: <String>
storage: <Integer, bytes>
memory: <Integer, bytes>
cores: <Number>
Resource Pools
id: <Number>
value: <Number>
// id, convenience
code: <String>
externalId: <String>
name: <String>
serverGroupId: <Number>
status: <String>
regionCode: <String>
parentPoolId: <Number>
type: <String>
Security Groups
id: <Number>
value: <Number>
// id, convenience
code: <String>
name: <String>
externalType: <String>
externalId: <String>
cloudId: <Number>
scopeMode: <String>
scopeId: <Number>
Servers
id: <Number>
value: <Number>
// id, convenience
name: <String>
displayName: <String>
description: <String>
category: <String>
osType: <String>
powerState: <String>
lastStats: <String>
zone: <Object>
id: <Number>
name: <String>
capacityInfo: <Object>
maxStorage: <Integer, bytes>
maxMemory: <Integer, bytes>
maxCores: <Number>
usedMemory: <Integer, bytes>
usedStorage: <Integer, bytes>
computeServerType: <Object>
id: <Number>
name: <String>
nodeType: <String>
vmHypervisor: <String>
containerHypervisor: <String>
Servers Wiki
id: <Number>
value: <Number>
// id, convenience
name: <String>
urlName: <String>
category: <String>
serverId: <String>
content: <String>
contentFormatted: <String>
format: <String>
createdByUsername: <String>
updatedByUsername: <String>
- REQUEST SCRIPT
The request script is used differently for Morpheus API Option List types. A Morpheus API option list type will use an internal API to return a list of objects instead of performing HTTP(S) requests to the Morpheus API. Due to this approach, the results object will not be used to generate query parameters or a JSON body. The results object will instead be used to contain a map of accepted key:value pairs that can be used to filter, sort and order the list of objects that get returned.
- Below is a list of accepted
key:value
pairs for each object type:Generic options available for all object types
max: <integer>
// Maximum number of results to return. Default: 25
offset: <integer>
// Offset for returned results. Default: 0
sort: <string>
// Field to sort on. Default: ‘name’
order: <string>
// Order of returned values. Accepted values: ‘asc’, ‘desc’. Default: ‘asc’Example:
results = {max: 5, order : 'desc'}
Networks
zoneId
siteId
planId
provisionTypeId: <Number>
// Id of the provision type (technology), filters to only networks associated with this provision type
layoutId: <Number>
// Id of an Instance Layout, ignored if provisionTypeId is supplied, otherwise used to look up the provision type
poolId: <Number>
// Id of a network pool, filters to only networks within the specified network poolPlans
zoneId
siteId
layoutId
provisionTypeId: <Number>
// Id of the provision type (technology), filters to only plans associated with this provision typeResource Pools
zoneId
siteId
planId
layoutId: <Number>
// Id of an Instance Layout, used to get the associated provision type and filter to that provision typeSecurity Groups
zoneId
// required
poolId
Clouds
zoneId : <integer>
// Database ID of cloud to return
tenantId : <integer>
// Database ID of tenant where clouds are added. Filters to only clouds added within the specified tenant. Only available in Master Tenant
zoneTypeId : <integer>
// Database ID of cloud type. Filters to only clouds with the specified cloud type
siteId : <integer>
// Database ID of group. Filters to only clouds within the specified group
tagName : <string>
// Filters to clouds with servers with tags containing the tagName
tagValue : <mixed>
// Requires tagName. Filters to clouds with servers that have tags containing the tagName and specified tagValue
phrase : <string>
// Fuzzy matches phrase on cloud name and descriptionExample:
results = {tenantId: 1, siteId: 1, tagName: "morpheus"}
Instances
appsId : <integer>
// Database ID of app to filter by. Returns instances linked to the app
tenantId : <integer>
// Database ID of tenant where instances are located. Filters to only instances within the specified tenant. Only available in Master Tenant
serverId : <integer>
// Database ID of server. Filters to the instance that contains the specified server
tagName : <string>
// Filters to instances with tags containing the tagName
tagValue : <mixed>
// Requires tagName. Filters to instances with tags containing the tagName and specified tagValue
phrase : <string>
// Fuzzy matches phrase on instance name and descriptionExample:
results = {tenantId:1, phrase: "ha"}
Groups
tenantId : <integer>
// Database ID of tenant where groups are located. Filters to only groups added within the specified tenant. Only available in Master Tenant
zoneTypeId : <integer>
Database ID of cloud type. Filters to only groups that contain clouds with the specified cloud type
zoneId : <integer>
// Database ID of cloud. Filters to only groups that contain the cloud with the specified ID
siteId : <integer>
// Database ID of group to return
phrase : <string>
// Fuzzy matches phrase on group name and location.Servers
tenantId : <integer>
// Database ID of tenant where servers are located. Filters to only servers within the specified tenant. Only available in Master Tenant
serverId : <integer>
// Database ID of server. Filters to the server specified by the ID
siteZoneId : <integer>
// Database ID of cloud. Filters to servers contained within the specified cloud
serverType : <string>
// Type of server. Accepted values: ‘host’, ‘baremetal’, ‘vm’
siteId : <integer>
// Database ID of group. Filters to only servers contained within clouds that are added in the specified group
tagName : <string>
// Filters to servers with tags containing the tagName
tagValue : <mixed>
// Requires tagName. Filters to servers with tags containing the tagName and specified tagValue
phrase : <string>
// Fuzzy matches phrase on server name and description.Example:
results = {max: 50, siteZoneId : 3}
instance-wiki: Contains same options for Instances Morpheus API type.
phrase : <string>
// Fuzzy matches phrase on wiki name, urlName and contentserver-wiki: Contains same options for Servers Morpheus API type.
phrase : <string>
// Fuzzy matches phrase on wiki name, urlName and content
LDAP Option List Fields¶
- LDAP URL
The URL pointing to the LDAP server
- USERNAME
The fully qualified username (with @ suffix syntax) for the binding account
- PASSWORD
The password for the above account
- LDAP Query
The LDAP query to pull the appropriate objects. See the next section for an example use case
- TRANSLATION SCRIPT
Create a JS script to translate the result data object into an array containing objects with properties ‘name’ and ‘value’. The input data is provided as ‘data’ and the result should be put on the global variable ‘results’.
Note
Option Lists are set on one or multiple Select List
or Typeahead
Option Types. The Option Type is then set on an Instance Type, Layout, Cluster Layout, and/or Operational Workflow for input during provisioning or execution.
Creating an Option List Based on an LDAP Query¶
In Morpheus version 4.2.1 and higher, Option Lists can be populated from LDAP queries. This gives users the ability to search Active Directory, capture objects, and present them as custom options where needed.
It’s recommended that you connect LDAP-type Option Lists to Typeahead-type Option Types as the list of returned selections can be very large. This also allows you to select multiple options from the list, presuming you’ve allowed for that when creating the Option Type.
Populating LDAP-type Option Lists requires knowledge of LDAP query syntax. This guide provides one example and there are many publicly-available resources for help writing additional queries.
Create a new Option List (Provisioning > Library > Option Lists > ADD)
Enter a name for the new LDAP Option List
Change the Type value to LDAP and the relevant fields will appear as shown in the screenshot:
Enter the LDAP URL in the following format (an example is also shown as a placeholder in the UI form field):
ldap[s]://<hostname>:<port>/<base_dn>
Enter the fully qualified username with @ suffix syntax, such as: user@ad.mycompany.com
Enter the account password
Enter your LDAP query. You can even inject variables into your query structure to query based on the value the user has entered into the typeahead field as shown in the example below:
(&(objectClass=user)(cn=<%=phrase%>*))
Finally, enter a translation script which will convert the returned LDAP object into a list of name:value pairs you can work with in Morpheus. The example script below shows the user DisplayName and sets the value to the SAMAccountName:
for(var x=0;x < data.length ; x++) {
var row = data[x];
var a = {};
if(row.displayName != null) {
a['name'] = row.displayName;
} else {
a['name'] = row.sAMAccountName;
}
a['value'] = row.sAMAccountName;
results.push(a);
}
Click SAVE CHANGES

File Templates¶
File Templates are for generating config files, such as my.cnf, elasticsearch.yml, morpheus.rb, or any text file. With full config map variable support, Template Files are dynamically generated during a Workflow phase or ad hoc via Instance actions.
File Templates can also be exposed on Instances in the Settings Tab. Ensure the Instance Type supports settings, and Category is defined in Advance Options on the Library Template config.
Note
Morpheus variables are supported in Library Templates using <%= variable.var %>
format
Examples:
HA Proxy Config (haproxy.cfg)
FILE NAME: haproxy.cfg
FILE PATH: /config/haproxy.cfg
PHASE: Pre Provision
TEMPLATE:
SETTING NAME: haproxyConfig
SETTING CATEGORY: haproxy
#!/bin/bash
global
maxconn 256
log /dev/log local0 warning
log-tag <%=logTag%>
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
log global
frontend http-in
bind *:<%=container.externalPort%>
default_backend servers
backend servers
# server server1 127.0.0.1:80 maxconn 32
mysql config (mysqld.cnf)
FILE NAME: mysqld.cnf
FILE PATH: /config/mysqld.cnf
PHASE: Pre Provision
#!/bin/bash
[mysqld]
pid-file= /var/run/mysqld/mysqld.pid
socket= /var/run/mysqld/mysqld.sock
datadir= /var/lib/mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
explicit_defaults_for_timestamp = 1
Scripts¶
Scripts are bash and Powershell scripts that can be attached to Node Types to always execute at the selected phase when that Node Type is provisioned, added to Workflows as Library Script Tasks, and/or executed ad-hoc on Instances.
Creating Scripts¶
Navigate to
Provisioning > Library > Scripts
Select + ADD
Enter the Following:
- NAME
Name of the Script in Morpheus
- SCRIPT TYPE
Bash
Powershell
- PHASE
Select which phase the Script will execute when attached to a Node Type. When a script is attached to a Node Type, it will execute according to the selcted phase:
- Start Service
Any time the Instance action
Start Service
is executed- Stop Service
Any time the Instance action
Stop Service
is executed- Pre-Provision
Containers: Script will execute against the container host before the container is provisioned
Virtual Machines: Script will execute before any provision phase Scripts or Tasks
- Provision
Script will execute once per new Instance node during the provision Phase. Provisioning will not be considered complete until all scripts and tasks in the provisioning phase are completed
Note
Any Script or Task set to the provision phase will be included in the total provision time and impact success/warn/failure provisioning status messages. As an example, your VM could be up and running but if your Script is in the provision phase and fails, provisioning will be marked as a failure.
- Post-Provision
Script will execute once per new Instance node after the provision phase is completed. Scripts and Tasks in the Post-Provision phase will show execution status and history, but are not considered part of the provision and do not impact provisioning status.
- Pre-Deploy
Script will execute on target Instance any time a deployment is run against the Instance. The Script will run prior to the deployment file(s) being written
- Deploy
Script will execute on target Instance any time a deployment is run against the Instance. The script will run after the deployment file(s) are written
- Reconfigure
Script will execute on target Instance any time a reconfigure is executed against the Instance.
- Teardown
Script will execute on target Instance upon Instance deletion. Script will execute against target Instance prior to the deletion/removal of resources.
- SCRIPT
Enter Bash or Powershell script.
Note
Morpheus variables are supported in Library Scripts using
<%= variable.var %>
format- RUN AS USER
By default Scripts are execute as
morpheus-node
. To execute as another User, populateRUN AS USER
and ensure proper user permissions & group access- SUDO
Flag
SUDO
if sudo is required to execute the Script
To attach Scripts and templates that have been added to the Library to a Node Type, start typing the name and then select the script(s) and/or template(s).
Multiple scripts and templates can be added to a Node Type
Scripts and Templates can be added/shared among multiple Node Types
The execution phase can be set for Scripts in the Scripts section
Search will populate Scripts or Templates containing the characters entered anywhere in their name, not just the first letter(s) of the name
Spec Templates¶
Spec Templates allow Morpheus users to leverage several major Infrastructure-as-Code solutions. These are typically JSON or YAML-based configuration files which make creating and managing multiple resource types easier. Morpheus allows users to create and/or manage a collection of these templates for different solutions and from different sources.
Morpheus currently supports Spec Templates of the following types:
Kubernetes Spec
Helm Chart
Terraform
ARM Template
CloudFormation Template
OneView Server Profile Template
UCS Service Profile Template
Morpheus also allows users to leverage templates pulled from URL sources, online repositories (such as GitHub), or you can write a template locally inside the “NEW SPEC TEMPLATE” modal.
Tip
To see Morpheus Spec Templates in action, take a look at our guide on creating custom Instance Types using Terraform or see our KnowledgeBase for another example where a CloudFormation Spec Template is used to create a provisionable custom Instance Type.
Creating a Spec Template¶
Navigate to Provisioning > Library > SPEC TEMPLATES
Click + ADD
Complete the following fields, then click SAVE CHANGES:
NAME
TYPE: See the previous section for a complete list of Spec Template types
SOURCE: Local, Repository, or URL
CONTENT: If this is a local Spec Template, supply the template in this field. If the template is supplied through a URL or online repository, the CONTENT field will change to allow the user to point Morpheus to that resource
VERSION: (Only displayed on Terraform Spec Templates) Enter a Terraform version number to force a specific version when provisioning your Terraform Instance Type or App, assuming your Terraform Runtime setting (Administration > Settings > Provisioning Tab) is “auto”. If Terraform Runtime is set to “manual”, Morpheus will use the version of Terraform installed on the appliance box
Cluster Layouts¶
Note
Morpheus now syncs available (non-preview) AKS k8s versions daily. Existing synced versions that are no longer supported by Azure are automatically disabled. The table below includes available AKS versions at time of v5.3.2 release.
Morpheus provided Cluster Layouts:
NAME |
CODE |
DESCRIPTION |
---|---|---|
Kubernetes 1.20.7 Cluster AKS |
kubernetes-azure-aks-1.20.7 |
This provisions a single kubernetes master in Azure |
Kubernetes 1.20.5 Cluster AKS |
kubernetes-azure-aks-1.20.5 |
This provisions a single kubernetes master in Azure |
Kubernetes 1.19.11 Cluster AKS |
kubernetes-azure-aks-1.19.11 |
This provisions a single kubernetes master in Azure |
Kubernetes 1.19.9 Cluster AKS |
kubernetes-azure-aks-1.19.9 |
This provisions a single kubernetes master in Azure |
Kubernetes 1.18.19 Cluster AKS |
kubernetes-azure-aks-1.18.19 |
This provisions a single kubernetes master in Azure |
Kubernetes 1.18.17 Cluster AKS |
kubernetes-azure-aks-1.18.17 |
This provisions a single kubernetes master in Azure |
MKS Kubernetes 1.20 Cluster on Ubuntu 18.04 |
kubernetes-1.20.2-ubuntu-18.04.5-xen-amd64-single |
provision a kubernetes 1.20 cluster on ubuntu 18.04 in xen |
MKS Kubernetes 1.20 Cluster on Ubuntu 18.04 |
kubernetes-1.20.2-ubuntu-18.04.5-scvmm-amd64-single |
provision a kubernetes 1.20 cluster on ubuntu 18.04 in scvmm |
MKS Kubernetes 1.20 Cluster on Ubuntu 18.04 |
kubernetes-1.20.2-ubuntu-18.04.5-opentelekom-amd64-single |
provision a kubernetes 1.20 cluster on ubuntu 18.04 in opentelekom |
MKS Kubernetes 1.20 Cluster on Ubuntu 18.04 |
kubernetes-1.20.2-ubuntu-18.04.5-nutanix-amd64-single |
provision a kubernetes 1.20 cluster on ubuntu 18.04 |
MKS Kubernetes 1.20 Cluster on Ubuntu 18.04 |
kubernetes-1.20.2-ubuntu-18.04.5-morpheus-amd64-single |
provision a kubernetes 1.20 cluster on ubuntu 18.04 in manual |
External Kubernetes 1.20 |
kubernetes-external-1.20 |
Connect to an external kubernetes cluster. |
MKS Kubernetes 1.20 Cluster on Ubuntu 18.04 |
kubernetes-1.20.2-ubuntu-18.04.5-hyperv-amd64-single |
provision a kubernetes 1.20 cluster on ubuntu 18.04 in hyperv |
MKS Kubernetes 1.20 Cluster on Ubuntu 18.04 |
kubernetes-1.20.2-ubuntu-18.04.5-huawei-amd64-single |
provision a kubernetes 1.20 cluster on ubuntu 18.04 in Huawei |
MKS Kubernetes 1.20 Cluster on Ubuntu 18.04 |
kubernetes-1.20.2-ubuntu-18.04.5-openstack-amd64-single |
provision a kubernetes 1.20 cluster on ubuntu 18.04 in Openstack |
MKS Kubernetes 1.20 Cluster on Ubuntu 18.04 |
kubernetes-1.20.2-ubuntu-18.04.5-google-amd64-single |
provision a kubernetes 1.20 cluster on ubuntu 18.04 |
MKS Kubernetes 1.20 Cluster on Ubuntu 18.04 |
kubernetes-1.20.2-ubuntu-18.04.5-amazon-amd64-single |
provision a kubernetes 1.20 cluster on ubuntu 18.04 |
Copy of MKS Kubernetes 1.20 Cluster on Ubuntu 18.04 |
ffc21dc1-feb7-4c02-ae90-204fd080c23d |
provision a kubernetes 1.20 cluster on ubuntu 18.04 in vmware |
Docker Cluster on Ubuntu 18.04 |
docker-ubuntu-18.04.2-fusion-amd64-single |
provision a docker cluster on ubuntu 18.04 in fusion |
MKS Kubernetes 1.20 Cluster on Ubuntu 18.04 |
kubernetes-1.20.2-ubuntu-18.04.5-vmware-amd64-single |
provision a kubernetes 1.20 cluster on ubuntu 18.04 in vmware |
MKS Kubernetes 1.20 Cluster on Ubuntu 18.04 |
kubernetes-1.20.2-ubuntu-18.04.5-fusion-amd64-single |
provision a kubernetes 1.20 cluster on ubuntu 18.04 in fusion |
Kubernetes 1.17 Cluster EKS |
kubernetes-amazon-eks-1.17 |
This will provision a single kubernetes master in amazon with weave and openebs |
Kubernetes 1.17 HA Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-1.17-xen-ubuntu-16.04-cluster-weave-openebs |
This will provision a single kubernetes master in xen with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-xen-1.17-ubuntu-16.04-single |
This will provision a single kubernetes master in xen with weave and openebs |
Kubernetes 1.17 HA Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-scvmm-ubuntu-18.04-cluster-weave-openebs |
This will provision a single kubernetes master in scvmm with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-scvmm-ubuntu-18.04-single |
This will provision a single kubernetes master in scvmm with weave and openebs |
Kubernetes 1.17 HA Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-openstack-ubuntu-18.04-cluster-weave-openebs |
This will provision a single kubernetes master in openstack with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-openstack-ubuntu-18.04-single |
This will provision a single kubernetes master in openstack with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-opentelekom-ubuntu-18.04-single |
This will provision a single kubernetes master in opentelekom with weave and openebs |
Kubernetes 1.17 HA Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-nutanix-ubuntu-18.04-cluster-weave-openebs |
This will provision a single kubernetes master in nutanix with weave and openebs |
Kubernetes 1.17 HA Cluster on Linux, Weave, OpenEBS |
kubernetes-1.17-morpheus-linux-cluster-weave-openebs |
This will provision a kubernetes cluster with weave and openebs |
Kubernetes 1.17 Cluster on Linux, Weave, OpenEBS |
kubernetes-1.17-morpheus-linux-single |
This will provision a single kubernetes master with weave and openebs |
Kubernetes 1.17 HA Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-hyperv-ubuntu-18.04-cluster-weave-openebs |
This will provision a single kubernetes master in hyperv with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-hyperv-ubuntu-18.04-single |
This will provision a single kubernetes master in hyperv with weave and openebs |
Kubernetes 1.17 HA Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-huawei-ubuntu-18.04-cluster-weave-openebs |
This will provision a single kubernetes master in huawei with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-huawei-ubuntu-18.04-single |
This will provision a single kubernetes master in huawei with weave and openebs |
Kubernetes 1.17 HA Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-google-ubuntu-18.04-cluster-weave-openebs |
This will provision a single kubernetes master in google with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-google-ubuntu-18.04-single |
This will provision a single kubernetes master in google with weave and openebs |
Kubernetes 1.17 HA Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-esxi-ubuntu-18.04-cluster-weave-openebs |
This will provision a single kubernetes master in esxi with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-esxi-ubuntu-18.04-single |
This will provision a single kubernetes master in esxi with weave and openebs |
Kubernetes 1.17 HA Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-digitalOcean-ubuntu-18.04-cluster-weave-openebs |
This will provision a single kubernetes master in digitalOcean with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-digitalOcean-ubuntu-18.04-single |
This will provision a single kubernetes master in digitalOcean with weave and openebs |
Kubernetes 1.17 HA Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-azure-ubuntu-18.04-cluster-weave-openebs |
This will provision a single kubernetes master in azure with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-azure-ubuntu-18.04-single |
This will provision a single kubernetes master in azure with weave and openebs |
Kubernetes 1.17 HA Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-amazon-ubuntu-18.04-cluster-weave-openebs |
This will provision a single kubernetes master in amazon with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-amazon-ubuntu-18.04-single |
This will provision a single kubernetes master in amazon with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-alibaba-ubuntu-18.04-single |
This will provision a single kubernetes master in alibaba with weave and openebs |
Kubernetes 1.17 HA Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-vmware-ubuntu-18.04-cluster-weave-openebs |
This will provision a single kubernetes master in vmware with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-vmware-ubuntu-18.04-single |
This will provision a single kubernetes master in vmware with weave and openebs |
Copy of Kubernetes 1.14 Cluster on Ubuntu 16.04, Weave, OpenEBS |
6441b891-a61d-4f0b-a7ff-19c81d2ffd51 |
This will provision a single kubernetes master in vmware with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-1.17-fusion-ubuntu-18.04-single |
This will provision a single kubernetes master in fusion with weave and openebs |
Kubernetes 1.16 Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-1.16-fusion-ubuntu-18.04-single |
This will provision a single kubernetes master in fusion with weave and openebs |
Kubernetes 1.15 Cluster on Ubuntu 18.04, Weave, OpenEBS |
kubernetes-1.15-fusion-ubuntu-18.04-single |
This will provision a single kubernetes master in fusion with weave and openebs |
External Kubernetes 1.17 Cluster |
kubernetes-external-1.17 |
This will allow access to an external kubernetes cluster |
External Kubernetes 1.16 Cluster |
kubernetes-external-1.16 |
This will allow access to an external kubernetes cluster |
External Kubernetes 1.15 Cluster |
kubernetes-external-1.15 |
This will allow access to an external kubernetes cluster |
External Kubernetes 1.14 Cluster |
kubernetes-external-1.14 |
This will allow access to an external kubernetes cluster |
KVM on Ubuntu 16.04 |
kvm-vmware-ubuntu-16.04-single |
This will provision a single kvm host vm in vmware |
Morpheus KVM and Container Cluster |
morpheus-kvm-combo-cluster |
This will add a KVM and container host |
VMware Docker CentOS 7.5 |
docker-vmware-centos-7.5-single |
This will provision a single docker host vm in vmware |
Oracle Cloud Docker Host |
docker-oraclecloud-ubuntu-16.04-single |
This will provision a single docker host vm in oraclecloud |
Morpheus Kubernetes Manual Cluster |
morpheus-kubernetes-manual-cluster |
This will create a kubernetes manual (self-managed) cluster |
Alibaba Docker Host |
docker-alibaba-ubuntu-16.04-single |
This will provision a single docker host vm in alibaba |
SCVMM Docker Host |
docker-scvmm-ubuntu-16.04-single |
This will provision a single docker host vm in scvmm |
KVM on Ubuntu 16.04 |
kvm-fusion-ubuntu-16.04-single |
This will provision a single kvm host vm in fusion |
UpCloud Docker Host |
docker-upcloud-ubuntu-16.04-single |
This will provision a single docker host vm in upcloud |
Morpheus KVM Ubuntu Cluster |
morpheus-kvm-ubuntu-cluster |
This will add a KVM Ubuntu host |
Morpheus KVM CentOS Cluster |
morpheus-kvm-centos-cluster |
This will add a KVM CentOS host |
Azure Docker Host |
docker-azure-ubuntu-16.04-single |
This will provision a single docker host vm in azure |
KVM on CentOS 7.5 |
kvm-vmware-centos-7.5-single |
This will provision a single kvm host vm in vmware |
KVM on CentOS 7.5 |
kvm-fusion-centos-7.5-single |
This will provision a single kvm host vm in fusion |
Kubernetes 1.14 HA Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-bluemix-ubuntu-16.04-cluster-weave-openebs |
This will provision a single kubernetes master in bluemix with weave and openebs |
Kubernetes 1.14 Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-bluemix-ubuntu-16.04-single |
This will provision a single kubernetes master in bluemix with weave and openebs |
Kubernetes 1.17 HA Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-vcd-ubuntu-16.04-cluster-weave-openebs |
This will provision a single kubernetes master in vcd with weave and openebs |
Kubernetes 1.17 Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-vcd-ubuntu-16.04-single |
This will provision a single kubernetes master in vcd with weave and openebs |
VCD Docker Host |
docker-vcd-ubuntu-16.04-single |
This will provision a single docker host vm in vcd |
Kubernetes 1.14 HA Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-softlayer-ubuntu-16.04-cluster-weave-openebs |
This will provision a single kubernetes master in softlayer with weave and openebs |
Kubernetes 1.14 Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-softlayer-ubuntu-16.04-single |
This will provision a single kubernetes master in softlayer with weave and openebs |
SoftLayer Docker Host |
docker-softlayer-ubuntu-16.04-single |
This will provision a single docker host vm in softlayer |
Open Telekom Docker Host |
docker-opentelekom-ubuntu-16.04-single |
This will provision a single docker host vm in opentelekom |
Huawei Docker Host |
docker-huawei-ubuntu-16.04-single |
This will provision a single docker host vm in huawei |
Google Docker Host |
docker-google-ubuntu-16.04-single |
This will provision a single docker host vm in google |
ESXi Docker Host |
docker-esxi-ubuntu-16.04-single |
This will provision a single docker host vm in esxi |
IBM Docker Host |
docker-bluemix-ubuntu-16.04-single |
This will provision a single docker host vm in bluemix |
Xen Docker Host |
docker-xen-ubuntu-16.04-single |
This will provision a single docker host vm in xen |
Digital Ocean Docker Host |
docker-digitalOcean-ubuntu-16.04-single |
This will provision a single docker host vm in digitalOcean |
Hyper-V Docker Host |
docker-hyperv-ubuntu-16.04-single |
This will provision a single docker host vm in hyperv |
Docker on Linux |
manual-linux-docker-morpheus-single |
This will add a single docker host |
Kubernetes Cluster 1.14 on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-morpheus-ubuntu-16.04-cluster-weave-openebs |
This will provision a kubernetes cluster with weave and openebs |
Kubernetes 1.14 on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-morpheus-ubuntu-16.04-single |
This will provision a single kubernetes master with weave and openebs |
Docker on Bare Metal |
docker-morpheus-metal-ubuntu-16.04-single |
This will provision a single docker host |
Docker on Ubuntu 16.04 |
docker-morpheus-ubuntu-16.04-single |
This will provision a single docker host |
Amazon Docker Host |
docker-amazon-ubuntu-16.04-single |
This will provision a single docker host vm in amazon |
OpenStack Docker Host |
docker-openstack-ubuntu-16.04-single |
This will provision a single docker host vm in openstack |
Nutanix Docker Ubuntu 16.04 |
docker-nutanix-ubuntu-16.04-single |
This will provision a single docker host vm in nutanix |
VMware Docker Ubuntu 16.04 |
docker-vmware-ubuntu-16.04-single |
This will provision a single docker host vm in vmware |
Kubernetes 1.14 HA Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-fusion-ubuntu-16.04-cluster-weave-openebs |
This will provision a single kubernetes master in fusion with weave and openebs |
Kubernetes 1.14 Cluster on Ubuntu 16.04, Weave, OpenEBS |
kubernetes-fusion-ubuntu-16.04-single |
This will provision a single kubernetes master in fusion with weave and openebs |
Docker on Ubuntu 16.04 |
docker-fusion-ubuntu-16.04-single |
This will provision a single docker host vm in fusion |
Users can add new cluster layouts using the +ADD
button. Morpheus-provided cluster layouts can be cloned for use in creating custom layouts. Custom cluster layouts can also be deleted or edited from the list view using the pencil or trash can icons.
