Creating your deployment package

This section describes the steps to create deployment packages for your solution. Deployment packages are uploaded through Partner Portal, and are required for submitting your VM solution.

A deployment is a set of resources that are created and managed together—such as the resources needed for your solution. A deployment package is a specification for a set of resources that are typically deployed together, which streamlines the process of deploying that particular solution. Deployment Manager enables you to create deployment packages for your VM solutions by using simple YAML, JSON, or ProtoText configuration files.

If your solution is a simple deployment of a single virtual machine instance with basic firewall rules, you can configure your deployment package directly in Partner Portal.

For most use cases, we recommend using the open source mpdev tool to generate Deployment Manager packages. The mpdev tool uses Deployment Manager Autogen to generate your Deployment Manager packages. For more information, refer to this sample Autogen specification. Packages built with Autogen include the following capabilities:

  • Quota checks for CPUs and GPUs, so that users cannot deploy your solution if they exceed the quota requirements.
  • Dynamic price updates in the Deployment Manager page.
  • Support for shared VPCs.
  • Support for VMs with multiple network interface cards.
  • The ability to prevent users from choosing machine types, GPUs, or subnetworks that are not available in the zone that they choose.

Before you begin

Install the mpdev tool by following the instructions in the marketplace-tools repository.

Creating your Autogen specification

We recommend creating your initial Autogen specification by using the single VM example in the marketplace-tools repository. To create your specification from the single VM example run the following command:

mpdev pkg get https://github.com/GoogleCloudPlatform/marketplace-tools.git/examples/deployment-manager/autogen/singlevm MY_PACKAGE

Follow the next steps described in the file README.md of the downloaded example. These steps include editing fields of the configurations.yaml file that are specific to your solution. After you have completed these steps, run mpdev apply on your edited mpdev configuration to generate your Deployment Manager package.

For detailed documentation of the fields under DeploymentSpec in configurations.yaml, refer to the Autogen reference documentation).

You can also see other sample configurations in the examples folder.

Creating authorization credentials

You can specify multiple passwords in the DeploymentSpecin configurations.yaml. You can retrieve passwords from the instance metadata server and view them in the post-deployment interface.

Generating your deployment package

The following is a sample command that reads the spec in MY_PACKAGE/configurations.yaml and outputs a zip file to the location specified in MY_PACKAGE/configurations.yaml:

mpdev apply -f MY_PACKAGE/configurations.yaml

After your deployment package has been created, follow these instructions to upload the deployment package to Partner Portal.

Creating simple Deployment Manager packages in Partner Portal

Solutions that are simple deployments of single virtual machine instances with basic firewall rules can have their deployment packages configured directly in Partner Portal.

To configure this, open Partner Portal and select your solution from the list of solutions, then follow these steps:

  1. Next to Deployment Package, click Edit.
  2. Select to Generate a Package, and then click Continue.
  3. Select your VM image using the Project and Image dropdowns, and then click Continue.
  4. Select your Minimum machine type and Default machine type settings, then click Continue.
  5. Add any post-deployment next steps that your customers should take, and then click Continue.
  6. Set up your Firewall rules and other networking options if applicable, and then click Continue.
  7. You can choose to declare a site or admin URL. If your solution requires a login, you can set up login details when you submit your solution. Click Continue.
  8. Under List package contents, select the Operating System Name and OS Version of your VM image's operating system. You can then add a Name and Version for each additional piece of software that comes included as part of your solution. After you have listed all of your package's contents, click Continue.
  9. After you have completed the previous steps, your solution package is shown under Review. You can download the solution package, or click Edit JSON to manually modify it. Click Save to save the package and return to your solution.

For more complex deployments, you can create a deployment from scratch. If you're unsure about which type of solution is better for your project, talk to your Google Partner Engineer.

Deployment packages from the customer view

The following sections show the screen layouts that your customers see when they deploy your solution, for solutions based on auto-generated standard solution packages.

Customer view of deploying a package

The standard customer input elements are shown on the left side of the following screenshot and include zone, machine type, disk options, and networking options.

If a customer's deployment requires multiple network interface cards, they can add additional network interfaces by clicking Add network interface.

To deploy your solution, your customers must fill out the input fields, and then click Deploy.

Customer view of a deployed package

The following image shows you how your solution will appear to your customers after they have deployed it successfully.

The standard output elements are shown on the right side of the following screenshot and include site address, temporary admin password, and instance information.