---
title: "Create a cloud server flavor via Terraform"
sidebar_label: "Create a flavor"
description: "How to create a flavor for a cloud server with a custom configuration"
sidebar_position: 9
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import ConfigureProviders from '@site/i18n/en/docusaurus-plugin-content-docs-terraform/current/_partials/common/configure-providers.mdx'
import ConfigureProvidersConfig from '@site/i18n/en/docusaurus-plugin-content-docs-terraform/current/_partials/common/configure-providers-config.mdx'
import CreateResourcesAlert from '@site/i18n/en/docusaurus-plugin-content-docs-terraform/current/_partials/common/create-resources-alert.mdx'
import CreateFlavorWithNetworkVolume from '@site/i18n/en/docusaurus-plugin-content-docs-terraform/current/_partials/cloud-servers/create-flavor-with-network-volume.mdx'
import {TabItemLabel} from '@selectel/docux/components'

# Create a cloud server flavor via Terraform

<CreateResourcesAlert />

<br />

1. Optional: [configure providers](#configure-providers).
2. [Create a flavor](#create-flavor) with a network or local volume.

## Configuration files \{#config}

<details>
  <summary>Example file for configuring providers</summary>

  <ConfigureProvidersConfig />
</details>

<details>
  <summary>Example file for creating a flavor with a network volume</summary>

  ```hcl
  resource "openstack_compute_flavor_v2" "flavor_1" {
    name      = "custom-flavor-with-network-volume"
    vcpus     = 2
    ram       = 2048
    disk      = 0
    is_public = false

    lifecycle {
      create_before_destroy = true
    }

  }
  ```
</details>

<details>
  <summary>Example file for creating a flavor with a local volume</summary>

  ```hcl
  resource "openstack_compute_flavor_v2" "flavor_2" {
    name      = "custom-flavor-with-local-disk"
    vcpus     = 2
    ram       = 8096
    disk      = 20
    is_public = false

    lifecycle {
      create_before_destroy = true
    }

  }
  ```
</details>

## 1. Optional: configure providers \{#configure-providers}

If you have [configured the Selectel and OpenStack providers](/terraform/configure-terraform-environment/#configure-providers), skip this step.

<ConfigureProviders />

## 2. Create a flavor \{#create-flavor}

The flavor will be available only for the specific service user, project, and pool for which you have [configured the OpenStack provider](#configure-providers).

<Tabs queryString="create-flavor">
  <TabItem value="network" default>
    <TabItemLabel>
      With a network volume
    </TabItemLabel>

    <CreateFlavorWithNetworkVolume />
  </TabItem>

  <TabItem value="local">
    <TabItemLabel>
      With a local volume
    </TabItemLabel>

    ```hcl
    resource "openstack_compute_flavor_v2" "flavor_2" {
      name      = "custom-flavor-with-local-disk"
      vcpus     = 2
      ram       = 8096
      disk      = 20
      is_public = false

      lifecycle {
        create_before_destroy = true
      }

    }
    ```

    Where:

    * `vcpus` — number of vCPUs; ;
    * `ram` — amount of RAM in MB; ;
    * `disk` — size of the local volume in GB.

    Consider the available values of custom configurations for [instance lines](/cloud-servers/create/configurations/#lines).

    See the detailed resource description for [openstack\_compute\_flavor\_v2](/terraform/openstack-provider-reference/compute-nova/resources/openstack_compute_flavor_v2/).
  </TabItem>
</Tabs>

<Formbricks />
