Resource: PolicyOrchestrator
PolicyOrchestrator helps managing project+zone level policy resources (e.g. OS Policy Assignments), by providing tools to create, update and delete them across projects and locations, at scale.
Policy orchestrator functions as an endless loop. Each iteration orchestrator computes a set of resources that should be affected, then progressively applies changes to them. If for some reason this set of resources changes over time (e.g. new projects are added), the future loop iterations will address that.
Orchestrator can either upsert or delete policy resources. For more details, see the description of the action
, and orchestratedResource
fields.
Note that policy orchestrator do not "manage" the resources it creates. Every iteration is independent and only minimal history of past actions is retained (apart from Cloud Logging). If orchestrator gets deleted, it does not affect the resources it created in the past. Those will remain where they were. Same applies if projects are removed from the orchestrator's scope.
JSON representation |
---|
{ "name": string, "description": string, "etag": string, "state": string, "reconciling": boolean, "orchestrationScope": { object ( |
Fields | |
---|---|
name |
Immutable. Identifier. In form of * |
description |
Optional. Freeform text describing the purpose of the resource. |
etag |
Output only. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. |
state |
Optional. State of the orchestrator. Can be updated to change orchestrator behaviour. Allowed values: - Note: There might be more states added in the future. We use string here instead of an enum, to avoid the need of propagating new states to all the client code. |
reconciling |
Output only. Set to true, if the there are ongoing changes being applied by the orchestrator. |
orchestration |
Optional. Defines scope for the orchestration, in context of the enclosing PolicyOrchestrator resource. Scope is expanded into a list of <project, zone> pairs, in which the rollout action will take place. Expansion starts with a Folder resource parenting the PolicyOrchestrator resource: - All the descendant projects are listed. - List of project is cross joined with a list of all available zones. - Resulting list of <project, zone> pairs is filtered according to the selectors. |
action |
Required. Action to be done by the orchestrator in |
orchestrated |
Required. Resource to be orchestrated by the policy orchestrator. |
orchestration |
Output only. State of the orchestration. |
create |
Output only. Timestamp when the policy orchestrator resource was created. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: |
update |
Output only. Timestamp when the policy orchestrator resource was last modified. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: |
labels |
Optional. Labels as key value pairs An object containing a list of |
OrchestrationScope
Defines a set of selectors which drive which resources are in scope of policy orchestration.
JSON representation |
---|
{
"selectors": [
{
object ( |
Fields | |
---|---|
selectors[] |
Optional. Selectors of the orchestration scope. There is a logical AND between each selector defined. When there is no explicit |
Selector
Selector for the resources in scope of orchestration.
JSON representation |
---|
{ // Union field |
Fields | |
---|---|
Union field selector_type . Type of Selector to be used for rollouts. selector_type can be only one of the following: |
|
resource |
Selector for selecting resource hierarchy. |
location |
Selector for selecting locations. |
ResourceHierarchySelector
Selector containing Cloud Resource Manager resource hierarchy nodes.
JSON representation |
---|
{ "includedProjects": [ string ], "includedFolders": [ string ] } |
Fields | |
---|---|
included |
Optional. Names of the projects in scope. Format: |
included |
Optional. Names of the folders in scope. Format: |
LocationSelector
Selector containing locations in scope.
JSON representation |
---|
{ "includedLocations": [ string ] } |
Fields | |
---|---|
included |
Optional. Names of the locations in scope. Format: |
OrchestratedResource
Represents a resource that is being orchestrated by the policy orchestrator.
JSON representation |
---|
{ "id": string, // Union field |
Fields | |
---|---|
id |
Optional. ID of the resource to be used while generating set of affected resources. For UPSERT action the value is auto-generated during PolicyOrchestrator creation when not set. When the value is set it should following next restrictions:
For DELETE action, ID must be specified explicitly during PolicyOrchestrator creation. |
Union field For DELETE action, a payload must be set to indicate type of the resource that will be deleted. It can be either: - an empty message, - a correct resource content. |
|
os |
Optional. OSPolicyAssignment resource to be created, updated or deleted. Name field is ignored and replace with a generated value. With this field set, orchestrator will perform actions on |
OrchestrationState
Describes the state of the orchestration process.
JSON representation |
---|
{ "currentIterationState": { object ( |
Fields | |
---|---|
current |
Output only. Current Wave iteration state. |
previous |
Output only. Previous Wave iteration state. |
IterationState
Describes the state of a single iteration of the orchestrator.
JSON representation |
---|
{ "state": enum ( |
Fields | |
---|---|
state |
Output only. State of the iteration. |
rollout |
Output only. Handle to the Progressive Rollouts API rollout resource, which contains detailed information about a particular orchestration iteration. |
progress |
Output only. An estimated percentage of the progress. Number between 0 and 100. |
performed |
Output only. Overall number of actions done by the orchestrator so far. |
failed |
Output only. Number of orchestration actions which failed so far. For more details, query the Cloud Logs. |
start |
Output only. Start time of the wave iteration. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: |
finish |
Output only. Finish time of the wave iteration. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: |
error |
Output only. Error thrown in the wave iteration. |
State
Possible states of the iteration.
Enums | |
---|---|
STATE_UNSPECIFIED |
Default value. This value is unused. |
PROCESSING |
Iteration is in progress. |
COMPLETED |
Iteration completed, with all actions being successful. |
FAILED |
Iteration completed, with failures. |
CANCELLED |
Iteration was explicitly cancelled. |
UNKNOWN |
Impossible to determine current state of the iteration. |
Methods |
|
---|---|
|
Creates a new policy orchestrator under the given folder resource. |
|
Deletes an existing policy orchestrator resource, parented by a folder. |
|
Retrieves an existing policy orchestrator, parented by a folder. |
|
Lists the policy orchestrators under the given parent folder resource. |
|
Updates an existing policy orchestrator, parented by a folder. |