Updating a subnet
After creating a subnet, you can change its name, description, and DHCP settings.
- In the management console
, change to the folder where you need to update a subnet. - In the list of services, select Virtual Private Cloud.
- In the left-hand panel, select
Subnets. - Click
next to the subnet you need and select Edit. - Configure as appropriate.
- Click Save changes.
If you do not have the Yandex Cloud command line interface yet, install and initialize it.
The folder specified in the CLI profile is used by default. You can specify a different folder using the --folder-name
or --folder-id
parameter.
-
See the description of the CLI command for updating subnet parameters:
yc vpc subnet update --help
-
Get a list of all subnets in the default folder:
yc vpc subnet list
Result:
+----------------------+-----------------------+----------------------+ | ID | NAME | ... | +----------------------+-----------------------+----------------------+ ... | e2l2prrbkbim******** | test-subnet-1 | ... | ... +----------------------+-----------------------+----------------------+
-
Select the
ID
orNAME
of the subnet. -
Change the subnet parameters, for example:
yc vpc subnet update e2l2prrbkbim******** \ --new-name test-subnet-renamed \ --labels new_label=test_label
Result:
id: e2l2prrbkbim******** folder_id: b1g6ci08ma55******** created_at: "2018-10-24T13:54:10Z" name: test-subnet-renamed description: My test subnet labels: new_label: test_label network_id: enplom7a98s1******** zone_id: ru-central1-a v4_cidr_blocks: - 192.168.0.0/24
If you don't have Terraform, install it and configure the Yandex Cloud provider.
Terraform
For more information about the provider resources, see the documentation on the Terraform
If you change the configuration files, Terraform automatically detects which part of your configuration is already deployed, and what should be added or removed.
-
Open the Terraform configuration file and edit the fragment with the subnet description:
... resource "yandex_vpc_subnet" "lab-subnet-a" { name = "subnet-1" description = "My first subnet" v4_cidr_blocks = ["10.2.0.0/16"] zone = "ru-central1-a" network_id = "${yandex_vpc_network.lab-net.id}" } ...
For more information about the parameters of the
yandex_vpc_subnet
resource in Terraform, see the provider documentation . -
Check the configuration using this command:
terraform validate
If the configuration is correct, you will get this message:
Success! The configuration is valid.
-
Run this command:
terraform plan
The terminal will display a list of resources with parameters. No changes will be made at this step. If the configuration contains any errors, Terraform will point them out.
-
Apply the configuration changes:
terraform apply
-
Confirm the changes: type
yes
into the terminal and press Enter.You can check the subnet update using the management console
or this CLI command:yc vpc subnet get <subnet_name>
To change the subnet, use the update REST API method for the Subnet resource or the SubnetService/Update gRPC API call, and provide the following in the request:
-
ID of the subnet to be changed, in the
subnetId
parameter.To get the subnet ID, use the list REST API method for the Subnet resource or the SubnetService/List gRPC API call and provide the folder ID in the
folderId
request parameter.To learn how to find out the folder ID, see Getting the folder ID.
-
New subnet settings if needed:
- Name, in the
name
parameter. - Description, in the
description
parameter. - Network labels, in the
labels
parameter. - Route table ID, in the
routeTableId
parameter. - DHCP options, in the
dhcpOptions
parameter.
- Name, in the
-
List of settings to update, in the
updateMask
parameter.
Warning
This API method overrides all parameters of the object being modified that were not explicitly passed in the request to the default values. To avoid this, list the settings you want to change in the updateMask
parameter (one line separated by commas).
Examples
Changing a subnet using the name flag
You can change a subnet by using its name instead of its ID:
yc vpc subnet update test-subnet-1 \
--new-name test-subnet-renamed \
--labels new_label=test_label
Result:
id: e2l2prrbkbim********
folder_id: b1g6ci08ma55********
created_at: "2018-10-24T13:54:10Z"
name: test-subnet-renamed
description: My test subnet
labels:
new_label: test_label
network_id: enplom7a98s1********
zone_id: ru-central1-a
v4_cidr_blocks:
- 192.168.0.0/24
You can provide the subnet ID and name not only as positional arguments but also using the --id
and --name
flags:
yc vpc network update \
--id enpavfmgapum******** \
--new-name test-network-renamed \
--labels new_label=test_label
yc vpc network update \
--name test-network-1 \
--new-name test-network-renamed \
--labels new_label=test_label