[Yandex Cloud documentation](../../index.md) > [Yandex Cloud Marketplace](../index.md) > Partners > Step-by-step guides > Creating a configuration for a Cloud Apps product

# Creating a configuration for a Cloud Apps product

## Creating a configuration {#create}

1. Log in to the [Marketplace](https://partners.yandex.cloud/) partner dashboard.
1. Select the product for which you want to create a configuration.
1. Navigate the **Configurations** tab.
1. Click ![image](../../_assets/console-icons/plus.svg) **Create configuration**.
1. Select how you want to create your configuration:

    {% list tabs %}

    - From scratch

        To create an empty configuration:

        1. Select a folder to host your configuration. You need the `cloudapps.editor` role for that folder.
        1. Name the configuration.
        1. Optionally, provide a description for the configuration.

    - Based on another configuration

        To create a configuration based on an existing one:

        1. Select the configuration based on which you want to create a new one.
        1. Select a folder to save your configuration. You need the `cloudapps.editor` role for that folder.
        1. Name the configuration.
        1. Optionally, provide a description for the configuration.

        All artifacts, fields, and resources in the configuration based on which you are creating the new one will be automatically added to the new configuration.

    - Based on preset

        To create a configuration with a predefined set of typical fields and resources:

        1. Select the preset based on which you want to create a configuration. A preset is a set of Yandex Cloud services based on your app will operate. The following presets are currently available:
            
            * Network Load Balancer + Instance Groups + Managed Service for PostgreSQL
            * Network Load Balancer + Instance Groups + Managed Service for MySQL®
            * Network Load Balancer + Instance Groups + Object Storage
            * Network Load Balancer + Instance Groups.
            
        1. Select a folder to save your configuration. You need the `cloudapps.editor` role for that folder.
        1. Name the configuration.
        1. Optionally, provide a description for the configuration.
        1. Optionally, under **Preset parameters**, specify default parameter values for the resources that will be created during application (product instance) installation. Make sure the Instance Groups VM [disk image](../../compute/concepts/image.md) meets the [requirements](../concepts/compute-product.md).

    {% endlist %}

## Setting up a configuration {#configure}

### Adding an artifact {#artifact}

Add artifacts: Yandex Compute Cloud [disk images](../../compute/concepts/image.md), Yandex Container Registry [Docker images](../../container-registry/concepts/docker-image.md), and static files used by the application, placed in Yandex Object Storage [buckets](../../storage/concepts/bucket.md).

To add an artifact:

1. The configuration you created will appear in the list with the `Draft` status. Select it.
1. Add the artifacts required for the application to work:
    1. Click **Add artifact**.
    1. Select the artifact type:

        * `Disk image`:

            [Disk images](../../compute/concepts/image.md) are used to initialize disks of Compute Cloud [VM instances](../../compute/concepts/vm.md), including those in instance groups.

            1. Name the artifact.
            1. Select the Yandex Compute Cloud disk image. It must meet [these requirements](../concepts/compute-product.md).
            1. Click **Add**.

        * `Container image`:

            [Container images](../../container-registry/concepts/docker-image.md) are used to create containerized applications with [Yandex Serverless Containers](../../serverless-containers/index.md) or [Yandex Container Solution](../../cos/index.md).

            1. Name the artifact.
            1. Select the Docker image uploaded to Yandex Container Registry. It must meet [these requirements](../concepts/kubernetes-product.md).
            1. Click **Add**.

        * `Object Storage`:

            Object Storage [buckets](../../storage/concepts/bucket.md) are used to store static files of an application version, such as logos, global configuration files, executable code of functions from [Yandex Cloud Functions](../../functions/index.md), etc.

            1. Name the artifact.
            1. Select the Yandex Object Storage bucket that stores the files required for the application to function correctly.
            1. Provide the full path to the file, e.g., `prefix/subprefix/data.json`.
            1. Click **Add**.


### Create a form {#form}

Create a form, i.e., a set of fields for the user to fill out before installing the application. You can use the values obtained from the fields both when configuring application resources and during its execution.

If you created a configuration based on another configuration or a preset, the configuration already has form fields. Modify them if required.

To add a field:

1. Navigate to the **Parameters** tab.
1. Add a field to the form for the user to fill out when installing the application:

    1. Click **Add field**.
    1. Specify the field parameters. For a description of the field parameters, see [this section](../concepts/form-fields-ref.md).

### Adding resources {#resources}

Describe the Yandex Cloud resources that the user must create before installing the application and that will be automatically created in the user folder during application deployment.

If you created a configuration based on another configuration or a preset, the configuration already has resources. Modify them if required.

To add a resource:

1. Navigate to the **Resources** tab.
1. Click **Add resource**.
1. Select:
    * `New resource`, so that a new resource is automatically created in the user folder when installing the application.
    * `User resource`, so that when installing the application, the user can select a resource from those already existing in their folder or create a new one at their own discretion.
1. Select a resource from those available.
1. In the right pane, select the resource you added. User resources are distinguished from new ones by the ![image](../../_assets/console-icons/person-magnifier.svg) icon.
1. Edit the resource name. To do this, click ![image](../../_assets/console-icons/pencil.svg) next to the resource name that was generated automatically. The resource name must be unique within the configuration. The user will see it when installing the application.
1. Specify the resource parameters. The possible types of parameter values:

    * **Value**: Static value you specify in the field.
    * **Application attribute**: Value of one of the application attributes, e.g., the ID of the folder in which the user will install the application.
    * **Reference**: Value of one of the parameters pertaining to the resource you added.
    * **Parameters**: Value obtained from a form field the user fills out when installing the application.
    * **No value**: Empty value.
    * **Resource**: Selecting one of the resources you added.
    * **Expression**: [Calculated expression](../concepts/expressions.md) allowing you to dynamically generate the field value based on other values, input parameters, and calculations.

    For descriptions of the resource parameters, see [this Terraform provider guide](../../terraform/index.md). The options available when creating resources and those described in the documentation may differ.

    {% cut "Example of adding a resource" %}

    1. Select the resource type: `VPC cloud network`.
    1. Click ![image](../../_assets/console-icons/pencil.svg) next to the `yandex-vpc-network-1` cloud network name; this name was generated automatically. Edit the cloud network name. It must be unique within the configuration. The user will see this name when installing the application.
    1. In the **ID** field, select `Input field` and select a variable to get the cloud network ID from. The variable name is specified when adding a field to the form. The user specifies the field value when installing the application.

    {% endcut %}

1. Click **Save** to save the configuration.

## Useful links {#see-also}

* [Creating a demo Cloud Apps product](../tutorials/demo-cloud-apps.md)