published on Tuesday, Oct 13, 2026 by Pulumi
published on Tuesday, Oct 13, 2026 by Pulumi
RolloutSequence defines the desired order of upgrades.
To get more information about RolloutSequence, see:
- API documentation
- How-to Guides
Example Usage
Gke Hub Rollout Sequence Create
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
import * as time from "@pulumiverse/time";
const project = new gcp.organizations.Project("project", {
projectId: "rs-project",
name: "rs-project",
orgId: "123456789",
billingAccount: "000000-0000000-0000000-000000",
deletionPolicy: "DELETE",
});
const gkehub = new gcp.projects.Service("gkehub", {
project: project.projectId,
service: "gkehub.googleapis.com",
});
// wait for API enablement
const wait120Seconds = new time.Sleep("wait_120_seconds", {createDuration: "120s"}, {
dependsOn: [gkehub],
});
const _default = new gcp.gkehub.Fleet("default", {
displayName: "rs-fleet",
project: project.projectId,
}, {
dependsOn: [wait120Seconds],
});
const rolloutSequence = new gcp.gkehub.RolloutSequence("rollout_sequence", {
project: project.projectId,
rolloutSequenceId: "rs-basic",
displayName: "Basic Rollout Sequence",
ignoredClustersSelector: {
labelSelector: "resource.labels.ignored == 'true'",
},
stages: [{
fleetProjects: [pulumi.interpolate`projects/${project.projectId}`],
soakDuration: "1h",
}],
autoUpgradeConfig: {
rolloutCreationScope: {
upgradeTypes: [
"CONTROL_PLANE_MINOR",
"CONTROL_PLANE_PATCH",
"NODE_MINOR",
"NODE_PATCH",
],
},
},
}, {
dependsOn: [_default],
});
import pulumi
import pulumi_gcp as gcp
import pulumiverse_time as time
project = gcp.organizations.Project("project",
project_id="rs-project",
name="rs-project",
org_id="123456789",
billing_account="000000-0000000-0000000-000000",
deletion_policy="DELETE")
gkehub = gcp.projects.Service("gkehub",
project=project.project_id,
service="gkehub.googleapis.com")
# wait for API enablement
wait120_seconds = time.Sleep("wait_120_seconds", create_duration="120s",
opts = pulumi.ResourceOptions(depends_on=[gkehub]))
default = gcp.gkehub.Fleet("default",
display_name="rs-fleet",
project=project.project_id,
opts = pulumi.ResourceOptions(depends_on=[wait120_seconds]))
rollout_sequence = gcp.gkehub.RolloutSequence("rollout_sequence",
project=project.project_id,
rollout_sequence_id="rs-basic",
display_name="Basic Rollout Sequence",
ignored_clusters_selector={
"label_selector": "resource.labels.ignored == 'true'",
},
stages=[{
"fleet_projects": [project.project_id.apply(lambda project_id: f"projects/{project_id}")],
"soak_duration": "1h",
}],
auto_upgrade_config={
"rollout_creation_scope": {
"upgrade_types": [
"CONTROL_PLANE_MINOR",
"CONTROL_PLANE_PATCH",
"NODE_MINOR",
"NODE_PATCH",
],
},
},
opts = pulumi.ResourceOptions(depends_on=[default]))
package main
import (
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v10/go/gcp/gkehub"
"github.com/pulumi/pulumi-gcp/sdk/v10/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v10/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-time/sdk/go/time"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
project, err := organizations.NewProject(ctx, "project", &organizations.ProjectArgs{
ProjectId: pulumi.String("rs-project"),
Name: pulumi.String("rs-project"),
OrgId: pulumi.String("123456789"),
BillingAccount: pulumi.String("000000-0000000-0000000-000000"),
DeletionPolicy: pulumi.String("DELETE"),
})
if err != nil {
return err
}
gkehub2, err := projects.NewService(ctx, "gkehub", &projects.ServiceArgs{
Project: project.ProjectId,
Service: pulumi.String("gkehub.googleapis.com"),
})
if err != nil {
return err
}
// wait for API enablement
wait120Seconds, err := time.NewSleep(ctx, "wait_120_seconds", &time.SleepArgs{
CreateDuration: pulumi.String("120s"),
}, pulumi.DependsOn([]pulumi.Resource{
gkehub2,
}))
if err != nil {
return err
}
_default, err := gkehub.NewFleet(ctx, "default", &gkehub.FleetArgs{
DisplayName: pulumi.String("rs-fleet"),
Project: project.ProjectId,
}, pulumi.DependsOn([]pulumi.Resource{
wait120Seconds,
}))
if err != nil {
return err
}
_, err = gkehub.NewRolloutSequence(ctx, "rollout_sequence", &gkehub.RolloutSequenceArgs{
Project: project.ProjectId,
RolloutSequenceId: pulumi.String("rs-basic"),
DisplayName: pulumi.String("Basic Rollout Sequence"),
IgnoredClustersSelector: &gkehub.RolloutSequenceIgnoredClustersSelectorArgs{
LabelSelector: pulumi.String("resource.labels.ignored == 'true'"),
},
Stages: gkehub.RolloutSequenceStageArray{
&gkehub.RolloutSequenceStageArgs{
FleetProjects: pulumi.StringArray{
project.ProjectId.ApplyT(func(projectId string) (string, error) {
return fmt.Sprintf("projects/%v", projectId), nil
}).(pulumi.StringOutput),
},
SoakDuration: pulumi.String("1h"),
},
},
AutoUpgradeConfig: &gkehub.RolloutSequenceAutoUpgradeConfigArgs{
RolloutCreationScope: &gkehub.RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs{
UpgradeTypes: pulumi.StringArray{
pulumi.String("CONTROL_PLANE_MINOR"),
pulumi.String("CONTROL_PLANE_PATCH"),
pulumi.String("NODE_MINOR"),
pulumi.String("NODE_PATCH"),
},
},
},
}, pulumi.DependsOn([]pulumi.Resource{
_default,
}))
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Time = Pulumiverse.Time;
return await Deployment.RunAsync(() =>
{
var project = new Gcp.Organizations.Project("project", new()
{
ProjectId = "rs-project",
Name = "rs-project",
OrgId = "123456789",
BillingAccount = "000000-0000000-0000000-000000",
DeletionPolicy = "DELETE",
});
var gkehub = new Gcp.Projects.Service("gkehub", new()
{
Project = project.ProjectId,
ServiceName = "gkehub.googleapis.com",
});
// wait for API enablement
var wait120Seconds = new Time.Sleep("wait_120_seconds", new()
{
CreateDuration = "120s",
}, new CustomResourceOptions
{
DependsOn =
{
gkehub,
},
});
var @default = new Gcp.GkeHub.Fleet("default", new()
{
DisplayName = "rs-fleet",
Project = project.ProjectId,
}, new CustomResourceOptions
{
DependsOn =
{
wait120Seconds,
},
});
var rolloutSequence = new Gcp.GkeHub.RolloutSequence("rollout_sequence", new()
{
Project = project.ProjectId,
RolloutSequenceId = "rs-basic",
DisplayName = "Basic Rollout Sequence",
IgnoredClustersSelector = new Gcp.GkeHub.Inputs.RolloutSequenceIgnoredClustersSelectorArgs
{
LabelSelector = "resource.labels.ignored == 'true'",
},
Stages = new[]
{
new Gcp.GkeHub.Inputs.RolloutSequenceStageArgs
{
FleetProjects = new[]
{
project.ProjectId.Apply(projectId => $"projects/{projectId}"),
},
SoakDuration = "1h",
},
},
AutoUpgradeConfig = new Gcp.GkeHub.Inputs.RolloutSequenceAutoUpgradeConfigArgs
{
RolloutCreationScope = new Gcp.GkeHub.Inputs.RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs
{
UpgradeTypes = new[]
{
"CONTROL_PLANE_MINOR",
"CONTROL_PLANE_PATCH",
"NODE_MINOR",
"NODE_PATCH",
},
},
},
}, new CustomResourceOptions
{
DependsOn =
{
@default,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.Project;
import com.pulumi.gcp.organizations.ProjectArgs;
import com.pulumi.gcp.projects.Service;
import com.pulumi.gcp.projects.ServiceArgs;
import com.pulumiverse.time.Sleep;
import com.pulumiverse.time.SleepArgs;
import com.pulumi.gcp.gkehub.Fleet;
import com.pulumi.gcp.gkehub.FleetArgs;
import com.pulumi.gcp.gkehub.RolloutSequence;
import com.pulumi.gcp.gkehub.RolloutSequenceArgs;
import com.pulumi.gcp.gkehub.inputs.RolloutSequenceIgnoredClustersSelectorArgs;
import com.pulumi.gcp.gkehub.inputs.RolloutSequenceStageArgs;
import com.pulumi.gcp.gkehub.inputs.RolloutSequenceAutoUpgradeConfigArgs;
import com.pulumi.gcp.gkehub.inputs.RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var project = new Project("project", ProjectArgs.builder()
.projectId("rs-project")
.name("rs-project")
.orgId("123456789")
.billingAccount("000000-0000000-0000000-000000")
.deletionPolicy("DELETE")
.build());
var gkehub = new Service("gkehub", ServiceArgs.builder()
.project(project.projectId())
.service("gkehub.googleapis.com")
.build());
// wait for API enablement
var wait120Seconds = new Sleep("wait120Seconds", SleepArgs.builder()
.createDuration("120s")
.build(), CustomResourceOptions.builder()
.dependsOn(gkehub)
.build());
var default_ = new Fleet("default", FleetArgs.builder()
.displayName("rs-fleet")
.project(project.projectId())
.build(), CustomResourceOptions.builder()
.dependsOn(wait120Seconds)
.build());
var rolloutSequence = new RolloutSequence("rolloutSequence", RolloutSequenceArgs.builder()
.project(project.projectId())
.rolloutSequenceId("rs-basic")
.displayName("Basic Rollout Sequence")
.ignoredClustersSelector(RolloutSequenceIgnoredClustersSelectorArgs.builder()
.labelSelector("resource.labels.ignored == 'true'")
.build())
.stages(RolloutSequenceStageArgs.builder()
.fleetProjects(project.projectId().applyValue(_projectId -> String.format("projects/%s", _projectId)))
.soakDuration("1h")
.build())
.autoUpgradeConfig(RolloutSequenceAutoUpgradeConfigArgs.builder()
.rolloutCreationScope(RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs.builder()
.upgradeTypes(
"CONTROL_PLANE_MINOR",
"CONTROL_PLANE_PATCH",
"NODE_MINOR",
"NODE_PATCH")
.build())
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(default_)
.build());
}
}
resources:
project:
type: gcp:organizations:Project
properties:
projectId: rs-project
name: rs-project
orgId: '123456789'
billingAccount: 000000-0000000-0000000-000000
deletionPolicy: DELETE
gkehub:
type: gcp:projects:Service
properties:
project: ${project.projectId}
service: gkehub.googleapis.com
# wait for API enablement
wait120Seconds:
type: time:Sleep
name: wait_120_seconds
properties:
createDuration: 120s
options:
dependsOn:
- ${gkehub}
default:
type: gcp:gkehub:Fleet
properties:
displayName: rs-fleet
project: ${project.projectId}
options:
dependsOn:
- ${wait120Seconds}
rolloutSequence:
type: gcp:gkehub:RolloutSequence
name: rollout_sequence
properties:
project: ${project.projectId}
rolloutSequenceId: rs-basic
displayName: Basic Rollout Sequence
ignoredClustersSelector:
labelSelector: resource.labels.ignored == 'true'
stages:
- fleetProjects:
- projects/${project.projectId}
soakDuration: 1h
autoUpgradeConfig:
rolloutCreationScope:
upgradeTypes:
- CONTROL_PLANE_MINOR
- CONTROL_PLANE_PATCH
- NODE_MINOR
- NODE_PATCH
options:
dependsOn:
- ${default}
terraform {
required_providers {
gcp = {
source = "pulumi/gcp"
}
time = {
source = "pulumi/time"
}
}
}
resource "gcp_organizations_project" "project" {
lifecycle {
create_before_destroy = true
}
project_id = "rs-project"
name = "rs-project"
org_id = "123456789"
billing_account = "000000-0000000-0000000-000000"
deletion_policy = "DELETE"
}
resource "gcp_projects_service" "gkehub" {
lifecycle {
create_before_destroy = true
}
project = gcp_organizations_project.project.project_id
service = "gkehub.googleapis.com"
}
// wait for API enablement
resource "time_sleep" "wait_120_seconds" {
depends_on = [gcp_projects_service.gkehub]
lifecycle {
create_before_destroy = true
}
create_duration = "120s"
}
resource "gcp_gkehub_fleet" "default" {
depends_on = [time_sleep.wait_120_seconds]
lifecycle {
create_before_destroy = true
}
display_name = "rs-fleet"
project = gcp_organizations_project.project.project_id
}
resource "gcp_gkehub_rollout_sequence" "rollout_sequence" {
depends_on = [gcp_gkehub_fleet.default]
lifecycle {
create_before_destroy = true
}
project = gcp_organizations_project.project.project_id
rollout_sequence_id = "rs-basic"
display_name = "Basic Rollout Sequence"
ignored_clusters_selector = {
label_selector = "resource.labels.ignored == 'true'"
}
stages {
fleet_projects = ["projects/${gcp_organizations_project.project.project_id}"]
soak_duration = "1h"
}
auto_upgrade_config = {
rollout_creation_scope = {
upgrade_types = ["CONTROL_PLANE_MINOR", "CONTROL_PLANE_PATCH", "NODE_MINOR", "NODE_PATCH"]
}
}
}
Gke Hub Rollout Sequence Update
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
import * as time from "@pulumiverse/time";
const project = new gcp.organizations.Project("project", {
projectId: "rs-project",
name: "rs-project",
orgId: "123456789",
billingAccount: "000000-0000000-0000000-000000",
deletionPolicy: "DELETE",
});
const gkehub = new gcp.projects.Service("gkehub", {
project: project.projectId,
service: "gkehub.googleapis.com",
});
// wait for API enablement
const wait120Seconds = new time.Sleep("wait_120_seconds", {createDuration: "120s"}, {
dependsOn: [gkehub],
});
const _default = new gcp.gkehub.Fleet("default", {
displayName: "rs-fleet",
project: project.projectId,
}, {
dependsOn: [wait120Seconds],
});
const rolloutSequence = new gcp.gkehub.RolloutSequence("rollout_sequence", {
project: project.projectId,
rolloutSequenceId: "rs-basic",
displayName: "Modified Rollout Sequence",
ignoredClustersSelector: {
labelSelector: "resource.labels.ignored == 'super_true'",
},
stages: [
{
fleetProjects: [pulumi.interpolate`projects/${project.projectId}`],
clusterSelector: {
labelSelector: "resource.labels.canary=='true'",
},
soakDuration: "2h",
},
{
fleetProjects: [pulumi.interpolate`projects/${project.projectId}`],
soakDuration: "1d",
},
],
autoUpgradeConfig: {
rolloutCreationScope: {
upgradeTypes: [
"CONTROL_PLANE_PATCH",
"NODE_PATCH",
],
},
},
labels: {
some_key: "some_value",
},
}, {
dependsOn: [_default],
});
import pulumi
import pulumi_gcp as gcp
import pulumiverse_time as time
project = gcp.organizations.Project("project",
project_id="rs-project",
name="rs-project",
org_id="123456789",
billing_account="000000-0000000-0000000-000000",
deletion_policy="DELETE")
gkehub = gcp.projects.Service("gkehub",
project=project.project_id,
service="gkehub.googleapis.com")
# wait for API enablement
wait120_seconds = time.Sleep("wait_120_seconds", create_duration="120s",
opts = pulumi.ResourceOptions(depends_on=[gkehub]))
default = gcp.gkehub.Fleet("default",
display_name="rs-fleet",
project=project.project_id,
opts = pulumi.ResourceOptions(depends_on=[wait120_seconds]))
rollout_sequence = gcp.gkehub.RolloutSequence("rollout_sequence",
project=project.project_id,
rollout_sequence_id="rs-basic",
display_name="Modified Rollout Sequence",
ignored_clusters_selector={
"label_selector": "resource.labels.ignored == 'super_true'",
},
stages=[
{
"fleet_projects": [project.project_id.apply(lambda project_id: f"projects/{project_id}")],
"cluster_selector": {
"label_selector": "resource.labels.canary=='true'",
},
"soak_duration": "2h",
},
{
"fleet_projects": [project.project_id.apply(lambda project_id: f"projects/{project_id}")],
"soak_duration": "1d",
},
],
auto_upgrade_config={
"rollout_creation_scope": {
"upgrade_types": [
"CONTROL_PLANE_PATCH",
"NODE_PATCH",
],
},
},
labels={
"some_key": "some_value",
},
opts = pulumi.ResourceOptions(depends_on=[default]))
package main
import (
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v10/go/gcp/gkehub"
"github.com/pulumi/pulumi-gcp/sdk/v10/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v10/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-time/sdk/go/time"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
project, err := organizations.NewProject(ctx, "project", &organizations.ProjectArgs{
ProjectId: pulumi.String("rs-project"),
Name: pulumi.String("rs-project"),
OrgId: pulumi.String("123456789"),
BillingAccount: pulumi.String("000000-0000000-0000000-000000"),
DeletionPolicy: pulumi.String("DELETE"),
})
if err != nil {
return err
}
gkehub2, err := projects.NewService(ctx, "gkehub", &projects.ServiceArgs{
Project: project.ProjectId,
Service: pulumi.String("gkehub.googleapis.com"),
})
if err != nil {
return err
}
// wait for API enablement
wait120Seconds, err := time.NewSleep(ctx, "wait_120_seconds", &time.SleepArgs{
CreateDuration: pulumi.String("120s"),
}, pulumi.DependsOn([]pulumi.Resource{
gkehub2,
}))
if err != nil {
return err
}
_default, err := gkehub.NewFleet(ctx, "default", &gkehub.FleetArgs{
DisplayName: pulumi.String("rs-fleet"),
Project: project.ProjectId,
}, pulumi.DependsOn([]pulumi.Resource{
wait120Seconds,
}))
if err != nil {
return err
}
_, err = gkehub.NewRolloutSequence(ctx, "rollout_sequence", &gkehub.RolloutSequenceArgs{
Project: project.ProjectId,
RolloutSequenceId: pulumi.String("rs-basic"),
DisplayName: pulumi.String("Modified Rollout Sequence"),
IgnoredClustersSelector: &gkehub.RolloutSequenceIgnoredClustersSelectorArgs{
LabelSelector: pulumi.String("resource.labels.ignored == 'super_true'"),
},
Stages: gkehub.RolloutSequenceStageArray{
&gkehub.RolloutSequenceStageArgs{
FleetProjects: pulumi.StringArray{
project.ProjectId.ApplyT(func(projectId string) (string, error) {
return fmt.Sprintf("projects/%v", projectId), nil
}).(pulumi.StringOutput),
},
ClusterSelector: &gkehub.RolloutSequenceStageClusterSelectorArgs{
LabelSelector: pulumi.String("resource.labels.canary=='true'"),
},
SoakDuration: pulumi.String("2h"),
},
&gkehub.RolloutSequenceStageArgs{
FleetProjects: pulumi.StringArray{
project.ProjectId.ApplyT(func(projectId string) (string, error) {
return fmt.Sprintf("projects/%v", projectId), nil
}).(pulumi.StringOutput),
},
SoakDuration: pulumi.String("1d"),
},
},
AutoUpgradeConfig: &gkehub.RolloutSequenceAutoUpgradeConfigArgs{
RolloutCreationScope: &gkehub.RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs{
UpgradeTypes: pulumi.StringArray{
pulumi.String("CONTROL_PLANE_PATCH"),
pulumi.String("NODE_PATCH"),
},
},
},
Labels: pulumi.StringMap{
"some_key": pulumi.String("some_value"),
},
}, pulumi.DependsOn([]pulumi.Resource{
_default,
}))
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Time = Pulumiverse.Time;
return await Deployment.RunAsync(() =>
{
var project = new Gcp.Organizations.Project("project", new()
{
ProjectId = "rs-project",
Name = "rs-project",
OrgId = "123456789",
BillingAccount = "000000-0000000-0000000-000000",
DeletionPolicy = "DELETE",
});
var gkehub = new Gcp.Projects.Service("gkehub", new()
{
Project = project.ProjectId,
ServiceName = "gkehub.googleapis.com",
});
// wait for API enablement
var wait120Seconds = new Time.Sleep("wait_120_seconds", new()
{
CreateDuration = "120s",
}, new CustomResourceOptions
{
DependsOn =
{
gkehub,
},
});
var @default = new Gcp.GkeHub.Fleet("default", new()
{
DisplayName = "rs-fleet",
Project = project.ProjectId,
}, new CustomResourceOptions
{
DependsOn =
{
wait120Seconds,
},
});
var rolloutSequence = new Gcp.GkeHub.RolloutSequence("rollout_sequence", new()
{
Project = project.ProjectId,
RolloutSequenceId = "rs-basic",
DisplayName = "Modified Rollout Sequence",
IgnoredClustersSelector = new Gcp.GkeHub.Inputs.RolloutSequenceIgnoredClustersSelectorArgs
{
LabelSelector = "resource.labels.ignored == 'super_true'",
},
Stages = new[]
{
new Gcp.GkeHub.Inputs.RolloutSequenceStageArgs
{
FleetProjects = new[]
{
project.ProjectId.Apply(projectId => $"projects/{projectId}"),
},
ClusterSelector = new Gcp.GkeHub.Inputs.RolloutSequenceStageClusterSelectorArgs
{
LabelSelector = "resource.labels.canary=='true'",
},
SoakDuration = "2h",
},
new Gcp.GkeHub.Inputs.RolloutSequenceStageArgs
{
FleetProjects = new[]
{
project.ProjectId.Apply(projectId => $"projects/{projectId}"),
},
SoakDuration = "1d",
},
},
AutoUpgradeConfig = new Gcp.GkeHub.Inputs.RolloutSequenceAutoUpgradeConfigArgs
{
RolloutCreationScope = new Gcp.GkeHub.Inputs.RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs
{
UpgradeTypes = new[]
{
"CONTROL_PLANE_PATCH",
"NODE_PATCH",
},
},
},
Labels =
{
{ "some_key", "some_value" },
},
}, new CustomResourceOptions
{
DependsOn =
{
@default,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.Project;
import com.pulumi.gcp.organizations.ProjectArgs;
import com.pulumi.gcp.projects.Service;
import com.pulumi.gcp.projects.ServiceArgs;
import com.pulumiverse.time.Sleep;
import com.pulumiverse.time.SleepArgs;
import com.pulumi.gcp.gkehub.Fleet;
import com.pulumi.gcp.gkehub.FleetArgs;
import com.pulumi.gcp.gkehub.RolloutSequence;
import com.pulumi.gcp.gkehub.RolloutSequenceArgs;
import com.pulumi.gcp.gkehub.inputs.RolloutSequenceIgnoredClustersSelectorArgs;
import com.pulumi.gcp.gkehub.inputs.RolloutSequenceStageArgs;
import com.pulumi.gcp.gkehub.inputs.RolloutSequenceStageClusterSelectorArgs;
import com.pulumi.gcp.gkehub.inputs.RolloutSequenceAutoUpgradeConfigArgs;
import com.pulumi.gcp.gkehub.inputs.RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var project = new Project("project", ProjectArgs.builder()
.projectId("rs-project")
.name("rs-project")
.orgId("123456789")
.billingAccount("000000-0000000-0000000-000000")
.deletionPolicy("DELETE")
.build());
var gkehub = new Service("gkehub", ServiceArgs.builder()
.project(project.projectId())
.service("gkehub.googleapis.com")
.build());
// wait for API enablement
var wait120Seconds = new Sleep("wait120Seconds", SleepArgs.builder()
.createDuration("120s")
.build(), CustomResourceOptions.builder()
.dependsOn(gkehub)
.build());
var default_ = new Fleet("default", FleetArgs.builder()
.displayName("rs-fleet")
.project(project.projectId())
.build(), CustomResourceOptions.builder()
.dependsOn(wait120Seconds)
.build());
var rolloutSequence = new RolloutSequence("rolloutSequence", RolloutSequenceArgs.builder()
.project(project.projectId())
.rolloutSequenceId("rs-basic")
.displayName("Modified Rollout Sequence")
.ignoredClustersSelector(RolloutSequenceIgnoredClustersSelectorArgs.builder()
.labelSelector("resource.labels.ignored == 'super_true'")
.build())
.stages(
RolloutSequenceStageArgs.builder()
.fleetProjects(project.projectId().applyValue(_projectId -> String.format("projects/%s", _projectId)))
.clusterSelector(RolloutSequenceStageClusterSelectorArgs.builder()
.labelSelector("resource.labels.canary=='true'")
.build())
.soakDuration("2h")
.build(),
RolloutSequenceStageArgs.builder()
.fleetProjects(project.projectId().applyValue(_projectId -> String.format("projects/%s", _projectId)))
.soakDuration("1d")
.build())
.autoUpgradeConfig(RolloutSequenceAutoUpgradeConfigArgs.builder()
.rolloutCreationScope(RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs.builder()
.upgradeTypes(
"CONTROL_PLANE_PATCH",
"NODE_PATCH")
.build())
.build())
.labels(Map.of("some_key", "some_value"))
.build(), CustomResourceOptions.builder()
.dependsOn(default_)
.build());
}
}
resources:
project:
type: gcp:organizations:Project
properties:
projectId: rs-project
name: rs-project
orgId: '123456789'
billingAccount: 000000-0000000-0000000-000000
deletionPolicy: DELETE
gkehub:
type: gcp:projects:Service
properties:
project: ${project.projectId}
service: gkehub.googleapis.com
# wait for API enablement
wait120Seconds:
type: time:Sleep
name: wait_120_seconds
properties:
createDuration: 120s
options:
dependsOn:
- ${gkehub}
default:
type: gcp:gkehub:Fleet
properties:
displayName: rs-fleet
project: ${project.projectId}
options:
dependsOn:
- ${wait120Seconds}
rolloutSequence:
type: gcp:gkehub:RolloutSequence
name: rollout_sequence
properties:
project: ${project.projectId}
rolloutSequenceId: rs-basic
displayName: Modified Rollout Sequence
ignoredClustersSelector:
labelSelector: resource.labels.ignored == 'super_true'
stages:
- fleetProjects:
- projects/${project.projectId}
clusterSelector:
labelSelector: resource.labels.canary=='true'
soakDuration: 2h
- fleetProjects:
- projects/${project.projectId}
soakDuration: 1d
autoUpgradeConfig:
rolloutCreationScope:
upgradeTypes:
- CONTROL_PLANE_PATCH
- NODE_PATCH
labels:
some_key: some_value
options:
dependsOn:
- ${default}
terraform {
required_providers {
gcp = {
source = "pulumi/gcp"
}
time = {
source = "pulumi/time"
}
}
}
resource "gcp_organizations_project" "project" {
lifecycle {
create_before_destroy = true
}
project_id = "rs-project"
name = "rs-project"
org_id = "123456789"
billing_account = "000000-0000000-0000000-000000"
deletion_policy = "DELETE"
}
resource "gcp_projects_service" "gkehub" {
lifecycle {
create_before_destroy = true
}
project = gcp_organizations_project.project.project_id
service = "gkehub.googleapis.com"
}
// wait for API enablement
resource "time_sleep" "wait_120_seconds" {
depends_on = [gcp_projects_service.gkehub]
lifecycle {
create_before_destroy = true
}
create_duration = "120s"
}
resource "gcp_gkehub_fleet" "default" {
depends_on = [time_sleep.wait_120_seconds]
lifecycle {
create_before_destroy = true
}
display_name = "rs-fleet"
project = gcp_organizations_project.project.project_id
}
resource "gcp_gkehub_rollout_sequence" "rollout_sequence" {
depends_on = [gcp_gkehub_fleet.default]
lifecycle {
create_before_destroy = true
}
project = gcp_organizations_project.project.project_id
rollout_sequence_id = "rs-basic"
display_name = "Modified Rollout Sequence"
ignored_clusters_selector = {
label_selector = "resource.labels.ignored == 'super_true'"
}
stages {
fleet_projects = ["projects/${gcp_organizations_project.project.project_id}"]
cluster_selector = {
label_selector = "resource.labels.canary=='true'"
}
soak_duration = "2h"
}
stages {
fleet_projects = ["projects/${gcp_organizations_project.project.project_id}"]
soak_duration = "1d"
}
auto_upgrade_config = {
rollout_creation_scope = {
upgrade_types = ["CONTROL_PLANE_PATCH", "NODE_PATCH"]
}
}
labels = {
"some_key" = "some_value"
}
}
Gke Hub Rollout Sequence User Triggered Create
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
import * as time from "@pulumiverse/time";
const project = new gcp.organizations.Project("project", {
projectId: "rs-project",
name: "rs-project",
orgId: "123456789",
billingAccount: "000000-0000000-0000000-000000",
deletionPolicy: "DELETE",
});
// Enable APIs in a deterministic order to avoid inconsistent VCR recordings
const gkehub = new gcp.projects.Service("gkehub", {
project: project.projectId,
service: "gkehub.googleapis.com",
});
const container = new gcp.projects.Service("container", {
project: project.projectId,
service: "container.googleapis.com",
}, {
dependsOn: [gkehub],
});
const compute = new gcp.projects.Service("compute", {
project: project.projectId,
service: "compute.googleapis.com",
}, {
dependsOn: [container],
});
// wait for API enablement
const wait120Seconds = new time.Sleep("wait_120_seconds", {createDuration: "120s"}, {
dependsOn: [compute],
});
const _default = new gcp.gkehub.Fleet("default", {
displayName: "rs-fleet",
project: project.projectId,
}, {
dependsOn: [wait120Seconds],
});
const versions = gcp.container.getEngineVersionsOutput({
location: "us-central1-a",
project: project.projectId,
});
const primary = new gcp.container.Cluster("primary", {
project: project.projectId,
name: "rs-cluster",
location: "us-central1-a",
initialNodeCount: 1,
minMasterVersion: versions.apply(versions => versions.releaseChannelDefaultVersion?.REGULAR),
nodeVersion: versions.apply(versions => versions.releaseChannelDefaultVersion?.REGULAR),
deletionProtection: false,
releaseChannel: {
channel: "REGULAR",
},
resourceLabels: {
rs_test_cluster: "tf-test-_90221",
},
fleet: {
project: project.number,
},
}, {
dependsOn: [_default],
});
const rolloutSequence = new gcp.gkehub.RolloutSequence("rollout_sequence", {
project: project.projectId,
rolloutSequenceId: "rs-user-triggered",
displayName: "User Triggered Rollout Sequence",
minControlPlaneVersion: versions.apply(versions => versions.releaseChannelLatestVersion?.REGULAR),
ignoredClustersSelector: {
labelSelector: "!(has(resource.labels.rs_test_cluster) && resource.labels.rs_test_cluster == 'tf-test-_88987')",
},
stages: [{
fleetProjects: [pulumi.interpolate`projects/${project.projectId}`],
soakDuration: "30s",
}],
autoUpgradeConfig: {
rolloutCreationScope: {
upgradeTypes: [],
},
},
}, {
dependsOn: [primary],
});
import pulumi
import pulumi_gcp as gcp
import pulumiverse_time as time
project = gcp.organizations.Project("project",
project_id="rs-project",
name="rs-project",
org_id="123456789",
billing_account="000000-0000000-0000000-000000",
deletion_policy="DELETE")
# Enable APIs in a deterministic order to avoid inconsistent VCR recordings
gkehub = gcp.projects.Service("gkehub",
project=project.project_id,
service="gkehub.googleapis.com")
container = gcp.projects.Service("container",
project=project.project_id,
service="container.googleapis.com",
opts = pulumi.ResourceOptions(depends_on=[gkehub]))
compute = gcp.projects.Service("compute",
project=project.project_id,
service="compute.googleapis.com",
opts = pulumi.ResourceOptions(depends_on=[container]))
# wait for API enablement
wait120_seconds = time.Sleep("wait_120_seconds", create_duration="120s",
opts = pulumi.ResourceOptions(depends_on=[compute]))
default = gcp.gkehub.Fleet("default",
display_name="rs-fleet",
project=project.project_id,
opts = pulumi.ResourceOptions(depends_on=[wait120_seconds]))
versions = gcp.container.get_engine_versions_output(location="us-central1-a",
project=project.project_id)
primary = gcp.container.Cluster("primary",
project=project.project_id,
name="rs-cluster",
location="us-central1-a",
initial_node_count=1,
min_master_version=versions.release_channel_default_version["REGULAR"],
node_version=versions.release_channel_default_version["REGULAR"],
deletion_protection=False,
release_channel={
"channel": "REGULAR",
},
resource_labels={
"rs_test_cluster": "tf-test-_90221",
},
fleet={
"project": project.number,
},
opts = pulumi.ResourceOptions(depends_on=[default]))
rollout_sequence = gcp.gkehub.RolloutSequence("rollout_sequence",
project=project.project_id,
rollout_sequence_id="rs-user-triggered",
display_name="User Triggered Rollout Sequence",
min_control_plane_version=versions.release_channel_latest_version["REGULAR"],
ignored_clusters_selector={
"label_selector": "!(has(resource.labels.rs_test_cluster) && resource.labels.rs_test_cluster == 'tf-test-_88987')",
},
stages=[{
"fleet_projects": [project.project_id.apply(lambda project_id: f"projects/{project_id}")],
"soak_duration": "30s",
}],
auto_upgrade_config={
"rollout_creation_scope": {
"upgrade_types": [],
},
},
opts = pulumi.ResourceOptions(depends_on=[primary]))
package main
import (
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v10/go/gcp/container"
"github.com/pulumi/pulumi-gcp/sdk/v10/go/gcp/gkehub"
"github.com/pulumi/pulumi-gcp/sdk/v10/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v10/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-time/sdk/go/time"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
project, err := organizations.NewProject(ctx, "project", &organizations.ProjectArgs{
ProjectId: pulumi.String("rs-project"),
Name: pulumi.String("rs-project"),
OrgId: pulumi.String("123456789"),
BillingAccount: pulumi.String("000000-0000000-0000000-000000"),
DeletionPolicy: pulumi.String("DELETE"),
})
if err != nil {
return err
}
// Enable APIs in a deterministic order to avoid inconsistent VCR recordings
gkehub2, err := projects.NewService(ctx, "gkehub", &projects.ServiceArgs{
Project: project.ProjectId,
Service: pulumi.String("gkehub.googleapis.com"),
})
if err != nil {
return err
}
container2, err := projects.NewService(ctx, "container", &projects.ServiceArgs{
Project: project.ProjectId,
Service: pulumi.String("container.googleapis.com"),
}, pulumi.DependsOn([]pulumi.Resource{
gkehub2,
}))
if err != nil {
return err
}
compute, err := projects.NewService(ctx, "compute", &projects.ServiceArgs{
Project: project.ProjectId,
Service: pulumi.String("compute.googleapis.com"),
}, pulumi.DependsOn([]pulumi.Resource{
container2,
}))
if err != nil {
return err
}
// wait for API enablement
wait120Seconds, err := time.NewSleep(ctx, "wait_120_seconds", &time.SleepArgs{
CreateDuration: pulumi.String("120s"),
}, pulumi.DependsOn([]pulumi.Resource{
compute,
}))
if err != nil {
return err
}
_default, err := gkehub.NewFleet(ctx, "default", &gkehub.FleetArgs{
DisplayName: pulumi.String("rs-fleet"),
Project: project.ProjectId,
}, pulumi.DependsOn([]pulumi.Resource{
wait120Seconds,
}))
if err != nil {
return err
}
versions := container.GetEngineVersionsOutput(ctx, container.GetEngineVersionsOutputArgs{
Location: pulumi.String("us-central1-a"),
Project: project.ProjectId,
}, nil)
primary, err := container.NewCluster(ctx, "primary", &container.ClusterArgs{
Project: project.ProjectId,
Name: pulumi.String("rs-cluster"),
Location: pulumi.String("us-central1-a"),
InitialNodeCount: pulumi.Int(1),
MinMasterVersion: versions.ApplyT(func(versions container.GetEngineVersionsResult) (*string, error) {
return &versions.ReleaseChannelDefaultVersion.REGULAR, nil
}).(pulumi.StringPtrOutput),
NodeVersion: versions.ApplyT(func(versions container.GetEngineVersionsResult) (*string, error) {
return &versions.ReleaseChannelDefaultVersion.REGULAR, nil
}).(pulumi.StringPtrOutput),
DeletionProtection: pulumi.Bool(false),
ReleaseChannel: &container.ClusterReleaseChannelArgs{
Channel: pulumi.String("REGULAR"),
},
ResourceLabels: pulumi.StringMap{
"rs_test_cluster": pulumi.String("tf-test-_90221"),
},
Fleet: &container.ClusterFleetArgs{
Project: project.Number,
},
}, pulumi.DependsOn([]pulumi.Resource{
_default,
}))
if err != nil {
return err
}
_, err = gkehub.NewRolloutSequence(ctx, "rollout_sequence", &gkehub.RolloutSequenceArgs{
Project: project.ProjectId,
RolloutSequenceId: pulumi.String("rs-user-triggered"),
DisplayName: pulumi.String("User Triggered Rollout Sequence"),
MinControlPlaneVersion: versions.ApplyT(func(versions container.GetEngineVersionsResult) (*string, error) {
return &versions.ReleaseChannelLatestVersion.REGULAR, nil
}).(pulumi.StringPtrOutput),
IgnoredClustersSelector: &gkehub.RolloutSequenceIgnoredClustersSelectorArgs{
LabelSelector: pulumi.String("!(has(resource.labels.rs_test_cluster) && resource.labels.rs_test_cluster == 'tf-test-_88987')"),
},
Stages: gkehub.RolloutSequenceStageArray{
&gkehub.RolloutSequenceStageArgs{
FleetProjects: pulumi.StringArray{
project.ProjectId.ApplyT(func(projectId string) (string, error) {
return fmt.Sprintf("projects/%v", projectId), nil
}).(pulumi.StringOutput),
},
SoakDuration: pulumi.String("30s"),
},
},
AutoUpgradeConfig: &gkehub.RolloutSequenceAutoUpgradeConfigArgs{
RolloutCreationScope: &gkehub.RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs{
UpgradeTypes: pulumi.StringArray{},
},
},
}, pulumi.DependsOn([]pulumi.Resource{
primary,
}))
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
using Time = Pulumiverse.Time;
return await Deployment.RunAsync(() =>
{
var project = new Gcp.Organizations.Project("project", new()
{
ProjectId = "rs-project",
Name = "rs-project",
OrgId = "123456789",
BillingAccount = "000000-0000000-0000000-000000",
DeletionPolicy = "DELETE",
});
// Enable APIs in a deterministic order to avoid inconsistent VCR recordings
var gkehub = new Gcp.Projects.Service("gkehub", new()
{
Project = project.ProjectId,
ServiceName = "gkehub.googleapis.com",
});
var container = new Gcp.Projects.Service("container", new()
{
Project = project.ProjectId,
ServiceName = "container.googleapis.com",
}, new CustomResourceOptions
{
DependsOn =
{
gkehub,
},
});
var compute = new Gcp.Projects.Service("compute", new()
{
Project = project.ProjectId,
ServiceName = "compute.googleapis.com",
}, new CustomResourceOptions
{
DependsOn =
{
container,
},
});
// wait for API enablement
var wait120Seconds = new Time.Sleep("wait_120_seconds", new()
{
CreateDuration = "120s",
}, new CustomResourceOptions
{
DependsOn =
{
compute,
},
});
var @default = new Gcp.GkeHub.Fleet("default", new()
{
DisplayName = "rs-fleet",
Project = project.ProjectId,
}, new CustomResourceOptions
{
DependsOn =
{
wait120Seconds,
},
});
var versions = Gcp.Container.GetEngineVersions.Invoke(new()
{
Location = "us-central1-a",
Project = project.ProjectId,
});
var primary = new Gcp.Container.Cluster("primary", new()
{
Project = project.ProjectId,
Name = "rs-cluster",
Location = "us-central1-a",
InitialNodeCount = 1,
MinMasterVersion = versions.Apply(getEngineVersionsResult => getEngineVersionsResult.ReleaseChannelDefaultVersion?.REGULAR),
NodeVersion = versions.Apply(getEngineVersionsResult => getEngineVersionsResult.ReleaseChannelDefaultVersion?.REGULAR),
DeletionProtection = false,
ReleaseChannel = new Gcp.Container.Inputs.ClusterReleaseChannelArgs
{
Channel = "REGULAR",
},
ResourceLabels =
{
{ "rs_test_cluster", "tf-test-_90221" },
},
Fleet = new Gcp.Container.Inputs.ClusterFleetArgs
{
Project = project.Number,
},
}, new CustomResourceOptions
{
DependsOn =
{
@default,
},
});
var rolloutSequence = new Gcp.GkeHub.RolloutSequence("rollout_sequence", new()
{
Project = project.ProjectId,
RolloutSequenceId = "rs-user-triggered",
DisplayName = "User Triggered Rollout Sequence",
MinControlPlaneVersion = versions.Apply(getEngineVersionsResult => getEngineVersionsResult.ReleaseChannelLatestVersion?.REGULAR),
IgnoredClustersSelector = new Gcp.GkeHub.Inputs.RolloutSequenceIgnoredClustersSelectorArgs
{
LabelSelector = "!(has(resource.labels.rs_test_cluster) && resource.labels.rs_test_cluster == 'tf-test-_88987')",
},
Stages = new[]
{
new Gcp.GkeHub.Inputs.RolloutSequenceStageArgs
{
FleetProjects = new[]
{
project.ProjectId.Apply(projectId => $"projects/{projectId}"),
},
SoakDuration = "30s",
},
},
AutoUpgradeConfig = new Gcp.GkeHub.Inputs.RolloutSequenceAutoUpgradeConfigArgs
{
RolloutCreationScope = new Gcp.GkeHub.Inputs.RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs
{
UpgradeTypes = new() { },
},
},
}, new CustomResourceOptions
{
DependsOn =
{
primary,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.Project;
import com.pulumi.gcp.organizations.ProjectArgs;
import com.pulumi.gcp.projects.Service;
import com.pulumi.gcp.projects.ServiceArgs;
import com.pulumiverse.time.Sleep;
import com.pulumiverse.time.SleepArgs;
import com.pulumi.gcp.gkehub.Fleet;
import com.pulumi.gcp.gkehub.FleetArgs;
import com.pulumi.gcp.container.ContainerFunctions;
import com.pulumi.gcp.container.inputs.GetEngineVersionsArgs;
import com.pulumi.gcp.container.Cluster;
import com.pulumi.gcp.container.ClusterArgs;
import com.pulumi.gcp.container.inputs.ClusterReleaseChannelArgs;
import com.pulumi.gcp.container.inputs.ClusterFleetArgs;
import com.pulumi.gcp.gkehub.RolloutSequence;
import com.pulumi.gcp.gkehub.RolloutSequenceArgs;
import com.pulumi.gcp.gkehub.inputs.RolloutSequenceIgnoredClustersSelectorArgs;
import com.pulumi.gcp.gkehub.inputs.RolloutSequenceStageArgs;
import com.pulumi.gcp.gkehub.inputs.RolloutSequenceAutoUpgradeConfigArgs;
import com.pulumi.gcp.gkehub.inputs.RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var project = new Project("project", ProjectArgs.builder()
.projectId("rs-project")
.name("rs-project")
.orgId("123456789")
.billingAccount("000000-0000000-0000000-000000")
.deletionPolicy("DELETE")
.build());
// Enable APIs in a deterministic order to avoid inconsistent VCR recordings
var gkehub = new Service("gkehub", ServiceArgs.builder()
.project(project.projectId())
.service("gkehub.googleapis.com")
.build());
var container = new Service("container", ServiceArgs.builder()
.project(project.projectId())
.service("container.googleapis.com")
.build(), CustomResourceOptions.builder()
.dependsOn(gkehub)
.build());
var compute = new Service("compute", ServiceArgs.builder()
.project(project.projectId())
.service("compute.googleapis.com")
.build(), CustomResourceOptions.builder()
.dependsOn(container)
.build());
// wait for API enablement
var wait120Seconds = new Sleep("wait120Seconds", SleepArgs.builder()
.createDuration("120s")
.build(), CustomResourceOptions.builder()
.dependsOn(compute)
.build());
var default_ = new Fleet("default", FleetArgs.builder()
.displayName("rs-fleet")
.project(project.projectId())
.build(), CustomResourceOptions.builder()
.dependsOn(wait120Seconds)
.build());
final var versions = ContainerFunctions.getEngineVersions(GetEngineVersionsArgs.builder()
.location("us-central1-a")
.project(project.projectId())
.build());
var primary = new Cluster("primary", ClusterArgs.builder()
.project(project.projectId())
.name("rs-cluster")
.location("us-central1-a")
.initialNodeCount(1)
.minMasterVersion(versions.applyValue(_versions -> _versions.releaseChannelDefaultVersion().get("REGULAR")))
.nodeVersion(versions.applyValue(_versions -> _versions.releaseChannelDefaultVersion().get("REGULAR")))
.deletionProtection(false)
.releaseChannel(ClusterReleaseChannelArgs.builder()
.channel("REGULAR")
.build())
.resourceLabels(Map.of("rs_test_cluster", "tf-test-_90221"))
.fleet(ClusterFleetArgs.builder()
.project(project.number())
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(default_)
.build());
var rolloutSequence = new RolloutSequence("rolloutSequence", RolloutSequenceArgs.builder()
.project(project.projectId())
.rolloutSequenceId("rs-user-triggered")
.displayName("User Triggered Rollout Sequence")
.minControlPlaneVersion(versions.applyValue(_versions -> _versions.releaseChannelLatestVersion().get("REGULAR")))
.ignoredClustersSelector(RolloutSequenceIgnoredClustersSelectorArgs.builder()
.labelSelector("!(has(resource.labels.rs_test_cluster) && resource.labels.rs_test_cluster == 'tf-test-_88987')")
.build())
.stages(RolloutSequenceStageArgs.builder()
.fleetProjects(project.projectId().applyValue(_projectId -> String.format("projects/%s", _projectId)))
.soakDuration("30s")
.build())
.autoUpgradeConfig(RolloutSequenceAutoUpgradeConfigArgs.builder()
.rolloutCreationScope(RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs.builder()
.upgradeTypes()
.build())
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(primary)
.build());
}
}
resources:
project:
type: gcp:organizations:Project
properties:
projectId: rs-project
name: rs-project
orgId: '123456789'
billingAccount: 000000-0000000-0000000-000000
deletionPolicy: DELETE
# Enable APIs in a deterministic order to avoid inconsistent VCR recordings
gkehub:
type: gcp:projects:Service
properties:
project: ${project.projectId}
service: gkehub.googleapis.com
container:
type: gcp:projects:Service
properties:
project: ${project.projectId}
service: container.googleapis.com
options:
dependsOn:
- ${gkehub}
compute:
type: gcp:projects:Service
properties:
project: ${project.projectId}
service: compute.googleapis.com
options:
dependsOn:
- ${container}
# wait for API enablement
wait120Seconds:
type: time:Sleep
name: wait_120_seconds
properties:
createDuration: 120s
options:
dependsOn:
- ${compute}
default:
type: gcp:gkehub:Fleet
properties:
displayName: rs-fleet
project: ${project.projectId}
options:
dependsOn:
- ${wait120Seconds}
primary:
type: gcp:container:Cluster
properties:
project: ${project.projectId}
name: rs-cluster
location: us-central1-a
initialNodeCount: 1
minMasterVersion: ${versions.releaseChannelDefaultVersion.REGULAR}
nodeVersion: ${versions.releaseChannelDefaultVersion.REGULAR}
deletionProtection: false
releaseChannel:
channel: REGULAR
resourceLabels:
rs_test_cluster: tf-test-_90221
fleet:
project: ${project.number}
options:
dependsOn:
- ${default}
rolloutSequence:
type: gcp:gkehub:RolloutSequence
name: rollout_sequence
properties:
project: ${project.projectId}
rolloutSequenceId: rs-user-triggered
displayName: User Triggered Rollout Sequence
minControlPlaneVersion: ${versions.releaseChannelLatestVersion.REGULAR}
ignoredClustersSelector:
labelSelector: '!(has(resource.labels.rs_test_cluster) && resource.labels.rs_test_cluster == ''tf-test-_88987'')'
stages:
- fleetProjects:
- projects/${project.projectId}
soakDuration: 30s
autoUpgradeConfig:
rolloutCreationScope:
upgradeTypes: []
options:
dependsOn:
- ${primary}
variables:
versions:
fn::invoke:
function: gcp:container:getEngineVersions
arguments:
location: us-central1-a
project: ${project.projectId}
terraform {
required_providers {
gcp = {
source = "pulumi/gcp"
}
time = {
source = "pulumi/time"
}
}
}
data "gcp_container_engine_versions" "versions" {
location = "us-central1-a"
project = gcp_organizations_project.project.project_id
}
resource "gcp_organizations_project" "project" {
lifecycle {
create_before_destroy = true
}
project_id = "rs-project"
name = "rs-project"
org_id = "123456789"
billing_account = "000000-0000000-0000000-000000"
deletion_policy = "DELETE"
}
// Enable APIs in a deterministic order to avoid inconsistent VCR recordings
resource "gcp_projects_service" "gkehub" {
lifecycle {
create_before_destroy = true
}
project = gcp_organizations_project.project.project_id
service = "gkehub.googleapis.com"
}
resource "gcp_projects_service" "container" {
depends_on = [gcp_projects_service.gkehub]
lifecycle {
create_before_destroy = true
}
project = gcp_organizations_project.project.project_id
service = "container.googleapis.com"
}
resource "gcp_projects_service" "compute" {
depends_on = [gcp_projects_service.container]
lifecycle {
create_before_destroy = true
}
project = gcp_organizations_project.project.project_id
service = "compute.googleapis.com"
}
// wait for API enablement
resource "time_sleep" "wait_120_seconds" {
depends_on = [gcp_projects_service.compute]
lifecycle {
create_before_destroy = true
}
create_duration = "120s"
}
resource "gcp_gkehub_fleet" "default" {
depends_on = [time_sleep.wait_120_seconds]
lifecycle {
create_before_destroy = true
}
display_name = "rs-fleet"
project = gcp_organizations_project.project.project_id
}
resource "gcp_container_cluster" "primary" {
depends_on = [gcp_gkehub_fleet.default]
lifecycle {
create_before_destroy = true
}
project = gcp_organizations_project.project.project_id
name = "rs-cluster"
location = "us-central1-a"
initial_node_count = 1
min_master_version = data.gcp_container_engine_versions.versions.release_channel_default_version["REGULAR"]
node_version = data.gcp_container_engine_versions.versions.release_channel_default_version["REGULAR"]
deletion_protection = false
release_channel = {
channel = "REGULAR"
}
resource_labels = {
"rs_test_cluster" = "tf-test-_90221"
}
fleet = {
project = gcp_organizations_project.project.number
}
}
resource "gcp_gkehub_rollout_sequence" "rollout_sequence" {
depends_on = [gcp_container_cluster.primary]
lifecycle {
create_before_destroy = true
}
project = gcp_organizations_project.project.project_id
rollout_sequence_id = "rs-user-triggered"
display_name = "User Triggered Rollout Sequence"
min_control_plane_version = data.gcp_container_engine_versions.versions.release_channel_latest_version["REGULAR"]
ignored_clusters_selector = {
label_selector = "!(has(resource.labels.rs_test_cluster) && resource.labels.rs_test_cluster == 'tf-test-_88987')"
}
stages {
fleet_projects = ["projects/${gcp_organizations_project.project.project_id}"]
soak_duration = "30s"
}
auto_upgrade_config = {
rollout_creation_scope = {
upgrade_types = []
}
}
}
Create RolloutSequence Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new RolloutSequence(name: string, args: RolloutSequenceArgs, opts?: CustomResourceOptions);@overload
def RolloutSequence(resource_name: str,
args: RolloutSequenceArgs,
opts: Optional[ResourceOptions] = None)
@overload
def RolloutSequence(resource_name: str,
opts: Optional[ResourceOptions] = None,
rollout_sequence_id: Optional[str] = None,
stages: Optional[Sequence[RolloutSequenceStageArgs]] = None,
auto_upgrade_config: Optional[RolloutSequenceAutoUpgradeConfigArgs] = None,
deletion_policy: Optional[str] = None,
display_name: Optional[str] = None,
ignored_clusters_selector: Optional[RolloutSequenceIgnoredClustersSelectorArgs] = None,
labels: Optional[Mapping[str, str]] = None,
min_control_plane_version: Optional[str] = None,
min_node_version: Optional[str] = None,
project: Optional[str] = None)func NewRolloutSequence(ctx *Context, name string, args RolloutSequenceArgs, opts ...ResourceOption) (*RolloutSequence, error)public RolloutSequence(string name, RolloutSequenceArgs args, CustomResourceOptions? opts = null)
public RolloutSequence(String name, RolloutSequenceArgs args)
public RolloutSequence(String name, RolloutSequenceArgs args, CustomResourceOptions options)
type: gcp:gkehub:RolloutSequence
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "gcp_gkehub_rollout_sequence" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args RolloutSequenceArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args RolloutSequenceArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args RolloutSequenceArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args RolloutSequenceArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args RolloutSequenceArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var rolloutSequenceResource = new Gcp.GkeHub.RolloutSequence("rolloutSequenceResource", new()
{
RolloutSequenceId = "string",
Stages = new[]
{
new Gcp.GkeHub.Inputs.RolloutSequenceStageArgs
{
FleetProjects = new[]
{
"string",
},
ClusterSelector = new Gcp.GkeHub.Inputs.RolloutSequenceStageClusterSelectorArgs
{
LabelSelector = "string",
},
SoakDuration = "string",
},
},
AutoUpgradeConfig = new Gcp.GkeHub.Inputs.RolloutSequenceAutoUpgradeConfigArgs
{
RolloutCreationScope = new Gcp.GkeHub.Inputs.RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs
{
UpgradeTypes = new[]
{
"string",
},
},
},
DeletionPolicy = "string",
DisplayName = "string",
IgnoredClustersSelector = new Gcp.GkeHub.Inputs.RolloutSequenceIgnoredClustersSelectorArgs
{
LabelSelector = "string",
},
Labels =
{
{ "string", "string" },
},
MinControlPlaneVersion = "string",
MinNodeVersion = "string",
Project = "string",
});
example, err := gkehub.NewRolloutSequence(ctx, "rolloutSequenceResource", &gkehub.RolloutSequenceArgs{
RolloutSequenceId: pulumi.String("string"),
Stages: gkehub.RolloutSequenceStageArray{
&gkehub.RolloutSequenceStageArgs{
FleetProjects: pulumi.StringArray{
pulumi.String("string"),
},
ClusterSelector: &gkehub.RolloutSequenceStageClusterSelectorArgs{
LabelSelector: pulumi.String("string"),
},
SoakDuration: pulumi.String("string"),
},
},
AutoUpgradeConfig: &gkehub.RolloutSequenceAutoUpgradeConfigArgs{
RolloutCreationScope: &gkehub.RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs{
UpgradeTypes: pulumi.StringArray{
pulumi.String("string"),
},
},
},
DeletionPolicy: pulumi.String("string"),
DisplayName: pulumi.String("string"),
IgnoredClustersSelector: &gkehub.RolloutSequenceIgnoredClustersSelectorArgs{
LabelSelector: pulumi.String("string"),
},
Labels: pulumi.StringMap{
"string": pulumi.String("string"),
},
MinControlPlaneVersion: pulumi.String("string"),
MinNodeVersion: pulumi.String("string"),
Project: pulumi.String("string"),
})
resource "gcp_gkehub_rollout_sequence" "rolloutSequenceResource" {
lifecycle {
create_before_destroy = true
}
rollout_sequence_id = "string"
stages {
fleet_projects = ["string"]
cluster_selector = {
label_selector = "string"
}
soak_duration = "string"
}
auto_upgrade_config = {
rollout_creation_scope = {
upgrade_types = ["string"]
}
}
deletion_policy = "string"
display_name = "string"
ignored_clusters_selector = {
label_selector = "string"
}
labels = {
"string" = "string"
}
min_control_plane_version = "string"
min_node_version = "string"
project = "string"
}
var rolloutSequenceResource = new RolloutSequence("rolloutSequenceResource", RolloutSequenceArgs.builder()
.rolloutSequenceId("string")
.stages(RolloutSequenceStageArgs.builder()
.fleetProjects("string")
.clusterSelector(RolloutSequenceStageClusterSelectorArgs.builder()
.labelSelector("string")
.build())
.soakDuration("string")
.build())
.autoUpgradeConfig(RolloutSequenceAutoUpgradeConfigArgs.builder()
.rolloutCreationScope(RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs.builder()
.upgradeTypes("string")
.build())
.build())
.deletionPolicy("string")
.displayName("string")
.ignoredClustersSelector(RolloutSequenceIgnoredClustersSelectorArgs.builder()
.labelSelector("string")
.build())
.labels(Map.of("string", "string"))
.minControlPlaneVersion("string")
.minNodeVersion("string")
.project("string")
.build());
rollout_sequence_resource = gcp.gkehub.RolloutSequence("rolloutSequenceResource",
rollout_sequence_id="string",
stages=[{
"fleet_projects": ["string"],
"cluster_selector": {
"label_selector": "string",
},
"soak_duration": "string",
}],
auto_upgrade_config={
"rollout_creation_scope": {
"upgrade_types": ["string"],
},
},
deletion_policy="string",
display_name="string",
ignored_clusters_selector={
"label_selector": "string",
},
labels={
"string": "string",
},
min_control_plane_version="string",
min_node_version="string",
project="string")
const rolloutSequenceResource = new gcp.gkehub.RolloutSequence("rolloutSequenceResource", {
rolloutSequenceId: "string",
stages: [{
fleetProjects: ["string"],
clusterSelector: {
labelSelector: "string",
},
soakDuration: "string",
}],
autoUpgradeConfig: {
rolloutCreationScope: {
upgradeTypes: ["string"],
},
},
deletionPolicy: "string",
displayName: "string",
ignoredClustersSelector: {
labelSelector: "string",
},
labels: {
string: "string",
},
minControlPlaneVersion: "string",
minNodeVersion: "string",
project: "string",
});
type: gcp:gkehub:RolloutSequence
properties:
autoUpgradeConfig:
rolloutCreationScope:
upgradeTypes:
- string
deletionPolicy: string
displayName: string
ignoredClustersSelector:
labelSelector: string
labels:
string: string
minControlPlaneVersion: string
minNodeVersion: string
project: string
rolloutSequenceId: string
stages:
- clusterSelector:
labelSelector: string
fleetProjects:
- string
soakDuration: string
RolloutSequence Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The RolloutSequence resource accepts the following input properties:
- Rollout
Sequence stringId - The user-provided identifier of the RolloutSequence.
- Stages
List<Rollout
Sequence Stage> - Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- Auto
Upgrade RolloutConfig Sequence Auto Upgrade Config - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- Deletion
Policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- Display
Name string - Human readable display name of the Rollout Sequence.
- Ignored
Clusters RolloutSelector Sequence Ignored Clusters Selector - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- Labels Dictionary<string, string>
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- Min
Control stringPlane Version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - Min
Node stringVersion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Rollout
Sequence stringId - The user-provided identifier of the RolloutSequence.
- Stages
[]Rollout
Sequence Stage Args - Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- Auto
Upgrade RolloutConfig Sequence Auto Upgrade Config Args - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- Deletion
Policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- Display
Name string - Human readable display name of the Rollout Sequence.
- Ignored
Clusters RolloutSelector Sequence Ignored Clusters Selector Args - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- Labels map[string]string
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- Min
Control stringPlane Version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - Min
Node stringVersion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- rollout_
sequence_ stringid - The user-provided identifier of the RolloutSequence.
- stages list(object)
- Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- auto_
upgrade_ objectconfig - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- deletion_
policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- display_
name string - Human readable display name of the Rollout Sequence.
- ignored_
clusters_ objectselector - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- labels map(string)
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- min_
control_ stringplane_ version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - min_
node_ stringversion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- rollout
Sequence StringId - The user-provided identifier of the RolloutSequence.
- stages
List<Rollout
Sequence Stage> - Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- auto
Upgrade RolloutConfig Sequence Auto Upgrade Config - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- deletion
Policy String - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- display
Name String - Human readable display name of the Rollout Sequence.
- ignored
Clusters RolloutSelector Sequence Ignored Clusters Selector - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- labels Map<String,String>
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- min
Control StringPlane Version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - min
Node StringVersion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- rollout
Sequence stringId - The user-provided identifier of the RolloutSequence.
- stages
Rollout
Sequence Stage[] - Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- auto
Upgrade RolloutConfig Sequence Auto Upgrade Config - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- deletion
Policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- display
Name string - Human readable display name of the Rollout Sequence.
- ignored
Clusters RolloutSelector Sequence Ignored Clusters Selector - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- labels {[key: string]: string}
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- min
Control stringPlane Version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - min
Node stringVersion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- rollout_
sequence_ strid - The user-provided identifier of the RolloutSequence.
- stages
Sequence[Rollout
Sequence Stage Args] - Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- auto_
upgrade_ Rolloutconfig Sequence Auto Upgrade Config Args - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- deletion_
policy str - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- display_
name str - Human readable display name of the Rollout Sequence.
- ignored_
clusters_ Rolloutselector Sequence Ignored Clusters Selector Args - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- labels Mapping[str, str]
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- min_
control_ strplane_ version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - min_
node_ strversion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- rollout
Sequence StringId - The user-provided identifier of the RolloutSequence.
- stages List<Property Map>
- Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- auto
Upgrade Property MapConfig - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- deletion
Policy String - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- display
Name String - Human readable display name of the Rollout Sequence.
- ignored
Clusters Property MapSelector - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- labels Map<String>
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- min
Control StringPlane Version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - min
Node StringVersion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
Outputs
All input properties are implicitly available as output properties. Additionally, the RolloutSequence resource produces the following output properties:
- Create
Time string - The timestamp at which the Rollout Sequence was created.
- Delete
Time string - The timestamp at the Rollout Sequence was deleted.
- Effective
Labels Dictionary<string, string> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Etag string
- etag of the Rollout Sequence.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- The full resource name of the RolloutSequence.
- Operational
States List<RolloutSequence Operational State> - The operational state of the rollout sequence. Structure is documented below.
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Target
Control stringPlane Version - The current target control plane version.
- Target
Node stringVersion - The current target node version.
- Uid string
- Google-generated UUID for this resource.
- Update
Time string - The timestamp at which the Rollout Sequence was last updated.
- Create
Time string - The timestamp at which the Rollout Sequence was created.
- Delete
Time string - The timestamp at the Rollout Sequence was deleted.
- Effective
Labels map[string]string - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Etag string
- etag of the Rollout Sequence.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- The full resource name of the RolloutSequence.
- Operational
States []RolloutSequence Operational State - The operational state of the rollout sequence. Structure is documented below.
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- Target
Control stringPlane Version - The current target control plane version.
- Target
Node stringVersion - The current target node version.
- Uid string
- Google-generated UUID for this resource.
- Update
Time string - The timestamp at which the Rollout Sequence was last updated.
- create_
time string - The timestamp at which the Rollout Sequence was created.
- delete_
time string - The timestamp at the Rollout Sequence was deleted.
- effective_
labels map(string) - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag string
- etag of the Rollout Sequence.
- id string
- The provider-assigned unique ID for this managed resource.
- name string
- The full resource name of the RolloutSequence.
- operational_
states list(object) - The operational state of the rollout sequence. Structure is documented below.
- pulumi_
labels map(string) - The combination of labels configured directly on the resource and default labels configured on the provider.
- target_
control_ stringplane_ version - The current target control plane version.
- target_
node_ stringversion - The current target node version.
- uid string
- Google-generated UUID for this resource.
- update_
time string - The timestamp at which the Rollout Sequence was last updated.
- create
Time String - The timestamp at which the Rollout Sequence was created.
- delete
Time String - The timestamp at the Rollout Sequence was deleted.
- effective
Labels Map<String,String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag String
- etag of the Rollout Sequence.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- The full resource name of the RolloutSequence.
- operational
States List<RolloutSequence Operational State> - The operational state of the rollout sequence. Structure is documented below.
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- target
Control StringPlane Version - The current target control plane version.
- target
Node StringVersion - The current target node version.
- uid String
- Google-generated UUID for this resource.
- update
Time String - The timestamp at which the Rollout Sequence was last updated.
- create
Time string - The timestamp at which the Rollout Sequence was created.
- delete
Time string - The timestamp at the Rollout Sequence was deleted.
- effective
Labels {[key: string]: string} - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag string
- etag of the Rollout Sequence.
- id string
- The provider-assigned unique ID for this managed resource.
- name string
- The full resource name of the RolloutSequence.
- operational
States RolloutSequence Operational State[] - The operational state of the rollout sequence. Structure is documented below.
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- target
Control stringPlane Version - The current target control plane version.
- target
Node stringVersion - The current target node version.
- uid string
- Google-generated UUID for this resource.
- update
Time string - The timestamp at which the Rollout Sequence was last updated.
- create_
time str - The timestamp at which the Rollout Sequence was created.
- delete_
time str - The timestamp at the Rollout Sequence was deleted.
- effective_
labels Mapping[str, str] - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag str
- etag of the Rollout Sequence.
- id str
- The provider-assigned unique ID for this managed resource.
- name str
- The full resource name of the RolloutSequence.
- operational_
states Sequence[RolloutSequence Operational State] - The operational state of the rollout sequence. Structure is documented below.
- pulumi_
labels Mapping[str, str] - The combination of labels configured directly on the resource and default labels configured on the provider.
- target_
control_ strplane_ version - The current target control plane version.
- target_
node_ strversion - The current target node version.
- uid str
- Google-generated UUID for this resource.
- update_
time str - The timestamp at which the Rollout Sequence was last updated.
- create
Time String - The timestamp at which the Rollout Sequence was created.
- delete
Time String - The timestamp at the Rollout Sequence was deleted.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag String
- etag of the Rollout Sequence.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- The full resource name of the RolloutSequence.
- operational
States List<Property Map> - The operational state of the rollout sequence. Structure is documented below.
- pulumi
Labels Map<String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- target
Control StringPlane Version - The current target control plane version.
- target
Node StringVersion - The current target node version.
- uid String
- Google-generated UUID for this resource.
- update
Time String - The timestamp at which the Rollout Sequence was last updated.
Look up Existing RolloutSequence Resource
Get an existing RolloutSequence resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: RolloutSequenceState, opts?: CustomResourceOptions): RolloutSequence@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
auto_upgrade_config: Optional[RolloutSequenceAutoUpgradeConfigArgs] = None,
create_time: Optional[str] = None,
delete_time: Optional[str] = None,
deletion_policy: Optional[str] = None,
display_name: Optional[str] = None,
effective_labels: Optional[Mapping[str, str]] = None,
etag: Optional[str] = None,
ignored_clusters_selector: Optional[RolloutSequenceIgnoredClustersSelectorArgs] = None,
labels: Optional[Mapping[str, str]] = None,
min_control_plane_version: Optional[str] = None,
min_node_version: Optional[str] = None,
name: Optional[str] = None,
operational_states: Optional[Sequence[RolloutSequenceOperationalStateArgs]] = None,
project: Optional[str] = None,
pulumi_labels: Optional[Mapping[str, str]] = None,
rollout_sequence_id: Optional[str] = None,
stages: Optional[Sequence[RolloutSequenceStageArgs]] = None,
target_control_plane_version: Optional[str] = None,
target_node_version: Optional[str] = None,
uid: Optional[str] = None,
update_time: Optional[str] = None) -> RolloutSequencefunc GetRolloutSequence(ctx *Context, name string, id IDInput, state *RolloutSequenceState, opts ...ResourceOption) (*RolloutSequence, error)public static RolloutSequence Get(string name, Input<string> id, RolloutSequenceState? state, CustomResourceOptions? opts = null)public static RolloutSequence get(String name, Output<String> id, RolloutSequenceState state, CustomResourceOptions options)resources: _: type: gcp:gkehub:RolloutSequence get: id: ${id}import {
to = gcp_gkehub_rollout_sequence.example
id = "${id}"
}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Auto
Upgrade RolloutConfig Sequence Auto Upgrade Config - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- Create
Time string - The timestamp at which the Rollout Sequence was created.
- Delete
Time string - The timestamp at the Rollout Sequence was deleted.
- Deletion
Policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- Display
Name string - Human readable display name of the Rollout Sequence.
- Effective
Labels Dictionary<string, string> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Etag string
- etag of the Rollout Sequence.
- Ignored
Clusters RolloutSelector Sequence Ignored Clusters Selector - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- Labels Dictionary<string, string>
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- Min
Control stringPlane Version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - Min
Node stringVersion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - Name string
- The full resource name of the RolloutSequence.
- Operational
States List<RolloutSequence Operational State> - The operational state of the rollout sequence. Structure is documented below.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Rollout
Sequence stringId - The user-provided identifier of the RolloutSequence.
- Stages
List<Rollout
Sequence Stage> - Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- Target
Control stringPlane Version - The current target control plane version.
- Target
Node stringVersion - The current target node version.
- Uid string
- Google-generated UUID for this resource.
- Update
Time string - The timestamp at which the Rollout Sequence was last updated.
- Auto
Upgrade RolloutConfig Sequence Auto Upgrade Config Args - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- Create
Time string - The timestamp at which the Rollout Sequence was created.
- Delete
Time string - The timestamp at the Rollout Sequence was deleted.
- Deletion
Policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- Display
Name string - Human readable display name of the Rollout Sequence.
- Effective
Labels map[string]string - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Etag string
- etag of the Rollout Sequence.
- Ignored
Clusters RolloutSelector Sequence Ignored Clusters Selector Args - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- Labels map[string]string
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- Min
Control stringPlane Version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - Min
Node stringVersion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - Name string
- The full resource name of the RolloutSequence.
- Operational
States []RolloutSequence Operational State Args - The operational state of the rollout sequence. Structure is documented below.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- Rollout
Sequence stringId - The user-provided identifier of the RolloutSequence.
- Stages
[]Rollout
Sequence Stage Args - Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- Target
Control stringPlane Version - The current target control plane version.
- Target
Node stringVersion - The current target node version.
- Uid string
- Google-generated UUID for this resource.
- Update
Time string - The timestamp at which the Rollout Sequence was last updated.
- auto_
upgrade_ objectconfig - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- create_
time string - The timestamp at which the Rollout Sequence was created.
- delete_
time string - The timestamp at the Rollout Sequence was deleted.
- deletion_
policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- display_
name string - Human readable display name of the Rollout Sequence.
- effective_
labels map(string) - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag string
- etag of the Rollout Sequence.
- ignored_
clusters_ objectselector - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- labels map(string)
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- min_
control_ stringplane_ version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - min_
node_ stringversion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - name string
- The full resource name of the RolloutSequence.
- operational_
states list(object) - The operational state of the rollout sequence. Structure is documented below.
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi_
labels map(string) - The combination of labels configured directly on the resource and default labels configured on the provider.
- rollout_
sequence_ stringid - The user-provided identifier of the RolloutSequence.
- stages list(object)
- Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- target_
control_ stringplane_ version - The current target control plane version.
- target_
node_ stringversion - The current target node version.
- uid string
- Google-generated UUID for this resource.
- update_
time string - The timestamp at which the Rollout Sequence was last updated.
- auto
Upgrade RolloutConfig Sequence Auto Upgrade Config - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- create
Time String - The timestamp at which the Rollout Sequence was created.
- delete
Time String - The timestamp at the Rollout Sequence was deleted.
- deletion
Policy String - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- display
Name String - Human readable display name of the Rollout Sequence.
- effective
Labels Map<String,String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag String
- etag of the Rollout Sequence.
- ignored
Clusters RolloutSelector Sequence Ignored Clusters Selector - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- labels Map<String,String>
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- min
Control StringPlane Version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - min
Node StringVersion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - name String
- The full resource name of the RolloutSequence.
- operational
States List<RolloutSequence Operational State> - The operational state of the rollout sequence. Structure is documented below.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- rollout
Sequence StringId - The user-provided identifier of the RolloutSequence.
- stages
List<Rollout
Sequence Stage> - Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- target
Control StringPlane Version - The current target control plane version.
- target
Node StringVersion - The current target node version.
- uid String
- Google-generated UUID for this resource.
- update
Time String - The timestamp at which the Rollout Sequence was last updated.
- auto
Upgrade RolloutConfig Sequence Auto Upgrade Config - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- create
Time string - The timestamp at which the Rollout Sequence was created.
- delete
Time string - The timestamp at the Rollout Sequence was deleted.
- deletion
Policy string - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- display
Name string - Human readable display name of the Rollout Sequence.
- effective
Labels {[key: string]: string} - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag string
- etag of the Rollout Sequence.
- ignored
Clusters RolloutSelector Sequence Ignored Clusters Selector - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- labels {[key: string]: string}
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- min
Control stringPlane Version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - min
Node stringVersion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - name string
- The full resource name of the RolloutSequence.
- operational
States RolloutSequence Operational State[] - The operational state of the rollout sequence. Structure is documented below.
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- rollout
Sequence stringId - The user-provided identifier of the RolloutSequence.
- stages
Rollout
Sequence Stage[] - Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- target
Control stringPlane Version - The current target control plane version.
- target
Node stringVersion - The current target node version.
- uid string
- Google-generated UUID for this resource.
- update
Time string - The timestamp at which the Rollout Sequence was last updated.
- auto_
upgrade_ Rolloutconfig Sequence Auto Upgrade Config Args - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- create_
time str - The timestamp at which the Rollout Sequence was created.
- delete_
time str - The timestamp at the Rollout Sequence was deleted.
- deletion_
policy str - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- display_
name str - Human readable display name of the Rollout Sequence.
- effective_
labels Mapping[str, str] - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag str
- etag of the Rollout Sequence.
- ignored_
clusters_ Rolloutselector Sequence Ignored Clusters Selector Args - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- labels Mapping[str, str]
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- min_
control_ strplane_ version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - min_
node_ strversion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - name str
- The full resource name of the RolloutSequence.
- operational_
states Sequence[RolloutSequence Operational State Args] - The operational state of the rollout sequence. Structure is documented below.
- project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi_
labels Mapping[str, str] - The combination of labels configured directly on the resource and default labels configured on the provider.
- rollout_
sequence_ strid - The user-provided identifier of the RolloutSequence.
- stages
Sequence[Rollout
Sequence Stage Args] - Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- target_
control_ strplane_ version - The current target control plane version.
- target_
node_ strversion - The current target node version.
- uid str
- Google-generated UUID for this resource.
- update_
time str - The timestamp at which the Rollout Sequence was last updated.
- auto
Upgrade Property MapConfig - Configuration for automatic upgrades. If not specified, the system applies default behavior. Structure is documented below.
- create
Time String - The timestamp at which the Rollout Sequence was created.
- delete
Time String - The timestamp at the Rollout Sequence was deleted.
- deletion
Policy String - Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
- display
Name String - Human readable display name of the Rollout Sequence.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag String
- etag of the Rollout Sequence.
- ignored
Clusters Property MapSelector - Selector for clusters to exclude from the Rollout Sequence. Structure is documented below.
- labels Map<String>
Labels for this Rollout Sequence.
Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
effectiveLabelsfor all of the labels present on the resource.- min
Control StringPlane Version - Minimum control plane version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - min
Node StringVersion - Minimum node version that the clusters in the sequence should be upgraded to.
Setting this field will cause the creation of a rollout to the specified version.
Any rollout of the same type already running on the first stage of the sequence will be cancelled to allow for the creation of the new rollout.
Should be a valid semantic version.
Version aliases are supported, as described in the cluster version docs.
Note that the
latestand-aliases are not supported for this field. Supported formats:1.X,1.X.Y,1.X.Y-gke.N. - name String
- The full resource name of the RolloutSequence.
- operational
States List<Property Map> - The operational state of the rollout sequence. Structure is documented below.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels Map<String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- rollout
Sequence StringId - The user-provided identifier of the RolloutSequence.
- stages List<Property Map>
- Ordered list of stages that constitute this Rollout Sequence. Structure is documented below.
- target
Control StringPlane Version - The current target control plane version.
- target
Node StringVersion - The current target node version.
- uid String
- Google-generated UUID for this resource.
- update
Time String - The timestamp at which the Rollout Sequence was last updated.
Supporting Types
RolloutSequenceAutoUpgradeConfig, RolloutSequenceAutoUpgradeConfigArgs
- Rollout
Creation RolloutScope Sequence Auto Upgrade Config Rollout Creation Scope - Specifies the scope of automation for the creation of rollouts. Represents the types of rollouts (version upgrades) the sequence should initiate automatically. If this field is not specified, it defaults to all types. If this field is specified, but the nested upgradeTypes field is empty, most automatic rollouts are disabled for this sequence. Exceptions are rollouts enforcing our security policies (e.g. such as end-of-support and outdated control plane patch enforcements). These policy enforcements cannot be disabled. Structure is documented below.
- Rollout
Creation RolloutScope Sequence Auto Upgrade Config Rollout Creation Scope - Specifies the scope of automation for the creation of rollouts. Represents the types of rollouts (version upgrades) the sequence should initiate automatically. If this field is not specified, it defaults to all types. If this field is specified, but the nested upgradeTypes field is empty, most automatic rollouts are disabled for this sequence. Exceptions are rollouts enforcing our security policies (e.g. such as end-of-support and outdated control plane patch enforcements). These policy enforcements cannot be disabled. Structure is documented below.
- rollout_
creation_ objectscope - Specifies the scope of automation for the creation of rollouts. Represents the types of rollouts (version upgrades) the sequence should initiate automatically. If this field is not specified, it defaults to all types. If this field is specified, but the nested upgradeTypes field is empty, most automatic rollouts are disabled for this sequence. Exceptions are rollouts enforcing our security policies (e.g. such as end-of-support and outdated control plane patch enforcements). These policy enforcements cannot be disabled. Structure is documented below.
- rollout
Creation RolloutScope Sequence Auto Upgrade Config Rollout Creation Scope - Specifies the scope of automation for the creation of rollouts. Represents the types of rollouts (version upgrades) the sequence should initiate automatically. If this field is not specified, it defaults to all types. If this field is specified, but the nested upgradeTypes field is empty, most automatic rollouts are disabled for this sequence. Exceptions are rollouts enforcing our security policies (e.g. such as end-of-support and outdated control plane patch enforcements). These policy enforcements cannot be disabled. Structure is documented below.
- rollout
Creation RolloutScope Sequence Auto Upgrade Config Rollout Creation Scope - Specifies the scope of automation for the creation of rollouts. Represents the types of rollouts (version upgrades) the sequence should initiate automatically. If this field is not specified, it defaults to all types. If this field is specified, but the nested upgradeTypes field is empty, most automatic rollouts are disabled for this sequence. Exceptions are rollouts enforcing our security policies (e.g. such as end-of-support and outdated control plane patch enforcements). These policy enforcements cannot be disabled. Structure is documented below.
- rollout_
creation_ Rolloutscope Sequence Auto Upgrade Config Rollout Creation Scope - Specifies the scope of automation for the creation of rollouts. Represents the types of rollouts (version upgrades) the sequence should initiate automatically. If this field is not specified, it defaults to all types. If this field is specified, but the nested upgradeTypes field is empty, most automatic rollouts are disabled for this sequence. Exceptions are rollouts enforcing our security policies (e.g. such as end-of-support and outdated control plane patch enforcements). These policy enforcements cannot be disabled. Structure is documented below.
- rollout
Creation Property MapScope - Specifies the scope of automation for the creation of rollouts. Represents the types of rollouts (version upgrades) the sequence should initiate automatically. If this field is not specified, it defaults to all types. If this field is specified, but the nested upgradeTypes field is empty, most automatic rollouts are disabled for this sequence. Exceptions are rollouts enforcing our security policies (e.g. such as end-of-support and outdated control plane patch enforcements). These policy enforcements cannot be disabled. Structure is documented below.
RolloutSequenceAutoUpgradeConfigRolloutCreationScope, RolloutSequenceAutoUpgradeConfigRolloutCreationScopeArgs
- Upgrade
Types List<string> - The list of enabled upgrade types.
Current valid values are
CONTROL_PLANE_MINOR,CONTROL_PLANE_PATCH,NODE_MINOR, andNODE_PATCH.
- Upgrade
Types []string - The list of enabled upgrade types.
Current valid values are
CONTROL_PLANE_MINOR,CONTROL_PLANE_PATCH,NODE_MINOR, andNODE_PATCH.
- upgrade_
types list(string) - The list of enabled upgrade types.
Current valid values are
CONTROL_PLANE_MINOR,CONTROL_PLANE_PATCH,NODE_MINOR, andNODE_PATCH.
- upgrade
Types List<String> - The list of enabled upgrade types.
Current valid values are
CONTROL_PLANE_MINOR,CONTROL_PLANE_PATCH,NODE_MINOR, andNODE_PATCH.
- upgrade
Types string[] - The list of enabled upgrade types.
Current valid values are
CONTROL_PLANE_MINOR,CONTROL_PLANE_PATCH,NODE_MINOR, andNODE_PATCH.
- upgrade_
types Sequence[str] - The list of enabled upgrade types.
Current valid values are
CONTROL_PLANE_MINOR,CONTROL_PLANE_PATCH,NODE_MINOR, andNODE_PATCH.
- upgrade
Types List<String> - The list of enabled upgrade types.
Current valid values are
CONTROL_PLANE_MINOR,CONTROL_PLANE_PATCH,NODE_MINOR, andNODE_PATCH.
RolloutSequenceIgnoredClustersSelector, RolloutSequenceIgnoredClustersSelectorArgs
- Label
Selector string - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
- Label
Selector string - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
- label_
selector string - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
- label
Selector String - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
- label
Selector string - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
- label_
selector str - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
- label
Selector String - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
RolloutSequenceOperationalState, RolloutSequenceOperationalStateArgs
- State string
- (Output) The state of the rollout sequence.
- State string
- (Output) The state of the rollout sequence.
- state string
- (Output) The state of the rollout sequence.
- state String
- (Output) The state of the rollout sequence.
- state string
- (Output) The state of the rollout sequence.
- state str
- (Output) The state of the rollout sequence.
- state String
- (Output) The state of the rollout sequence.
RolloutSequenceStage, RolloutSequenceStageArgs
- Fleet
Projects List<string> - List of Fleet projects to select the clusters from. Expected format: projects/{project}
- Cluster
Selector RolloutSequence Stage Cluster Selector - Filter to select a subset of clusters from the specified Fleet projects. If not specified, all clusters in the fleet projects are selected. Structure is documented below.
- Soak
Duration string - Soak time after upgrading all the clusters in the stage. Has to be specified in seconds, minutes, hours or days.
- Fleet
Projects []string - List of Fleet projects to select the clusters from. Expected format: projects/{project}
- Cluster
Selector RolloutSequence Stage Cluster Selector - Filter to select a subset of clusters from the specified Fleet projects. If not specified, all clusters in the fleet projects are selected. Structure is documented below.
- Soak
Duration string - Soak time after upgrading all the clusters in the stage. Has to be specified in seconds, minutes, hours or days.
- fleet_
projects list(string) - List of Fleet projects to select the clusters from. Expected format: projects/{project}
- cluster_
selector object - Filter to select a subset of clusters from the specified Fleet projects. If not specified, all clusters in the fleet projects are selected. Structure is documented below.
- soak_
duration string - Soak time after upgrading all the clusters in the stage. Has to be specified in seconds, minutes, hours or days.
- fleet
Projects List<String> - List of Fleet projects to select the clusters from. Expected format: projects/{project}
- cluster
Selector RolloutSequence Stage Cluster Selector - Filter to select a subset of clusters from the specified Fleet projects. If not specified, all clusters in the fleet projects are selected. Structure is documented below.
- soak
Duration String - Soak time after upgrading all the clusters in the stage. Has to be specified in seconds, minutes, hours or days.
- fleet
Projects string[] - List of Fleet projects to select the clusters from. Expected format: projects/{project}
- cluster
Selector RolloutSequence Stage Cluster Selector - Filter to select a subset of clusters from the specified Fleet projects. If not specified, all clusters in the fleet projects are selected. Structure is documented below.
- soak
Duration string - Soak time after upgrading all the clusters in the stage. Has to be specified in seconds, minutes, hours or days.
- fleet_
projects Sequence[str] - List of Fleet projects to select the clusters from. Expected format: projects/{project}
- cluster_
selector RolloutSequence Stage Cluster Selector - Filter to select a subset of clusters from the specified Fleet projects. If not specified, all clusters in the fleet projects are selected. Structure is documented below.
- soak_
duration str - Soak time after upgrading all the clusters in the stage. Has to be specified in seconds, minutes, hours or days.
- fleet
Projects List<String> - List of Fleet projects to select the clusters from. Expected format: projects/{project}
- cluster
Selector Property Map - Filter to select a subset of clusters from the specified Fleet projects. If not specified, all clusters in the fleet projects are selected. Structure is documented below.
- soak
Duration String - Soak time after upgrading all the clusters in the stage. Has to be specified in seconds, minutes, hours or days.
RolloutSequenceStageClusterSelector, RolloutSequenceStageClusterSelectorArgs
- Label
Selector string - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
- Label
Selector string - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
- label_
selector string - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
- label
Selector String - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
- label
Selector string - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
- label_
selector str - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
- label
Selector String - The label selector must be a valid CEL (Common Expression Language) expression which evaluates resource.labels.
Import
RolloutSequence can be imported using any of these accepted formats:
projects/{{project}}/locations/global/rolloutSequences/{{rollout_sequence_id}}{{project}}/{{rollout_sequence_id}}{{rollout_sequence_id}}
When using the pulumi import command, RolloutSequence can be imported using one of the formats above. For example:
$ pulumi import gcp:gkehub/rolloutSequence:RolloutSequence default projects/{{project}}/locations/global/rolloutSequences/{{rollout_sequence_id}}
$ pulumi import gcp:gkehub/rolloutSequence:RolloutSequence default {{project}}/{{rollout_sequence_id}}
$ pulumi import gcp:gkehub/rolloutSequence:RolloutSequence default {{rollout_sequence_id}}
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- Google Cloud (GCP) Classic pulumi/pulumi-gcp
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
google-betaTerraform Provider.
published on Tuesday, Oct 13, 2026 by Pulumi