Updating a subnet
After creating a subnet, you can change its name, description, and DHCP settings.
- In the management console
, go 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
in the row of the subnet you need and select Edit. - Edit as appropriate.
- Click Save changes.
If you do not have the Yandex Cloud CLI yet, install and initialize it.
The folder specified in the CLI profile is used by default. You can specify a different folder through the --folder-name
or --folder-id
parameter.
-
View 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 you need. -
Change the subnet parameters, e.g.:
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.
With Terraform
Terraform is distributed under the Business Source License
For more information about the provider resources, see the documentation on the Terraform
-
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
yandex_vpc_subnet
resource parameters 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 their 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 you want to update in the
subnetId
request 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 settings in the
dhcpOptions
parameter.
- Name in the
-
List of settings to update in the
updateMask
parameter.
Warning
The API method will assign default values to all the parameters of the object you are modifying unless you explicitly provide them in your request. To avoid this, list the settings you want to change in the updateMask
parameter as a single comma-separated string.
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