example-config/solution.yaml (91 lines of code) (raw):
# BEGIN Legacy field, required but will be removed in the future
partnerId: my-partner-id
solutionId: example-autogen-solution
# END Legacy field, required but will be removed in the future
solutionInfo:
name: Autogen Solution Example
packagedSoftwareGroups:
- type: SOFTWARE_GROUP_OS
components:
- name: Ubuntu
version: 16.04 LTS
- components:
- name: Apache
version: 2.4.23
spec:
version: 1.0
deploymentTool: TERRAFORM
# multiVm option is also available
singleVm:
images:
# if more than one image is provided, the user will be able to select which one they want
- project: your-project-id-that-the-image-belongs-to
name: name-of-your-image
label: Label to show in the selection dropdown
machineType:
# Check http://cloud.google.com/compute/docs/machine-types for all available types
defaultMachineType:
gceMachineType: e2-standard-4
# Minimum CPU and memory constraints for the machine type to run your solution properly
minimum:
cpu: 2
ramGb: 4
bootDisk:
# Describes the default and minimum disk size (GB) that user should have to run your solution properly
diskSize:
defaultSizeGb: 30
minSizeGb: 20
diskType:
# For more information about disk types: http://cloud.google.com/compute/docs/reference/latest/diskTypes
# Some types: pd-standard, local-ssd, pd-ssd
defaultType: pd-standard
# Defaults to Boot Disk
displayLabel: My Boot Disk
# Additional SSDs to be attached to you VM
localSsds:
count: 2
# Adds the option for the use to set IP forwarding when deploying this solution
# More info: http://cloud.google.com/compute/docs/networking#eventualconsistency
ipForwarding:
defaultOff: true
# List of firewall rules for this solution. If not specified, allowedSource will be set to PUBLIC by default
# More details in deployment_package_autogen_spec.proto
firewallRules:
- protocol: TCP
# Can be a range of ports, in the format 32768-40000
port: 80
# Rules to specify how to generate passwords
passwords:
# This password identifier that
- metadataKey: my-password-1
length: 8
allowSpecialChars: true
username: solutionuser
# Label to describe the purpose of this password (will default to Admin in case only one password is provided)
displayLabel: Admin
gceStartupScript:
bashScriptContent: echo SUCCESS > /var/log/startup-log.txt
# Post deployment information that will be displayed to the user to actions upon
postDeploy:
# List of suggested action items for users, after deployment is successful
actionItems:
- heading: Log on now
description: "Start using your application by accessing the following URL: https://www.google.com"
snippet: $ some code snippets can go here, to show some examples
- heading: Another label
description: Another description
showIf:
# We make this action only show in the post deployment page if a boolean expression is satisfied
# In this example, only if an input field (see deployInput sections below) in the DM config UI is selected
booleanDeployInputField:
name: booleanField1
# In the post deployment page we can show a table to expose some more details about the deployed solution
infoRows:
- label: Property 1
value: Value for property 1
- label: Property 2
# We can specify values from custom deploy input fields present in this spec
valueFromDeployInputField: additionalEmail
# Field describing the accelerators that can be attached to this VM. For now, only one acceleratorSpec is allowed
accelerators:
# List of available GPUs (user can only pick one type). This list is required. Types: https://cloud.google.com/compute/docs/gpus/
# Check the ids of the GPUs through GCP API: https://cloud.google.com/compute/docs/reference/latest/acceleratorTypes
- types:
- nvidia-tesla-k80
- nvidia-tesla-p100
defaultType: nvidia-tesla-p100
# Only values of 0, 1, 2, 4, and 8 are supported.
defaultCount: 2
# Here we can specify extra input fields to be passed to the deployment manager
deployInput:
sections:
# The place int he Deployment Manager config that this section will appear. More details in deployment_package_autogen_spec.proto
- placement: MAIN
name: idOfThisSection
title: Title that will appear on top of this section
description: This will appear below the title
tooltip: Tooltip for this section
# List of input fields that this section has
fields:
- required: true
name: adminEmail
title: Enter your e-mail here
description: Some description to go below the title
tooltip: Tooltipe for this input field
emailBox: {}
- required: false
name: additionalEmail
title: Additional email address
emailBox: {}
- required:
name: booleanField1
title: Boolean checkbox used to tell whether our actionItem above should be displayed or not
booleanCheckbox: {}