OS policy assignment is an API resource that is used to apply a set of OS policies to a dynamically targeted group of Compute Engine VM instances.
An OS policy is used to define the desired state configuration for a Compute Engine VM instance through a set of configuration resources that provide capabilities such as installing or removing software packages, or executing a script.
For more information about the OS policy resource definitions and examples, see OS policy and OS policy assignment.
JSON representation |
---|
{ "name": string, "description": string, "osPolicies": [ { object ( |
Fields | |
---|---|
name |
Resource name. Format: This field is ignored when you create an OS policy assignment. |
description |
OS policy assignment description. Length of the description is limited to 1024 characters. |
os |
Required. List of OS policies to be applied to the VMs. |
instance |
Required. Filter to select VMs. |
rollout |
Required. Rollout to deploy the OS policy assignment. A rollout is triggered in the following situations: 1) OSPolicyAssignment is created. 2) OSPolicyAssignment is updated and the update contains changes to one of the following fields: - instanceFilter - osPolicies 3) OSPolicyAssignment is deleted. |
revision |
Output only. The assignment revision ID A new revision is committed whenever a rollout is triggered for a OS policy assignment |
revision |
Output only. The timestamp that the revision was created. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: |
etag |
The etag for this OS policy assignment. If this is provided on update, it must match the server's etag. |
rollout |
Output only. OS policy assignment rollout state |
baseline |
Output only. Indicates that this revision has been successfully rolled out in this zone and new VMs will be assigned OS policies from this revision. For a given OS policy assignment, there is only one revision with a value of |
deleted |
Output only. Indicates that this revision deletes the OS policy assignment. |
reconciling |
Output only. Indicates that reconciliation is in progress for the revision. This value is |
uid |
Output only. Server generated unique id for the OS policy assignment resource. |
InstanceFilter
Filters to select target VMs for an assignment.
If more than one filter criteria is specified below, a VM will be selected if and only if it satisfies all of them.
JSON representation |
---|
{ "all": boolean, "inclusionLabels": [ { object ( |
Fields | |
---|---|
all |
Target all VMs in the project. If true, no other criteria is permitted. |
inclusion |
List of label sets used for VM inclusion. If the list has more than one |
exclusion |
List of label sets used for VM exclusion. If the list has more than one label set, the VM is excluded if any of the label sets are applicable for the VM. |
inventories[] |
List of inventories to select VMs. A VM is selected if its inventory data matches at least one of the following inventories. |
LabelSet
Message representing label set. * A label is a key value pair set for a VM. * A LabelSet is a set of labels. * Labels within a LabelSet are ANDed. In other words, a LabelSet is applicable for a VM only if it matches all the labels in the LabelSet. * Example: A LabelSet with 2 labels: env=prod
and type=webserver
will only be applicable for those VMs with both labels present.
JSON representation |
---|
{ "labels": { string: string, ... } } |
Fields | |
---|---|
labels |
Labels are identified by key/value pairs in this map. A VM should contain all the key/value pairs specified in this map to be selected. An object containing a list of |
Inventory
VM inventory details.
JSON representation |
---|
{ "osShortName": string, "osVersion": string } |
Fields | |
---|---|
os |
Required. The OS short name |
os |
The OS version Prefix matches are supported if asterisk(*) is provided as the last character. For example, to match all versions with a major version of An empty string matches all OS versions. |
Rollout
Message to configure the rollout at the zonal level for the OS policy assignment.
JSON representation |
---|
{
"disruptionBudget": {
object ( |
Fields | |
---|---|
disruption |
Required. The maximum number (or percentage) of VMs per zone to disrupt at any given moment. |
min |
Required. This determines the minimum duration of time to wait after the configuration changes are applied through the current rollout. A VM continues to count towards the A duration in seconds with up to nine fractional digits, ending with ' |