Update igm and rigm docs (#2377)

This commit is contained in:
The Magician 2018-10-31 11:02:24 -07:00 committed by Nathan McKinley
parent 6bef369a20
commit be2ca2185f
2 changed files with 41 additions and 34 deletions

View File

@ -15,7 +15,7 @@ and [API](https://cloud.google.com/compute/docs/reference/latest/instanceGroupMa
~> **Note:** Use [google_compute_region_instance_group_manager](/docs/providers/google/r/compute_region_instance_group_manager.html) to create a regional (multi-zone) instance group manager. ~> **Note:** Use [google_compute_region_instance_group_manager](/docs/providers/google/r/compute_region_instance_group_manager.html) to create a regional (multi-zone) instance group manager.
## Example Usage with top level instance template ## Example Usage with top level instance template (`google` provider)
```hcl ```hcl
resource "google_compute_health_check" "autohealing" { resource "google_compute_health_check" "autohealing" {
@ -54,7 +54,7 @@ resource "google_compute_instance_group_manager" "appserver" {
} }
``` ```
## Example Usage with multiple Versions ## Example Usage with multiple versions (`google-beta` provider)
```hcl ```hcl
resource "google_compute_instance_group_manager" "appserver" { resource "google_compute_instance_group_manager" "appserver" {
name = "appserver-igm" name = "appserver-igm"
@ -90,14 +90,12 @@ The following arguments are supported:
name. name.
* `instance_template` - (Optional) The full URL to an instance template from * `instance_template` - (Optional) The full URL to an instance template from
which all new instances will be created. Conflicts with `version` (see [documentation](https://cloud.google.com/compute/docs/instance-groups/updating-managed-instance-groups#relationship_between_instancetemplate_properties_for_a_managed_instance_group)) which all new instances will be created. This field is only present in the
`google` provider.
* `version` - (Optional) Application versions managed by this instance group. Each * `version` - (Optional) Application versions managed by this instance group. Each
version deals with a specific instance template, allowing canary release scenarios. version deals with a specific instance template, allowing canary release scenarios.
Conflicts with `instance_template`. Structure is documented below. Beware that Structure is documented below.
exactly one version must not specify a target size. It means that versions with
a target size will respect the setting, and the one without target size will
be applied to all remaining Instances (top level target_size - each version target_size).
This property is in beta, and should be used with the terraform-provider-google-beta provider. This property is in beta, and should be used with the terraform-provider-google-beta provider.
See [Provider Versions](https://terraform.io/docs/providers/google/provider_versions.html) for more details on beta fields. See [Provider Versions](https://terraform.io/docs/providers/google/provider_versions.html) for more details on beta fields.
@ -123,8 +121,8 @@ The following arguments are supported:
* `update_strategy` - (Optional, Default `"REPLACE"`) If the `instance_template` * `update_strategy` - (Optional, Default `"REPLACE"`) If the `instance_template`
resource is modified, a value of `"NONE"` will prevent any of the managed resource is modified, a value of `"NONE"` will prevent any of the managed
instances from being restarted by Terraform. A value of `"REPLACE"` will instances from being restarted by Terraform. A value of `"REPLACE"` will
restart all of the instances at once. `"ROLLING_UPDATE"` is supported as a beta feature. restart all of the instances at once. This field is only present in the
A value of `"ROLLING_UPDATE"` requires `rolling_update_policy` block to be set `google` provider.
* `target_size` - (Optional) The target number of running instances for this managed * `target_size` - (Optional) The target number of running instances for this managed
instance group. This value should always be explicitly set unless this resource is attached to instance group. This value should always be explicitly set unless this resource is attached to
@ -145,15 +143,15 @@ group. You can specify only one value. Structure is documented below. For more i
This property is in beta, and should be used with the terraform-provider-google-beta provider. This property is in beta, and should be used with the terraform-provider-google-beta provider.
See [Provider Versions](https://terraform.io/docs/providers/google/provider_versions.html) for more details on beta fields. See [Provider Versions](https://terraform.io/docs/providers/google/provider_versions.html) for more details on beta fields.
* `rolling_update_policy` - (Optional) The update policy for this managed instance group. Structure is documented below. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/updating-managed-instance-groups) and [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/patch) * `update_policy` - (Optional) The update policy for this managed instance group. Structure is documented below. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/updating-managed-instance-groups) and [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/patch)
This property is in beta, and should be used with the terraform-provider-google-beta provider. This property is in beta, and should be used with the terraform-provider-google-beta provider.
See [Provider Versions](https://terraform.io/docs/providers/google/provider_versions.html) for more details on beta fields. See [Provider Versions](https://terraform.io/docs/providers/google/provider_versions.html) for more details on beta fields.
- - - - - -
The **rolling_update_policy** block supports: The `update_policy` block supports:
```hcl ```hcl
rolling_update_policy{ update_policy{
type = "PROACTIVE" type = "PROACTIVE"
minimal_action = "REPLACE" minimal_action = "REPLACE"
max_surge_percent = 20 max_surge_percent = 20
@ -177,21 +175,21 @@ rolling_update_policy{
* `min_ready_sec` - (Optional), Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600] * `min_ready_sec` - (Optional), Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600]
- - - - - -
The **named_port** block supports: (Include a `named_port` block for each named-port required). The `named_port` block supports: (Include a `named_port` block for each named-port required).
* `name` - (Required) The name of the port. * `name` - (Required) The name of the port.
* `port` - (Required) The port number. * `port` - (Required) The port number.
- - - - - -
The **auto_healing_policies** block supports: The `auto_healing_policies` block supports:
* `health_check` - (Required) The health check resource that signals autohealing. * `health_check` - (Required) The health check resource that signals autohealing.
* `initial_delay_sec` - (Required) The number of seconds that the managed instance group waits before * `initial_delay_sec` - (Required) The number of seconds that the managed instance group waits before
it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600. it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.
The **version** block supports: The `version` block supports:
```hcl ```hcl
version { version {
@ -219,11 +217,17 @@ version {
* `target_size` - (Optional) - The number of instances calculated as a fixed number or a percentage depending on the settings. Structure is documented below. * `target_size` - (Optional) - The number of instances calculated as a fixed number or a percentage depending on the settings. Structure is documented below.
The **target_size** block supports: -> Exactly one `version` you specify must not have a `target_size` specified. During a rolling update, the instance group manager will fulfill the `target_size`
constraints of every other `version`, and any remaining instances will be provisioned with the version where `target_size` is unset.
The `target_size` block supports:
* `fixed` - (Optional), The number of instances which are managed for this version. Conflicts with `percent`. * `fixed` - (Optional), The number of instances which are managed for this version. Conflicts with `percent`.
* `percent` - (Optional), The number of instances (calculated as percentage) which are managed for this version. Conflicts with `fixed`. * `percent` - (Optional), The number of instances (calculated as percentage) which are managed for this version. Conflicts with `fixed`.
Note that when using `percent`, rounding will be in favor of explicitly set `target_size` values; a managed instance group with 2 instances and 2 `version`s,
one of which has a `target_size.percent` of `60` will create 2 instances of that `version`.
## Attributes Reference ## Attributes Reference

View File

@ -15,7 +15,7 @@ and [API](https://cloud.google.com/compute/docs/reference/latest/regionInstanceG
~> **Note:** Use [google_compute_instance_group_manager](/docs/providers/google/r/compute_instance_group_manager.html) to create a single-zone instance group manager. ~> **Note:** Use [google_compute_instance_group_manager](/docs/providers/google/r/compute_instance_group_manager.html) to create a single-zone instance group manager.
## Example Usage with top level instance template ## Example Usage with top level instance template (`google` provider)
```hcl ```hcl
resource "google_compute_health_check" "autohealing" { resource "google_compute_health_check" "autohealing" {
@ -55,7 +55,7 @@ resource "google_compute_region_instance_group_manager" "appserver" {
``` ```
## Example Usage with multiple Versions ## Example Usage with multiple versions (`google-beta` provider)
```hcl ```hcl
resource "google_compute_region_instance_group_manager" "appserver" { resource "google_compute_region_instance_group_manager" "appserver" {
name = "appserver-igm" name = "appserver-igm"
@ -91,14 +91,12 @@ The following arguments are supported:
name. name.
* `instance_template` - (Optional) The full URL to an instance template from * `instance_template` - (Optional) The full URL to an instance template from
which all new instances will be created. Conflicts with `version` (see [documentation](https://cloud.google.com/compute/docs/instance-groups/updating-managed-instance-groups#relationship_between_instancetemplate_properties_for_a_managed_instance_group)) which all new instances will be created. This field is only present in the
`google` provider.
* `version` - (Optional) Application versions managed by this instance group. Each * `version` - (Optional) Application versions managed by this instance group. Each
version deals with a specific instance template, allowing canary release scenarios. version deals with a specific instance template, allowing canary release scenarios.
Conflicts with `instance_template`. Structure is documented below. Beware that Structure is documented below.
exactly one version must not specify a target size. It means that versions with
a target size will respect the setting, and the one without target size will
be applied to all remaining Instances (top level target_size - each version target_size).
This property is in beta, and should be used with the terraform-provider-google-beta provider. This property is in beta, and should be used with the terraform-provider-google-beta provider.
See [Provider Versions](https://terraform.io/docs/providers/google/provider_versions.html) for more details on beta fields. See [Provider Versions](https://terraform.io/docs/providers/google/provider_versions.html) for more details on beta fields.
@ -120,11 +118,11 @@ The following arguments are supported:
* `project` - (Optional) The ID of the project in which the resource belongs. If it * `project` - (Optional) The ID of the project in which the resource belongs. If it
is not provided, the provider project is used. is not provided, the provider project is used.
* `update_strategy` - (Optional, Default `"NONE"`) If the `instance_template` * `update_strategy` - (Optional, Default `"REPLACE"`) If the `instance_template`
resource is modified, a value of `"NONE"` will prevent any of the managed resource is modified, a value of `"NONE"` will prevent any of the managed
instances from being restarted by Terraform. A value of `"ROLLING_UPDATE"` instances from being restarted by Terraform. A value of `"REPLACE"` will
is supported as a beta feature. A value of `"ROLLING_UPDATE"` requires restart all of the instances at once. This field is only present in the
`rolling_update_policy` block to be set. `google` provider.
* `target_size` - (Optional) The target number of running instances for this managed * `target_size` - (Optional) The target number of running instances for this managed
instance group. This value should always be explicitly set unless this resource is attached to instance group. This value should always be explicitly set unless this resource is attached to
@ -146,7 +144,7 @@ This property is in beta, and should be used with the terraform-provider-google-
See [Provider Versions](https://terraform.io/docs/providers/google/provider_versions.html) for more details on beta fields. See [Provider Versions](https://terraform.io/docs/providers/google/provider_versions.html) for more details on beta fields.
* `rolling_update_policy` - (Optional) The update policy for this managed instance group. Structure is documented below. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/updating-managed-instance-groups) and [API](https://cloud.google.com/compute/docs/reference/rest/beta/regionInstanceGroupManagers/patch) * `update_policy` - (Optional) The update policy for this managed instance group. Structure is documented below. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/updating-managed-instance-groups) and [API](https://cloud.google.com/compute/docs/reference/rest/beta/regionInstanceGroupManagers/patch)
This property is in beta, and should be used with the terraform-provider-google-beta provider. This property is in beta, and should be used with the terraform-provider-google-beta provider.
See [Provider Versions](https://terraform.io/docs/providers/google/provider_versions.html) for more details on beta fields. See [Provider Versions](https://terraform.io/docs/providers/google/provider_versions.html) for more details on beta fields.
@ -155,10 +153,10 @@ See [Provider Versions](https://terraform.io/docs/providers/google/provider_vers
group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones).
- - - - - -
The **rolling_update_policy** block supports: The `update_policy` block supports:
```hcl ```hcl
rolling_update_policy{ update_policy{
type = "PROACTIVE" type = "PROACTIVE"
minimal_action = "REPLACE" minimal_action = "REPLACE"
max_surge_percent = 20 max_surge_percent = 20
@ -182,21 +180,21 @@ rolling_update_policy{
* `min_ready_sec` - (Optional), Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600] * `min_ready_sec` - (Optional), Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600]
- - - - - -
The **named_port** block supports: (Include a `named_port` block for each named-port required). The `named_port` block supports: (Include a `named_port` block for each named-port required).
* `name` - (Required) The name of the port. * `name` - (Required) The name of the port.
* `port` - (Required) The port number. * `port` - (Required) The port number.
- - - - - -
The **auto_healing_policies** block supports: The `auto_healing_policies` block supports:
* `health_check` - (Required) The health check resource that signals autohealing. * `health_check` - (Required) The health check resource that signals autohealing.
* `initial_delay_sec` - (Required) The number of seconds that the managed instance group waits before * `initial_delay_sec` - (Required) The number of seconds that the managed instance group waits before
it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600. it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.
The **version** block supports: The `version` block supports:
```hcl ```hcl
version { version {
@ -224,11 +222,16 @@ version {
* `target_size` - (Optional) - The number of instances calculated as a fixed number or a percentage depending on the settings. Structure is documented below. * `target_size` - (Optional) - The number of instances calculated as a fixed number or a percentage depending on the settings. Structure is documented below.
The **target_size** block supports: -> Exactly one `version` you specify must not have a `target_size` specified. During a rolling update, the instance group manager will fulfill the `target_size`
constraints of every other `version`, and any remaining instances will be provisioned with the version where `target_size` is unset.
The `target_size` block supports:
* `fixed` - (Optional), The number of instances which are managed for this version. Conflicts with `percent`. * `fixed` - (Optional), The number of instances which are managed for this version. Conflicts with `percent`.
* `percent` - (Optional), The number of instances (calculated as percentage) which are managed for this version. Conflicts with `fixed`. * `percent` - (Optional), The number of instances (calculated as percentage) which are managed for this version. Conflicts with `fixed`.
Note that when using `percent`, rounding will be in favor of explicitly set `target_size` values; a managed instance group with 2 instances and 2 `version`s,
one of which has a `target_size.percent` of `60` will create 2 instances of that `version`.
## Attributes Reference ## Attributes Reference