Merge pull request #8153 from yandex-cloud/fix-docs
Add description for some fields in config struct
This commit is contained in:
commit
1873ef23de
|
@ -1,3 +1,4 @@
|
|||
//go:generate struct-markdown
|
||||
package yandex
|
||||
|
||||
import (
|
||||
|
@ -44,9 +45,9 @@ type Config struct {
|
|||
// The name of the disk, if unset the instance name
|
||||
// will be used.
|
||||
DiskName string `mapstructure:"disk_name" required:"false"`
|
||||
// The size of the disk in GB. This defaults to 10, which is 10GB.
|
||||
// The size of the disk in GB. This defaults to `10`, which is 10GB.
|
||||
DiskSizeGb int `mapstructure:"disk_size_gb" required:"false"`
|
||||
// Specify disk type for the launched instance. Defaults to network-hdd.
|
||||
// Specify disk type for the launched instance. Defaults to `network-hdd`.
|
||||
DiskType string `mapstructure:"disk_type" required:"false"`
|
||||
// The description of the resulting image.
|
||||
ImageDescription string `mapstructure:"image_description" required:"false"`
|
||||
|
@ -56,13 +57,13 @@ type Config struct {
|
|||
// apply to the created image.
|
||||
ImageLabels map[string]string `mapstructure:"image_labels" required:"false"`
|
||||
// The unique name of the resulting image. Defaults to
|
||||
// packer-{{timestamp}}.
|
||||
// `packer-{{timestamp}}`.
|
||||
ImageName string `mapstructure:"image_name" required:"false"`
|
||||
// License IDs that indicate which licenses are attached to resulting image.
|
||||
ImageProductIDs []string `mapstructure:"image_product_ids" required:"false"`
|
||||
// The number of cores available to the instance.
|
||||
InstanceCores int `mapstructure:"instance_cores" required:"false"`
|
||||
//
|
||||
// The number of GPU available to the instance.
|
||||
InstanceGpus int `mapstructure:"instance_gpus"`
|
||||
// The amount of memory available to the instance, specified in gigabytes.
|
||||
InstanceMemory int `mapstructure:"instance_mem_gb" required:"false"`
|
||||
|
@ -71,7 +72,7 @@ type Config struct {
|
|||
// Key/value pair labels to apply to
|
||||
// the launched instance.
|
||||
Labels map[string]string `mapstructure:"labels" required:"false"`
|
||||
// Identifier of the hardware platform configuration for the instance. This defaults to standard-v1.
|
||||
// Identifier of the hardware platform configuration for the instance. This defaults to `standard-v1`.
|
||||
PlatformID string `mapstructure:"platform_id" required:"false"`
|
||||
// The maximum number of times an API request is being executed
|
||||
MaxRetries int `mapstructure:"max_retries"`
|
||||
|
@ -85,14 +86,15 @@ type Config struct {
|
|||
SerialLogFile string `mapstructure:"serial_log_file" required:"false"`
|
||||
// The source image family to create the new image
|
||||
// from. You can also specify source_image_id instead. Just one of a source_image_id or
|
||||
// source_image_family must be specified. Example: ubuntu-1804-lts
|
||||
// source_image_family must be specified. Example: `ubuntu-1804-lts`
|
||||
SourceImageFamily string `mapstructure:"source_image_family" required:"true"`
|
||||
// The ID of the folder containing the source image.
|
||||
SourceImageFolderID string `mapstructure:"source_image_folder_id" required:"false"`
|
||||
// The source image ID to use to create the new image
|
||||
// from.
|
||||
SourceImageID string `mapstructure:"source_image_id" required:"false"`
|
||||
//
|
||||
// The source image name to use to create the new image
|
||||
// from. Name will be looked up in `source_image_folder_id`.
|
||||
SourceImageName string `mapstructure:"source_image_name"`
|
||||
// The Yandex VPC subnet id to use for
|
||||
// the launched instance. Note, the zone of the subnet must match the
|
||||
|
@ -102,18 +104,19 @@ type Config struct {
|
|||
// access.
|
||||
UseIPv4Nat bool `mapstructure:"use_ipv4_nat" required:"false"`
|
||||
// Set to true to enable IPv6 for the instance being
|
||||
// created. This defaults to false, or not enabled.
|
||||
// -> Note: ~> Usage of IPv6 will be available in the future.
|
||||
// created. This defaults to `false`, or not enabled.
|
||||
//
|
||||
// -> **Note**: Usage of IPv6 will be available in the future.
|
||||
UseIPv6 bool `mapstructure:"use_ipv6" required:"false"`
|
||||
// If true, use the instance's internal IP address
|
||||
// instead of its external IP during building.
|
||||
UseInternalIP bool `mapstructure:"use_internal_ip" required:"false"`
|
||||
// The name of the zone to launch the instance. This defaults to ru-central1-a.
|
||||
// The name of the zone to launch the instance. This defaults to `ru-central1-a`.
|
||||
Zone string `mapstructure:"zone" required:"false"`
|
||||
|
||||
ctx interpolate.Context
|
||||
// The time to wait for instance state changes.
|
||||
// Defaults to 5m.
|
||||
// Defaults to `5m`.
|
||||
StateTimeout time.Duration `mapstructure:"state_timeout" required:"false"`
|
||||
}
|
||||
|
||||
|
|
|
@ -1,149 +0,0 @@
|
|||
---
|
||||
description: |
|
||||
The yandex Packer builder is able to create images for use with
|
||||
Yandex.Cloud based on existing images.
|
||||
layout: docs
|
||||
page_title: 'Yandex Compute - Builders'
|
||||
sidebar_current: 'docs-builders-yandex'
|
||||
---
|
||||
|
||||
# Yandex Compute Builder
|
||||
|
||||
Type: `yandex`
|
||||
|
||||
The `yandex` Packer builder is able to create
|
||||
[images](https://cloud.yandex.com/docs/compute/concepts/images) for use with
|
||||
[Yandex Compute Cloud](https://cloud.yandex.com/docs/compute/)
|
||||
based on existing images.
|
||||
|
||||
## Authentication
|
||||
|
||||
Yandex.Cloud services authentication requires one of the following security credentials:
|
||||
|
||||
- OAuth token
|
||||
- File with Service Account Key
|
||||
|
||||
|
||||
### Authentication Using Token
|
||||
|
||||
To authenticate with an OAuth token only `token` config key is needed.
|
||||
Or use the `YC_TOKEN` environment variable.
|
||||
|
||||
|
||||
### Authentication Using Service Account Key File
|
||||
|
||||
To authenticate with a service account credential, only `service_account_key_file` is needed.
|
||||
Or use the `YC_SERVICE_ACCOUNT_KEY_FILE` environment variable.
|
||||
|
||||
|
||||
## Basic Example
|
||||
|
||||
``` json
|
||||
{
|
||||
"type": "yandex",
|
||||
"token": "YOUR OAUTH TOKEN",
|
||||
"folder_id": "YOUR FOLDER ID",
|
||||
"source_image_family": "ubuntu-1804-lts",
|
||||
"ssh_username": "ubuntu",
|
||||
"use_ipv4_nat": "true"
|
||||
}
|
||||
```
|
||||
|
||||
## Configuration Reference
|
||||
|
||||
Configuration options are organized below into two categories: required and
|
||||
optional. Within each category, the available options are alphabetized and
|
||||
described.
|
||||
|
||||
In addition to the options listed here, a [communicator](/docs/templates/communicator.html)
|
||||
can be configured for this builder.
|
||||
|
||||
### Required:
|
||||
|
||||
- `folder_id` (string) - The folder ID that will be used to launch instances and store images.
|
||||
Alternatively you may set value by environment variable `YC_FOLDER_ID`.
|
||||
|
||||
- `token` (string) - OAuth token to use to authenticate to Yandex.Cloud. Alternatively you may set
|
||||
value by environment variable `YC_TOKEN`.
|
||||
|
||||
- `source_image_family` (string) - The source image family to create the new image
|
||||
from. You can also specify `source_image_id` instead. Just one of a `source_image_id` or
|
||||
`source_image_family` must be specified. Example: `ubuntu-1804-lts`
|
||||
|
||||
### Optional:
|
||||
|
||||
- `endpoint` (string) - Non standard api endpoint URL.
|
||||
|
||||
- `instance_cores` (number) - The number of cores available to the instance.
|
||||
|
||||
- `instance_gpus` (number) - The number of GPU available to the instance.
|
||||
|
||||
- `instance_mem_gb` (number) - The amount of memory available to the instance, specified in gigabytes.
|
||||
|
||||
- `disk_name` (string) - The name of the disk, if unset the instance name
|
||||
will be used.
|
||||
|
||||
- `disk_size_gb` (number) - The size of the disk in GB. This defaults to `10`, which is 10GB.
|
||||
|
||||
- `disk_type` (string) - Specify disk type for the launched instance. Defaults to `network-hdd`.
|
||||
|
||||
- `image_description` (string) - The description of the resulting image.
|
||||
|
||||
- `image_family` (string) - The family name of the resulting image.
|
||||
|
||||
- `image_labels` (object of key/value strings) - Key/value pair labels to
|
||||
apply to the created image.
|
||||
|
||||
- `image_name` (string) - The unique name of the resulting image. Defaults to
|
||||
`packer-{{timestamp}}`.
|
||||
|
||||
- `image_product_ids` (list) - License IDs that indicate which licenses are attached to resulting image.
|
||||
|
||||
- `instance_name` (string) - The name assigned to the instance.
|
||||
|
||||
- `labels` (object of key/value strings) - Key/value pair labels to apply to
|
||||
the launched instance.
|
||||
|
||||
- `platform_id` (string) - Identifier of the hardware platform configuration for the instance. This defaults to `standard-v1`.
|
||||
|
||||
- `max_retries` (number) - The maximum number of times an API request is being executed.
|
||||
|
||||
- `metadata` (object of key/value strings) - Metadata applied to the launched
|
||||
instance.
|
||||
|
||||
- `serial_log_file` (string) - File path to save serial port output of the launched instance.
|
||||
|
||||
- `service_account_key_file` (string) - Path to file with Service Account key in json format. This
|
||||
is an alternative method to authenticate to Yandex.Cloud. Alternatively you may set environment variable
|
||||
`YC_SERVICE_ACCOUNT_KEY_FILE`.
|
||||
|
||||
- `source_image_family` (string) - The source image family to create
|
||||
the new image from. The image family always returns its latest image that
|
||||
is not deprecated. Example: `ubuntu-1804-lts`.
|
||||
|
||||
- `subnet_id` (string) - The Yandex VPC subnet id to use for
|
||||
the launched instance. Note, the zone of the subnet must match the
|
||||
`zone` in which the VM is launched.
|
||||
|
||||
- `use_internal_ip` (boolean) - If true, use the instance's internal IP address
|
||||
instead of its external IP during building.
|
||||
|
||||
- `use_ipv4_nat` (boolean) - If set to `true`, then launched instance will have external internet
|
||||
access.
|
||||
|
||||
- `use_ipv6` (boolean) - Set to `true` to enable IPv6 for the instance being
|
||||
created. This defaults to `false`, or not enabled.
|
||||
-> **Note:** ~> Usage of IPv6 will be available in the future.
|
||||
|
||||
- `source_image_folder_id` (string) - The ID of the folder containing the source image.
|
||||
|
||||
- `source_image_id` (string) - The source image ID to use to create the new image
|
||||
from.
|
||||
|
||||
- `source_image_name` (string) - The source image name to use to create the new image
|
||||
from. Name will be looked up in `source_image_folder_id`.
|
||||
|
||||
- `state_timeout` (string) - The time to wait for instance state changes.
|
||||
Defaults to `5m`.
|
||||
|
||||
- `zone` (string) - The name of the zone to launch the instance. This defaults to `ru-central1-a`.
|
|
@ -0,0 +1,78 @@
|
|||
<!-- Code generated from the comments of the Config struct in builder/yandex/config.go; DO NOT EDIT MANUALLY -->
|
||||
|
||||
- `endpoint` (string) - Non standard api endpoint URL.
|
||||
|
||||
- `service_account_key_file` (string) - Path to file with Service Account key in json format. This
|
||||
is an alternative method to authenticate to Yandex.Cloud. Alternatively you may set environment variable
|
||||
YC_SERVICE_ACCOUNT_KEY_FILE.
|
||||
|
||||
- `disk_name` (string) - The name of the disk, if unset the instance name
|
||||
will be used.
|
||||
|
||||
- `disk_size_gb` (int) - The size of the disk in GB. This defaults to `10`, which is 10GB.
|
||||
|
||||
- `disk_type` (string) - Specify disk type for the launched instance. Defaults to `network-hdd`.
|
||||
|
||||
- `image_description` (string) - The description of the resulting image.
|
||||
|
||||
- `image_family` (string) - The family name of the resulting image.
|
||||
|
||||
- `image_labels` (map[string]string) - Key/value pair labels to
|
||||
apply to the created image.
|
||||
|
||||
- `image_name` (string) - The unique name of the resulting image. Defaults to
|
||||
`packer-{{timestamp}}`.
|
||||
|
||||
- `image_product_ids` ([]string) - License IDs that indicate which licenses are attached to resulting image.
|
||||
|
||||
- `instance_cores` (int) - The number of cores available to the instance.
|
||||
|
||||
- `instance_gpus` (int) - The number of GPU available to the instance.
|
||||
|
||||
- `instance_mem_gb` (int) - The amount of memory available to the instance, specified in gigabytes.
|
||||
|
||||
- `instance_name` (string) - The name assigned to the instance.
|
||||
|
||||
- `labels` (map[string]string) - Key/value pair labels to apply to
|
||||
the launched instance.
|
||||
|
||||
- `platform_id` (string) - Identifier of the hardware platform configuration for the instance. This defaults to `standard-v1`.
|
||||
|
||||
- `max_retries` (int) - The maximum number of times an API request is being executed
|
||||
|
||||
- `metadata` (map[string]string) - Metadata applied to the launched instance.
|
||||
|
||||
- `metadata_from_file` (map[string]string) - Metadata applied to the launched instance. Value are file paths.
|
||||
|
||||
- `preemptible` (bool) - Launch a preemptible instance. This defaults to `false`.
|
||||
|
||||
- `serial_log_file` (string) - File path to save serial port output of the launched instance.
|
||||
|
||||
- `source_image_folder_id` (string) - The ID of the folder containing the source image.
|
||||
|
||||
- `source_image_id` (string) - The source image ID to use to create the new image
|
||||
from.
|
||||
|
||||
- `source_image_name` (string) - The source image name to use to create the new image
|
||||
from. Name will be looked up in `source_image_folder_id`.
|
||||
|
||||
- `subnet_id` (string) - The Yandex VPC subnet id to use for
|
||||
the launched instance. Note, the zone of the subnet must match the
|
||||
zone in which the VM is launched.
|
||||
|
||||
- `use_ipv4_nat` (bool) - If set to true, then launched instance will have external internet
|
||||
access.
|
||||
|
||||
- `use_ipv6` (bool) - Set to true to enable IPv6 for the instance being
|
||||
created. This defaults to `false`, or not enabled.
|
||||
|
||||
-> **Note**: Usage of IPv6 will be available in the future.
|
||||
|
||||
- `use_internal_ip` (bool) - If true, use the instance's internal IP address
|
||||
instead of its external IP during building.
|
||||
|
||||
- `zone` (string) - The name of the zone to launch the instance. This defaults to `ru-central1-a`.
|
||||
|
||||
- `state_timeout` (time.Duration) - The time to wait for instance state changes.
|
||||
Defaults to `5m`.
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<!-- Code generated from the comments of the Config struct in builder/yandex/config.go; DO NOT EDIT MANUALLY -->
|
||||
|
||||
- `folder_id` (string) - The folder ID that will be used to launch instances and store images.
|
||||
Alternatively you may set value by environment variable YC_FOLDER_ID.
|
||||
|
||||
- `token` (string) - OAuth token to use to authenticate to Yandex.Cloud. Alternatively you may set
|
||||
value by environment variable YC_TOKEN.
|
||||
|
||||
- `source_image_family` (string) - The source image family to create the new image
|
||||
from. You can also specify source_image_id instead. Just one of a source_image_id or
|
||||
source_image_family must be specified. Example: `ubuntu-1804-lts`
|
||||
|
Loading…
Reference in New Issue