published on Wednesday, Apr 1, 2026 by Pulumi
published on Wednesday, Apr 1, 2026 by Pulumi
An environment for running orchestration tasks.
Environments run Apache Airflow software on Google infrastructure.
To get more information about Environments, see:
- Cloud Composer documentation
- Cloud Composer API documentation
- How-to Guides (Cloud Composer 2)
- How-to Guides (Cloud Composer 3)
- Apache Airflow Documentation
Note Cloud Composer 1 is in the post-maintenance mode. Google does not release any further updates to Cloud Composer 1, including new versions of Airflow, bugfixes, and security updates. We recommend using Cloud Composer 2 or Cloud Composer 3 instead.
We STRONGLY recommend you read the GCP guides as the Environment resource requires a long deployment process and involves several layers of GCP infrastructure, including a Kubernetes Engine cluster, Cloud Storage, and Compute networking resources. Due to limitations of the API, Pulumi will not be able to find or manage many of these underlying resources automatically. In particular:
- Creating or updating an environment resource can take up to one hour. In addition, GCP may only detect some errors in the configuration when they are used (e.g., ~40-50 minutes into the creation process), and is prone to limited error reporting. If you encounter confusing or uninformative errors, please verify your configuration is valid against GCP Cloud Composer before filing bugs against the provider.
- Environments create Google Cloud Storage buckets that are not automatically cleaned up on environment deletion. More about Composer’s use of Cloud Storage.
- Please review the known issues for Composer if you are having problems.***
Example Usage
Basic Usage (Cloud Composer 3)
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const test = new gcp.composer.Environment("test", {
name: "example-composer-env",
region: "us-central1",
config: {
softwareConfig: {
imageVersion: "composer-3-airflow-2",
},
},
});
import pulumi
import pulumi_gcp as gcp
test = gcp.composer.Environment("test",
name="example-composer-env",
region="us-central1",
config={
"software_config": {
"image_version": "composer-3-airflow-2",
},
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/composer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := composer.NewEnvironment(ctx, "test", &composer.EnvironmentArgs{
Name: pulumi.String("example-composer-env"),
Region: pulumi.String("us-central1"),
Config: &composer.EnvironmentConfigArgs{
SoftwareConfig: &composer.EnvironmentConfigSoftwareConfigArgs{
ImageVersion: pulumi.String("composer-3-airflow-2"),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var test = new Gcp.Composer.Environment("test", new()
{
Name = "example-composer-env",
Region = "us-central1",
Config = new Gcp.Composer.Inputs.EnvironmentConfigArgs
{
SoftwareConfig = new Gcp.Composer.Inputs.EnvironmentConfigSoftwareConfigArgs
{
ImageVersion = "composer-3-airflow-2",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.composer.Environment;
import com.pulumi.gcp.composer.EnvironmentArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigSoftwareConfigArgs;
import java.util.List;
import java.util.ArrayList;
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 test = new Environment("test", EnvironmentArgs.builder()
.name("example-composer-env")
.region("us-central1")
.config(EnvironmentConfigArgs.builder()
.softwareConfig(EnvironmentConfigSoftwareConfigArgs.builder()
.imageVersion("composer-3-airflow-2")
.build())
.build())
.build());
}
}
resources:
test:
type: gcp:composer:Environment
properties:
name: example-composer-env
region: us-central1
config:
softwareConfig:
imageVersion: composer-3-airflow-2
Basic Usage (Cloud Composer 2)
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const test = new gcp.composer.Environment("test", {
name: "example-composer-env",
region: "us-central1",
config: {
softwareConfig: {
imageVersion: "composer-2-airflow-2",
},
},
});
import pulumi
import pulumi_gcp as gcp
test = gcp.composer.Environment("test",
name="example-composer-env",
region="us-central1",
config={
"software_config": {
"image_version": "composer-2-airflow-2",
},
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/composer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := composer.NewEnvironment(ctx, "test", &composer.EnvironmentArgs{
Name: pulumi.String("example-composer-env"),
Region: pulumi.String("us-central1"),
Config: &composer.EnvironmentConfigArgs{
SoftwareConfig: &composer.EnvironmentConfigSoftwareConfigArgs{
ImageVersion: pulumi.String("composer-2-airflow-2"),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var test = new Gcp.Composer.Environment("test", new()
{
Name = "example-composer-env",
Region = "us-central1",
Config = new Gcp.Composer.Inputs.EnvironmentConfigArgs
{
SoftwareConfig = new Gcp.Composer.Inputs.EnvironmentConfigSoftwareConfigArgs
{
ImageVersion = "composer-2-airflow-2",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.composer.Environment;
import com.pulumi.gcp.composer.EnvironmentArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigSoftwareConfigArgs;
import java.util.List;
import java.util.ArrayList;
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 test = new Environment("test", EnvironmentArgs.builder()
.name("example-composer-env")
.region("us-central1")
.config(EnvironmentConfigArgs.builder()
.softwareConfig(EnvironmentConfigSoftwareConfigArgs.builder()
.imageVersion("composer-2-airflow-2")
.build())
.build())
.build());
}
}
resources:
test:
type: gcp:composer:Environment
properties:
name: example-composer-env
region: us-central1
config:
softwareConfig:
imageVersion: composer-2-airflow-2
Basic Usage (Cloud Composer 1)
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const test = new gcp.composer.Environment("test", {
name: "example-composer-env",
region: "us-central1",
config: {
softwareConfig: {
imageVersion: "composer-1-airflow-2",
},
},
});
import pulumi
import pulumi_gcp as gcp
test = gcp.composer.Environment("test",
name="example-composer-env",
region="us-central1",
config={
"software_config": {
"image_version": "composer-1-airflow-2",
},
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/composer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := composer.NewEnvironment(ctx, "test", &composer.EnvironmentArgs{
Name: pulumi.String("example-composer-env"),
Region: pulumi.String("us-central1"),
Config: &composer.EnvironmentConfigArgs{
SoftwareConfig: &composer.EnvironmentConfigSoftwareConfigArgs{
ImageVersion: pulumi.String("composer-1-airflow-2"),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var test = new Gcp.Composer.Environment("test", new()
{
Name = "example-composer-env",
Region = "us-central1",
Config = new Gcp.Composer.Inputs.EnvironmentConfigArgs
{
SoftwareConfig = new Gcp.Composer.Inputs.EnvironmentConfigSoftwareConfigArgs
{
ImageVersion = "composer-1-airflow-2",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.composer.Environment;
import com.pulumi.gcp.composer.EnvironmentArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigSoftwareConfigArgs;
import java.util.List;
import java.util.ArrayList;
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 test = new Environment("test", EnvironmentArgs.builder()
.name("example-composer-env")
.region("us-central1")
.config(EnvironmentConfigArgs.builder()
.softwareConfig(EnvironmentConfigSoftwareConfigArgs.builder()
.imageVersion("composer-1-airflow-2")
.build())
.build())
.build());
}
}
resources:
test:
type: gcp:composer:Environment
properties:
name: example-composer-env
region: us-central1
config:
softwareConfig:
imageVersion: composer-1-airflow-2
With GKE and Compute Resource Dependencies
Note To use custom service accounts, you must give at least the
role/composer.workerrole to the service account of the Cloud Composer environment. For more information, see the Access Control page in the Cloud Composer documentation. You might need to assign additional roles depending on specific workflows that the Airflow DAGs will be running.
GKE and Compute Resource Dependencies (Cloud Composer 3)
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const testAccount = new gcp.serviceaccount.Account("test", {
accountId: "composer-env-account",
displayName: "Test Service Account for Composer Environment",
});
const test = new gcp.composer.Environment("test", {
name: "example-composer-env-tf-c3",
region: "us-central1",
config: {
softwareConfig: {
imageVersion: "composer-3-airflow-2",
},
workloadsConfig: {
scheduler: {
cpu: 0.5,
memoryGb: 2,
storageGb: 1,
count: 1,
},
triggerer: {
cpu: 0.5,
memoryGb: 1,
count: 1,
},
dagProcessor: {
cpu: 1,
memoryGb: 2,
storageGb: 1,
count: 1,
},
webServer: {
cpu: 0.5,
memoryGb: 2,
storageGb: 1,
},
worker: {
cpu: 0.5,
memoryGb: 2,
storageGb: 1,
minCount: 1,
maxCount: 3,
},
},
environmentSize: "ENVIRONMENT_SIZE_SMALL",
nodeConfig: {
serviceAccount: testAccount.name,
},
},
});
const composer_worker = new gcp.projects.IAMMember("composer-worker", {
project: "your-project-id",
role: "roles/composer.worker",
member: pulumi.interpolate`serviceAccount:${testAccount.email}`,
});
import pulumi
import pulumi_gcp as gcp
test_account = gcp.serviceaccount.Account("test",
account_id="composer-env-account",
display_name="Test Service Account for Composer Environment")
test = gcp.composer.Environment("test",
name="example-composer-env-tf-c3",
region="us-central1",
config={
"software_config": {
"image_version": "composer-3-airflow-2",
},
"workloads_config": {
"scheduler": {
"cpu": 0.5,
"memory_gb": 2,
"storage_gb": 1,
"count": 1,
},
"triggerer": {
"cpu": 0.5,
"memory_gb": 1,
"count": 1,
},
"dag_processor": {
"cpu": 1,
"memory_gb": 2,
"storage_gb": 1,
"count": 1,
},
"web_server": {
"cpu": 0.5,
"memory_gb": 2,
"storage_gb": 1,
},
"worker": {
"cpu": 0.5,
"memory_gb": 2,
"storage_gb": 1,
"min_count": 1,
"max_count": 3,
},
},
"environment_size": "ENVIRONMENT_SIZE_SMALL",
"node_config": {
"service_account": test_account.name,
},
})
composer_worker = gcp.projects.IAMMember("composer-worker",
project="your-project-id",
role="roles/composer.worker",
member=test_account.email.apply(lambda email: f"serviceAccount:{email}"))
package main
import (
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/composer"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/projects"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/serviceaccount"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
testAccount, err := serviceaccount.NewAccount(ctx, "test", &serviceaccount.AccountArgs{
AccountId: pulumi.String("composer-env-account"),
DisplayName: pulumi.String("Test Service Account for Composer Environment"),
})
if err != nil {
return err
}
_, err = composer.NewEnvironment(ctx, "test", &composer.EnvironmentArgs{
Name: pulumi.String("example-composer-env-tf-c3"),
Region: pulumi.String("us-central1"),
Config: &composer.EnvironmentConfigArgs{
SoftwareConfig: &composer.EnvironmentConfigSoftwareConfigArgs{
ImageVersion: pulumi.String("composer-3-airflow-2"),
},
WorkloadsConfig: &composer.EnvironmentConfigWorkloadsConfigArgs{
Scheduler: &composer.EnvironmentConfigWorkloadsConfigSchedulerArgs{
Cpu: pulumi.Float64(0.5),
MemoryGb: pulumi.Float64(2),
StorageGb: pulumi.Float64(1),
Count: pulumi.Int(1),
},
Triggerer: &composer.EnvironmentConfigWorkloadsConfigTriggererArgs{
Cpu: pulumi.Float64(0.5),
MemoryGb: pulumi.Float64(1),
Count: pulumi.Int(1),
},
DagProcessor: &composer.EnvironmentConfigWorkloadsConfigDagProcessorArgs{
Cpu: pulumi.Float64(1),
MemoryGb: pulumi.Float64(2),
StorageGb: pulumi.Float64(1),
Count: pulumi.Int(1),
},
WebServer: &composer.EnvironmentConfigWorkloadsConfigWebServerArgs{
Cpu: pulumi.Float64(0.5),
MemoryGb: pulumi.Float64(2),
StorageGb: pulumi.Float64(1),
},
Worker: &composer.EnvironmentConfigWorkloadsConfigWorkerArgs{
Cpu: pulumi.Float64(0.5),
MemoryGb: pulumi.Float64(2),
StorageGb: pulumi.Float64(1),
MinCount: pulumi.Int(1),
MaxCount: pulumi.Int(3),
},
},
EnvironmentSize: pulumi.String("ENVIRONMENT_SIZE_SMALL"),
NodeConfig: &composer.EnvironmentConfigNodeConfigArgs{
ServiceAccount: testAccount.Name,
},
},
})
if err != nil {
return err
}
_, err = projects.NewIAMMember(ctx, "composer-worker", &projects.IAMMemberArgs{
Project: pulumi.String("your-project-id"),
Role: pulumi.String("roles/composer.worker"),
Member: testAccount.Email.ApplyT(func(email string) (string, error) {
return fmt.Sprintf("serviceAccount:%v", email), nil
}).(pulumi.StringOutput),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var testAccount = new Gcp.ServiceAccount.Account("test", new()
{
AccountId = "composer-env-account",
DisplayName = "Test Service Account for Composer Environment",
});
var test = new Gcp.Composer.Environment("test", new()
{
Name = "example-composer-env-tf-c3",
Region = "us-central1",
Config = new Gcp.Composer.Inputs.EnvironmentConfigArgs
{
SoftwareConfig = new Gcp.Composer.Inputs.EnvironmentConfigSoftwareConfigArgs
{
ImageVersion = "composer-3-airflow-2",
},
WorkloadsConfig = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigArgs
{
Scheduler = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigSchedulerArgs
{
Cpu = 0.5,
MemoryGb = 2,
StorageGb = 1,
Count = 1,
},
Triggerer = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigTriggererArgs
{
Cpu = 0.5,
MemoryGb = 1,
Count = 1,
},
DagProcessor = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigDagProcessorArgs
{
Cpu = 1,
MemoryGb = 2,
StorageGb = 1,
Count = 1,
},
WebServer = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigWebServerArgs
{
Cpu = 0.5,
MemoryGb = 2,
StorageGb = 1,
},
Worker = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigWorkerArgs
{
Cpu = 0.5,
MemoryGb = 2,
StorageGb = 1,
MinCount = 1,
MaxCount = 3,
},
},
EnvironmentSize = "ENVIRONMENT_SIZE_SMALL",
NodeConfig = new Gcp.Composer.Inputs.EnvironmentConfigNodeConfigArgs
{
ServiceAccount = testAccount.Name,
},
},
});
var composer_worker = new Gcp.Projects.IAMMember("composer-worker", new()
{
Project = "your-project-id",
Role = "roles/composer.worker",
Member = testAccount.Email.Apply(email => $"serviceAccount:{email}"),
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.serviceaccount.Account;
import com.pulumi.gcp.serviceaccount.AccountArgs;
import com.pulumi.gcp.composer.Environment;
import com.pulumi.gcp.composer.EnvironmentArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigSoftwareConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigWorkloadsConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigWorkloadsConfigSchedulerArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigWorkloadsConfigTriggererArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigWorkloadsConfigDagProcessorArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigWorkloadsConfigWebServerArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigWorkloadsConfigWorkerArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigNodeConfigArgs;
import com.pulumi.gcp.projects.IAMMember;
import com.pulumi.gcp.projects.IAMMemberArgs;
import java.util.List;
import java.util.ArrayList;
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 testAccount = new Account("testAccount", AccountArgs.builder()
.accountId("composer-env-account")
.displayName("Test Service Account for Composer Environment")
.build());
var test = new Environment("test", EnvironmentArgs.builder()
.name("example-composer-env-tf-c3")
.region("us-central1")
.config(EnvironmentConfigArgs.builder()
.softwareConfig(EnvironmentConfigSoftwareConfigArgs.builder()
.imageVersion("composer-3-airflow-2")
.build())
.workloadsConfig(EnvironmentConfigWorkloadsConfigArgs.builder()
.scheduler(EnvironmentConfigWorkloadsConfigSchedulerArgs.builder()
.cpu(0.5)
.memoryGb(2.0)
.storageGb(1.0)
.count(1)
.build())
.triggerer(EnvironmentConfigWorkloadsConfigTriggererArgs.builder()
.cpu(0.5)
.memoryGb(1.0)
.count(1)
.build())
.dagProcessor(EnvironmentConfigWorkloadsConfigDagProcessorArgs.builder()
.cpu(1.0)
.memoryGb(2.0)
.storageGb(1.0)
.count(1)
.build())
.webServer(EnvironmentConfigWorkloadsConfigWebServerArgs.builder()
.cpu(0.5)
.memoryGb(2.0)
.storageGb(1.0)
.build())
.worker(EnvironmentConfigWorkloadsConfigWorkerArgs.builder()
.cpu(0.5)
.memoryGb(2.0)
.storageGb(1.0)
.minCount(1)
.maxCount(3)
.build())
.build())
.environmentSize("ENVIRONMENT_SIZE_SMALL")
.nodeConfig(EnvironmentConfigNodeConfigArgs.builder()
.serviceAccount(testAccount.name())
.build())
.build())
.build());
var composer_worker = new IAMMember("composer-worker", IAMMemberArgs.builder()
.project("your-project-id")
.role("roles/composer.worker")
.member(testAccount.email().applyValue(_email -> String.format("serviceAccount:%s", _email)))
.build());
}
}
resources:
test:
type: gcp:composer:Environment
properties:
name: example-composer-env-tf-c3
region: us-central1
config:
softwareConfig:
imageVersion: composer-3-airflow-2
workloadsConfig:
scheduler:
cpu: 0.5
memoryGb: 2
storageGb: 1
count: 1
triggerer:
cpu: 0.5
memoryGb: 1
count: 1
dagProcessor:
cpu: 1
memoryGb: 2
storageGb: 1
count: 1
webServer:
cpu: 0.5
memoryGb: 2
storageGb: 1
worker:
cpu: 0.5
memoryGb: 2
storageGb: 1
minCount: 1
maxCount: 3
environmentSize: ENVIRONMENT_SIZE_SMALL
nodeConfig:
serviceAccount: ${testAccount.name}
testAccount:
type: gcp:serviceaccount:Account
name: test
properties:
accountId: composer-env-account
displayName: Test Service Account for Composer Environment
composer-worker:
type: gcp:projects:IAMMember
properties:
project: your-project-id
role: roles/composer.worker
member: serviceAccount:${testAccount.email}
GKE and Compute Resource Dependencies (Cloud Composer 2)
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const testNetwork = new gcp.compute.Network("test", {
name: "composer-test-network3",
autoCreateSubnetworks: false,
});
const testSubnetwork = new gcp.compute.Subnetwork("test", {
name: "composer-test-subnetwork",
ipCidrRange: "10.2.0.0/16",
region: "us-central1",
network: testNetwork.id,
});
const testAccount = new gcp.serviceaccount.Account("test", {
accountId: "composer-env-account",
displayName: "Test Service Account for Composer Environment",
});
const test = new gcp.composer.Environment("test", {
name: "example-composer-env-tf-c2",
region: "us-central1",
config: {
softwareConfig: {
imageVersion: "composer-2-airflow-2",
},
workloadsConfig: {
scheduler: {
cpu: 0.5,
memoryGb: 1.875,
storageGb: 1,
count: 1,
},
webServer: {
cpu: 0.5,
memoryGb: 1.875,
storageGb: 1,
},
worker: {
cpu: 0.5,
memoryGb: 1.875,
storageGb: 1,
minCount: 1,
maxCount: 3,
},
},
environmentSize: "ENVIRONMENT_SIZE_SMALL",
nodeConfig: {
network: testNetwork.id,
subnetwork: testSubnetwork.id,
serviceAccount: testAccount.name,
},
},
});
const composer_worker = new gcp.projects.IAMMember("composer-worker", {
project: "your-project-id",
role: "roles/composer.worker",
member: pulumi.interpolate`serviceAccount:${testAccount.email}`,
});
import pulumi
import pulumi_gcp as gcp
test_network = gcp.compute.Network("test",
name="composer-test-network3",
auto_create_subnetworks=False)
test_subnetwork = gcp.compute.Subnetwork("test",
name="composer-test-subnetwork",
ip_cidr_range="10.2.0.0/16",
region="us-central1",
network=test_network.id)
test_account = gcp.serviceaccount.Account("test",
account_id="composer-env-account",
display_name="Test Service Account for Composer Environment")
test = gcp.composer.Environment("test",
name="example-composer-env-tf-c2",
region="us-central1",
config={
"software_config": {
"image_version": "composer-2-airflow-2",
},
"workloads_config": {
"scheduler": {
"cpu": 0.5,
"memory_gb": 1.875,
"storage_gb": 1,
"count": 1,
},
"web_server": {
"cpu": 0.5,
"memory_gb": 1.875,
"storage_gb": 1,
},
"worker": {
"cpu": 0.5,
"memory_gb": 1.875,
"storage_gb": 1,
"min_count": 1,
"max_count": 3,
},
},
"environment_size": "ENVIRONMENT_SIZE_SMALL",
"node_config": {
"network": test_network.id,
"subnetwork": test_subnetwork.id,
"service_account": test_account.name,
},
})
composer_worker = gcp.projects.IAMMember("composer-worker",
project="your-project-id",
role="roles/composer.worker",
member=test_account.email.apply(lambda email: f"serviceAccount:{email}"))
package main
import (
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/composer"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/projects"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/serviceaccount"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
testNetwork, err := compute.NewNetwork(ctx, "test", &compute.NetworkArgs{
Name: pulumi.String("composer-test-network3"),
AutoCreateSubnetworks: pulumi.Bool(false),
})
if err != nil {
return err
}
testSubnetwork, err := compute.NewSubnetwork(ctx, "test", &compute.SubnetworkArgs{
Name: pulumi.String("composer-test-subnetwork"),
IpCidrRange: pulumi.String("10.2.0.0/16"),
Region: pulumi.String("us-central1"),
Network: testNetwork.ID(),
})
if err != nil {
return err
}
testAccount, err := serviceaccount.NewAccount(ctx, "test", &serviceaccount.AccountArgs{
AccountId: pulumi.String("composer-env-account"),
DisplayName: pulumi.String("Test Service Account for Composer Environment"),
})
if err != nil {
return err
}
_, err = composer.NewEnvironment(ctx, "test", &composer.EnvironmentArgs{
Name: pulumi.String("example-composer-env-tf-c2"),
Region: pulumi.String("us-central1"),
Config: &composer.EnvironmentConfigArgs{
SoftwareConfig: &composer.EnvironmentConfigSoftwareConfigArgs{
ImageVersion: pulumi.String("composer-2-airflow-2"),
},
WorkloadsConfig: &composer.EnvironmentConfigWorkloadsConfigArgs{
Scheduler: &composer.EnvironmentConfigWorkloadsConfigSchedulerArgs{
Cpu: pulumi.Float64(0.5),
MemoryGb: pulumi.Float64(1.875),
StorageGb: pulumi.Float64(1),
Count: pulumi.Int(1),
},
WebServer: &composer.EnvironmentConfigWorkloadsConfigWebServerArgs{
Cpu: pulumi.Float64(0.5),
MemoryGb: pulumi.Float64(1.875),
StorageGb: pulumi.Float64(1),
},
Worker: &composer.EnvironmentConfigWorkloadsConfigWorkerArgs{
Cpu: pulumi.Float64(0.5),
MemoryGb: pulumi.Float64(1.875),
StorageGb: pulumi.Float64(1),
MinCount: pulumi.Int(1),
MaxCount: pulumi.Int(3),
},
},
EnvironmentSize: pulumi.String("ENVIRONMENT_SIZE_SMALL"),
NodeConfig: &composer.EnvironmentConfigNodeConfigArgs{
Network: testNetwork.ID(),
Subnetwork: testSubnetwork.ID(),
ServiceAccount: testAccount.Name,
},
},
})
if err != nil {
return err
}
_, err = projects.NewIAMMember(ctx, "composer-worker", &projects.IAMMemberArgs{
Project: pulumi.String("your-project-id"),
Role: pulumi.String("roles/composer.worker"),
Member: testAccount.Email.ApplyT(func(email string) (string, error) {
return fmt.Sprintf("serviceAccount:%v", email), nil
}).(pulumi.StringOutput),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var testNetwork = new Gcp.Compute.Network("test", new()
{
Name = "composer-test-network3",
AutoCreateSubnetworks = false,
});
var testSubnetwork = new Gcp.Compute.Subnetwork("test", new()
{
Name = "composer-test-subnetwork",
IpCidrRange = "10.2.0.0/16",
Region = "us-central1",
Network = testNetwork.Id,
});
var testAccount = new Gcp.ServiceAccount.Account("test", new()
{
AccountId = "composer-env-account",
DisplayName = "Test Service Account for Composer Environment",
});
var test = new Gcp.Composer.Environment("test", new()
{
Name = "example-composer-env-tf-c2",
Region = "us-central1",
Config = new Gcp.Composer.Inputs.EnvironmentConfigArgs
{
SoftwareConfig = new Gcp.Composer.Inputs.EnvironmentConfigSoftwareConfigArgs
{
ImageVersion = "composer-2-airflow-2",
},
WorkloadsConfig = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigArgs
{
Scheduler = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigSchedulerArgs
{
Cpu = 0.5,
MemoryGb = 1.875,
StorageGb = 1,
Count = 1,
},
WebServer = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigWebServerArgs
{
Cpu = 0.5,
MemoryGb = 1.875,
StorageGb = 1,
},
Worker = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigWorkerArgs
{
Cpu = 0.5,
MemoryGb = 1.875,
StorageGb = 1,
MinCount = 1,
MaxCount = 3,
},
},
EnvironmentSize = "ENVIRONMENT_SIZE_SMALL",
NodeConfig = new Gcp.Composer.Inputs.EnvironmentConfigNodeConfigArgs
{
Network = testNetwork.Id,
Subnetwork = testSubnetwork.Id,
ServiceAccount = testAccount.Name,
},
},
});
var composer_worker = new Gcp.Projects.IAMMember("composer-worker", new()
{
Project = "your-project-id",
Role = "roles/composer.worker",
Member = testAccount.Email.Apply(email => $"serviceAccount:{email}"),
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.serviceaccount.Account;
import com.pulumi.gcp.serviceaccount.AccountArgs;
import com.pulumi.gcp.composer.Environment;
import com.pulumi.gcp.composer.EnvironmentArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigSoftwareConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigWorkloadsConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigWorkloadsConfigSchedulerArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigWorkloadsConfigWebServerArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigWorkloadsConfigWorkerArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigNodeConfigArgs;
import com.pulumi.gcp.projects.IAMMember;
import com.pulumi.gcp.projects.IAMMemberArgs;
import java.util.List;
import java.util.ArrayList;
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 testNetwork = new Network("testNetwork", NetworkArgs.builder()
.name("composer-test-network3")
.autoCreateSubnetworks(false)
.build());
var testSubnetwork = new Subnetwork("testSubnetwork", SubnetworkArgs.builder()
.name("composer-test-subnetwork")
.ipCidrRange("10.2.0.0/16")
.region("us-central1")
.network(testNetwork.id())
.build());
var testAccount = new Account("testAccount", AccountArgs.builder()
.accountId("composer-env-account")
.displayName("Test Service Account for Composer Environment")
.build());
var test = new Environment("test", EnvironmentArgs.builder()
.name("example-composer-env-tf-c2")
.region("us-central1")
.config(EnvironmentConfigArgs.builder()
.softwareConfig(EnvironmentConfigSoftwareConfigArgs.builder()
.imageVersion("composer-2-airflow-2")
.build())
.workloadsConfig(EnvironmentConfigWorkloadsConfigArgs.builder()
.scheduler(EnvironmentConfigWorkloadsConfigSchedulerArgs.builder()
.cpu(0.5)
.memoryGb(1.875)
.storageGb(1.0)
.count(1)
.build())
.webServer(EnvironmentConfigWorkloadsConfigWebServerArgs.builder()
.cpu(0.5)
.memoryGb(1.875)
.storageGb(1.0)
.build())
.worker(EnvironmentConfigWorkloadsConfigWorkerArgs.builder()
.cpu(0.5)
.memoryGb(1.875)
.storageGb(1.0)
.minCount(1)
.maxCount(3)
.build())
.build())
.environmentSize("ENVIRONMENT_SIZE_SMALL")
.nodeConfig(EnvironmentConfigNodeConfigArgs.builder()
.network(testNetwork.id())
.subnetwork(testSubnetwork.id())
.serviceAccount(testAccount.name())
.build())
.build())
.build());
var composer_worker = new IAMMember("composer-worker", IAMMemberArgs.builder()
.project("your-project-id")
.role("roles/composer.worker")
.member(testAccount.email().applyValue(_email -> String.format("serviceAccount:%s", _email)))
.build());
}
}
resources:
test:
type: gcp:composer:Environment
properties:
name: example-composer-env-tf-c2
region: us-central1
config:
softwareConfig:
imageVersion: composer-2-airflow-2
workloadsConfig:
scheduler:
cpu: 0.5
memoryGb: 1.875
storageGb: 1
count: 1
webServer:
cpu: 0.5
memoryGb: 1.875
storageGb: 1
worker:
cpu: 0.5
memoryGb: 1.875
storageGb: 1
minCount: 1
maxCount: 3
environmentSize: ENVIRONMENT_SIZE_SMALL
nodeConfig:
network: ${testNetwork.id}
subnetwork: ${testSubnetwork.id}
serviceAccount: ${testAccount.name}
testNetwork:
type: gcp:compute:Network
name: test
properties:
name: composer-test-network3
autoCreateSubnetworks: false
testSubnetwork:
type: gcp:compute:Subnetwork
name: test
properties:
name: composer-test-subnetwork
ipCidrRange: 10.2.0.0/16
region: us-central1
network: ${testNetwork.id}
testAccount:
type: gcp:serviceaccount:Account
name: test
properties:
accountId: composer-env-account
displayName: Test Service Account for Composer Environment
composer-worker:
type: gcp:projects:IAMMember
properties:
project: your-project-id
role: roles/composer.worker
member: serviceAccount:${testAccount.email}
GKE and Compute Resource Dependencies (Cloud Composer 1)
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const testNetwork = new gcp.compute.Network("test", {
name: "composer-test-network",
autoCreateSubnetworks: false,
});
const testSubnetwork = new gcp.compute.Subnetwork("test", {
name: "composer-test-subnetwork",
ipCidrRange: "10.2.0.0/16",
region: "us-central1",
network: testNetwork.id,
});
const testAccount = new gcp.serviceaccount.Account("test", {
accountId: "composer-env-account",
displayName: "Test Service Account for Composer Environment",
});
const test = new gcp.composer.Environment("test", {
name: "example-composer-env",
region: "us-central1",
config: {
softwareConfig: {
imageVersion: "composer-1-airflow-2",
},
nodeCount: 4,
nodeConfig: {
zone: "us-central1-a",
machineType: "n1-standard-1",
network: testNetwork.id,
subnetwork: testSubnetwork.id,
serviceAccount: testAccount.name,
},
databaseConfig: {
machineType: "db-n1-standard-2",
},
webServerConfig: {
machineType: "composer-n1-webserver-2",
},
},
});
const composer_worker = new gcp.projects.IAMMember("composer-worker", {
role: "roles/composer.worker",
member: pulumi.interpolate`serviceAccount:${testAccount.email}`,
});
import pulumi
import pulumi_gcp as gcp
test_network = gcp.compute.Network("test",
name="composer-test-network",
auto_create_subnetworks=False)
test_subnetwork = gcp.compute.Subnetwork("test",
name="composer-test-subnetwork",
ip_cidr_range="10.2.0.0/16",
region="us-central1",
network=test_network.id)
test_account = gcp.serviceaccount.Account("test",
account_id="composer-env-account",
display_name="Test Service Account for Composer Environment")
test = gcp.composer.Environment("test",
name="example-composer-env",
region="us-central1",
config={
"software_config": {
"image_version": "composer-1-airflow-2",
},
"node_count": 4,
"node_config": {
"zone": "us-central1-a",
"machine_type": "n1-standard-1",
"network": test_network.id,
"subnetwork": test_subnetwork.id,
"service_account": test_account.name,
},
"database_config": {
"machine_type": "db-n1-standard-2",
},
"web_server_config": {
"machine_type": "composer-n1-webserver-2",
},
})
composer_worker = gcp.projects.IAMMember("composer-worker",
role="roles/composer.worker",
member=test_account.email.apply(lambda email: f"serviceAccount:{email}"))
package main
import (
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/composer"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/projects"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/serviceaccount"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
testNetwork, err := compute.NewNetwork(ctx, "test", &compute.NetworkArgs{
Name: pulumi.String("composer-test-network"),
AutoCreateSubnetworks: pulumi.Bool(false),
})
if err != nil {
return err
}
testSubnetwork, err := compute.NewSubnetwork(ctx, "test", &compute.SubnetworkArgs{
Name: pulumi.String("composer-test-subnetwork"),
IpCidrRange: pulumi.String("10.2.0.0/16"),
Region: pulumi.String("us-central1"),
Network: testNetwork.ID(),
})
if err != nil {
return err
}
testAccount, err := serviceaccount.NewAccount(ctx, "test", &serviceaccount.AccountArgs{
AccountId: pulumi.String("composer-env-account"),
DisplayName: pulumi.String("Test Service Account for Composer Environment"),
})
if err != nil {
return err
}
_, err = composer.NewEnvironment(ctx, "test", &composer.EnvironmentArgs{
Name: pulumi.String("example-composer-env"),
Region: pulumi.String("us-central1"),
Config: &composer.EnvironmentConfigArgs{
SoftwareConfig: &composer.EnvironmentConfigSoftwareConfigArgs{
ImageVersion: pulumi.String("composer-1-airflow-2"),
},
NodeCount: pulumi.Int(4),
NodeConfig: &composer.EnvironmentConfigNodeConfigArgs{
Zone: pulumi.String("us-central1-a"),
MachineType: pulumi.String("n1-standard-1"),
Network: testNetwork.ID(),
Subnetwork: testSubnetwork.ID(),
ServiceAccount: testAccount.Name,
},
DatabaseConfig: &composer.EnvironmentConfigDatabaseConfigArgs{
MachineType: pulumi.String("db-n1-standard-2"),
},
WebServerConfig: &composer.EnvironmentConfigWebServerConfigArgs{
MachineType: pulumi.String("composer-n1-webserver-2"),
},
},
})
if err != nil {
return err
}
_, err = projects.NewIAMMember(ctx, "composer-worker", &projects.IAMMemberArgs{
Role: pulumi.String("roles/composer.worker"),
Member: testAccount.Email.ApplyT(func(email string) (string, error) {
return fmt.Sprintf("serviceAccount:%v", email), nil
}).(pulumi.StringOutput),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var testNetwork = new Gcp.Compute.Network("test", new()
{
Name = "composer-test-network",
AutoCreateSubnetworks = false,
});
var testSubnetwork = new Gcp.Compute.Subnetwork("test", new()
{
Name = "composer-test-subnetwork",
IpCidrRange = "10.2.0.0/16",
Region = "us-central1",
Network = testNetwork.Id,
});
var testAccount = new Gcp.ServiceAccount.Account("test", new()
{
AccountId = "composer-env-account",
DisplayName = "Test Service Account for Composer Environment",
});
var test = new Gcp.Composer.Environment("test", new()
{
Name = "example-composer-env",
Region = "us-central1",
Config = new Gcp.Composer.Inputs.EnvironmentConfigArgs
{
SoftwareConfig = new Gcp.Composer.Inputs.EnvironmentConfigSoftwareConfigArgs
{
ImageVersion = "composer-1-airflow-2",
},
NodeCount = 4,
NodeConfig = new Gcp.Composer.Inputs.EnvironmentConfigNodeConfigArgs
{
Zone = "us-central1-a",
MachineType = "n1-standard-1",
Network = testNetwork.Id,
Subnetwork = testSubnetwork.Id,
ServiceAccount = testAccount.Name,
},
DatabaseConfig = new Gcp.Composer.Inputs.EnvironmentConfigDatabaseConfigArgs
{
MachineType = "db-n1-standard-2",
},
WebServerConfig = new Gcp.Composer.Inputs.EnvironmentConfigWebServerConfigArgs
{
MachineType = "composer-n1-webserver-2",
},
},
});
var composer_worker = new Gcp.Projects.IAMMember("composer-worker", new()
{
Role = "roles/composer.worker",
Member = testAccount.Email.Apply(email => $"serviceAccount:{email}"),
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.serviceaccount.Account;
import com.pulumi.gcp.serviceaccount.AccountArgs;
import com.pulumi.gcp.composer.Environment;
import com.pulumi.gcp.composer.EnvironmentArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigSoftwareConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigNodeConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigDatabaseConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigWebServerConfigArgs;
import com.pulumi.gcp.projects.IAMMember;
import com.pulumi.gcp.projects.IAMMemberArgs;
import java.util.List;
import java.util.ArrayList;
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 testNetwork = new Network("testNetwork", NetworkArgs.builder()
.name("composer-test-network")
.autoCreateSubnetworks(false)
.build());
var testSubnetwork = new Subnetwork("testSubnetwork", SubnetworkArgs.builder()
.name("composer-test-subnetwork")
.ipCidrRange("10.2.0.0/16")
.region("us-central1")
.network(testNetwork.id())
.build());
var testAccount = new Account("testAccount", AccountArgs.builder()
.accountId("composer-env-account")
.displayName("Test Service Account for Composer Environment")
.build());
var test = new Environment("test", EnvironmentArgs.builder()
.name("example-composer-env")
.region("us-central1")
.config(EnvironmentConfigArgs.builder()
.softwareConfig(EnvironmentConfigSoftwareConfigArgs.builder()
.imageVersion("composer-1-airflow-2")
.build())
.nodeCount(4)
.nodeConfig(EnvironmentConfigNodeConfigArgs.builder()
.zone("us-central1-a")
.machineType("n1-standard-1")
.network(testNetwork.id())
.subnetwork(testSubnetwork.id())
.serviceAccount(testAccount.name())
.build())
.databaseConfig(EnvironmentConfigDatabaseConfigArgs.builder()
.machineType("db-n1-standard-2")
.build())
.webServerConfig(EnvironmentConfigWebServerConfigArgs.builder()
.machineType("composer-n1-webserver-2")
.build())
.build())
.build());
var composer_worker = new IAMMember("composer-worker", IAMMemberArgs.builder()
.role("roles/composer.worker")
.member(testAccount.email().applyValue(_email -> String.format("serviceAccount:%s", _email)))
.build());
}
}
resources:
test:
type: gcp:composer:Environment
properties:
name: example-composer-env
region: us-central1
config:
softwareConfig:
imageVersion: composer-1-airflow-2
nodeCount: 4
nodeConfig:
zone: us-central1-a
machineType: n1-standard-1
network: ${testNetwork.id}
subnetwork: ${testSubnetwork.id}
serviceAccount: ${testAccount.name}
databaseConfig:
machineType: db-n1-standard-2
webServerConfig:
machineType: composer-n1-webserver-2
testNetwork:
type: gcp:compute:Network
name: test
properties:
name: composer-test-network
autoCreateSubnetworks: false
testSubnetwork:
type: gcp:compute:Subnetwork
name: test
properties:
name: composer-test-subnetwork
ipCidrRange: 10.2.0.0/16
region: us-central1
network: ${testNetwork.id}
testAccount:
type: gcp:serviceaccount:Account
name: test
properties:
accountId: composer-env-account
displayName: Test Service Account for Composer Environment
composer-worker:
type: gcp:projects:IAMMember
properties:
role: roles/composer.worker
member: serviceAccount:${testAccount.email}
Cloud Composer 3 networking configuration
In Cloud Composer 3, networking configuration is simplified compared to previous versions. You don’t need to specify network ranges, and can attach custom VPC networks to your environment.
Note It’s not possible to detach a VPC network using Terraform. Instead, you can attach a different VPC network in its place, or detach the network using other tools like Google Cloud CLI.
Use Private IP networking:
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const example = new gcp.composer.Environment("example", {
name: "example-environment",
region: "us-central1",
config: {
enablePrivateEnvironment: true,
},
});
import pulumi
import pulumi_gcp as gcp
example = gcp.composer.Environment("example",
name="example-environment",
region="us-central1",
config={
"enable_private_environment": True,
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/composer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := composer.NewEnvironment(ctx, "example", &composer.EnvironmentArgs{
Name: pulumi.String("example-environment"),
Region: pulumi.String("us-central1"),
Config: &composer.EnvironmentConfigArgs{
EnablePrivateEnvironment: pulumi.Bool(true),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var example = new Gcp.Composer.Environment("example", new()
{
Name = "example-environment",
Region = "us-central1",
Config = new Gcp.Composer.Inputs.EnvironmentConfigArgs
{
EnablePrivateEnvironment = true,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.composer.Environment;
import com.pulumi.gcp.composer.EnvironmentArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigArgs;
import java.util.List;
import java.util.ArrayList;
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 example = new Environment("example", EnvironmentArgs.builder()
.name("example-environment")
.region("us-central1")
.config(EnvironmentConfigArgs.builder()
.enablePrivateEnvironment(true)
.build())
.build());
}
}
resources:
example:
type: gcp:composer:Environment
properties:
name: example-environment
region: us-central1
config:
enablePrivateEnvironment: true
Attach a custom VPC network (Cloud Composer creates a new network attachment):
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const example = new gcp.composer.Environment("example", {
name: "example-environment",
region: "us-central1",
config: {
nodeConfig: {
network: "projects/example-project/global/networks/example-network",
subnetwork: "projects/example-project/regions/us-central1/subnetworks/example-subnetwork",
},
},
});
import pulumi
import pulumi_gcp as gcp
example = gcp.composer.Environment("example",
name="example-environment",
region="us-central1",
config={
"node_config": {
"network": "projects/example-project/global/networks/example-network",
"subnetwork": "projects/example-project/regions/us-central1/subnetworks/example-subnetwork",
},
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/composer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := composer.NewEnvironment(ctx, "example", &composer.EnvironmentArgs{
Name: pulumi.String("example-environment"),
Region: pulumi.String("us-central1"),
Config: &composer.EnvironmentConfigArgs{
NodeConfig: &composer.EnvironmentConfigNodeConfigArgs{
Network: pulumi.String("projects/example-project/global/networks/example-network"),
Subnetwork: pulumi.String("projects/example-project/regions/us-central1/subnetworks/example-subnetwork"),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var example = new Gcp.Composer.Environment("example", new()
{
Name = "example-environment",
Region = "us-central1",
Config = new Gcp.Composer.Inputs.EnvironmentConfigArgs
{
NodeConfig = new Gcp.Composer.Inputs.EnvironmentConfigNodeConfigArgs
{
Network = "projects/example-project/global/networks/example-network",
Subnetwork = "projects/example-project/regions/us-central1/subnetworks/example-subnetwork",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.composer.Environment;
import com.pulumi.gcp.composer.EnvironmentArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigNodeConfigArgs;
import java.util.List;
import java.util.ArrayList;
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 example = new Environment("example", EnvironmentArgs.builder()
.name("example-environment")
.region("us-central1")
.config(EnvironmentConfigArgs.builder()
.nodeConfig(EnvironmentConfigNodeConfigArgs.builder()
.network("projects/example-project/global/networks/example-network")
.subnetwork("projects/example-project/regions/us-central1/subnetworks/example-subnetwork")
.build())
.build())
.build());
}
}
resources:
example:
type: gcp:composer:Environment
properties:
name: example-environment
region: us-central1
config:
nodeConfig:
network: projects/example-project/global/networks/example-network
subnetwork: projects/example-project/regions/us-central1/subnetworks/example-subnetwork
Attach a custom VPC network (use existing network attachment):
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const example = new gcp.composer.Environment("example", {
name: "example-environment",
region: "us-central1",
config: {
nodeConfig: {
composerNetworkAttachment: projects / example_project / regions / us_central1 / networkAttachments / example_network_attachment,
},
},
});
import pulumi
import pulumi_gcp as gcp
example = gcp.composer.Environment("example",
name="example-environment",
region="us-central1",
config={
"node_config": {
"composer_network_attachment": projects / example_project / regions / us_central1 / network_attachments / example_network_attachment,
},
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/composer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := composer.NewEnvironment(ctx, "example", &composer.EnvironmentArgs{
Name: pulumi.String("example-environment"),
Region: pulumi.String("us-central1"),
Config: &composer.EnvironmentConfigArgs{
NodeConfig: &composer.EnvironmentConfigNodeConfigArgs{
ComposerNetworkAttachment: pulumi.String(projects / example_project / regions / us_central1 / networkAttachments / example_network_attachment),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var example = new Gcp.Composer.Environment("example", new()
{
Name = "example-environment",
Region = "us-central1",
Config = new Gcp.Composer.Inputs.EnvironmentConfigArgs
{
NodeConfig = new Gcp.Composer.Inputs.EnvironmentConfigNodeConfigArgs
{
ComposerNetworkAttachment = projects / example_project / regions / us_central1 / networkAttachments / example_network_attachment,
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.composer.Environment;
import com.pulumi.gcp.composer.EnvironmentArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigNodeConfigArgs;
import java.util.List;
import java.util.ArrayList;
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 example = new Environment("example", EnvironmentArgs.builder()
.name("example-environment")
.region("us-central1")
.config(EnvironmentConfigArgs.builder()
.nodeConfig(EnvironmentConfigNodeConfigArgs.builder()
.composerNetworkAttachment(Output.tuple(projects, example_project, regions, us_central1, networkAttachments, example_network_attachment).applyValue(values -> {
var __convert = values.t1;
var __convert1 = values.t2;
var __convert2 = values.t3;
var __convert3 = values.t4;
var __convert4 = values.t5;
var __convert5 = values.t6;
return __convert / __convert1 / __convert2 / __convert3 / __convert4 / __convert5;
}).applyValue(_n -> _n))
.build())
.build())
.build());
}
}
Example coming soon!
If you specify an existing network attachment that you also manage in Terraform, then Terraform will revert changes
to the attachment done by Cloud Composer when you apply configuration changes. As a result, the environment will no
longer use the attachment. To address this problem, make sure that Terraform ignores changes to the
producerAcceptLists parameter of the attachment, as follows:
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const example = new gcp.compute.NetworkAttachment("example", {});
const exampleEnvironment = new gcp.composer.Environment("example", {
name: "example-environment",
region: "us-central1",
config: {
nodeConfig: {
composerNetworkAttachment: example.id,
},
},
});
import pulumi
import pulumi_gcp as gcp
example = gcp.compute.NetworkAttachment("example")
example_environment = gcp.composer.Environment("example",
name="example-environment",
region="us-central1",
config={
"node_config": {
"composer_network_attachment": example.id,
},
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/composer"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := compute.NewNetworkAttachment(ctx, "example", nil)
if err != nil {
return err
}
_, err = composer.NewEnvironment(ctx, "example", &composer.EnvironmentArgs{
Name: pulumi.String("example-environment"),
Region: pulumi.String("us-central1"),
Config: &composer.EnvironmentConfigArgs{
NodeConfig: &composer.EnvironmentConfigNodeConfigArgs{
ComposerNetworkAttachment: example.ID(),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var example = new Gcp.Compute.NetworkAttachment("example");
var exampleEnvironment = new Gcp.Composer.Environment("example", new()
{
Name = "example-environment",
Region = "us-central1",
Config = new Gcp.Composer.Inputs.EnvironmentConfigArgs
{
NodeConfig = new Gcp.Composer.Inputs.EnvironmentConfigNodeConfigArgs
{
ComposerNetworkAttachment = example.Id,
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.NetworkAttachment;
import com.pulumi.gcp.composer.Environment;
import com.pulumi.gcp.composer.EnvironmentArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigArgs;
import com.pulumi.gcp.composer.inputs.EnvironmentConfigNodeConfigArgs;
import java.util.List;
import java.util.ArrayList;
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 example = new NetworkAttachment("example");
var exampleEnvironment = new Environment("exampleEnvironment", EnvironmentArgs.builder()
.name("example-environment")
.region("us-central1")
.config(EnvironmentConfigArgs.builder()
.nodeConfig(EnvironmentConfigNodeConfigArgs.builder()
.composerNetworkAttachment(example.id())
.build())
.build())
.build());
}
}
resources:
example:
type: gcp:compute:NetworkAttachment
exampleEnvironment:
type: gcp:composer:Environment
name: example
properties:
name: example-environment
region: us-central1
config:
nodeConfig:
composerNetworkAttachment: ${example.id}
Create Environment Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Environment(name: string, args?: EnvironmentArgs, opts?: CustomResourceOptions);@overload
def Environment(resource_name: str,
args: Optional[EnvironmentArgs] = None,
opts: Optional[ResourceOptions] = None)
@overload
def Environment(resource_name: str,
opts: Optional[ResourceOptions] = None,
config: Optional[EnvironmentConfigArgs] = None,
labels: Optional[Mapping[str, str]] = None,
name: Optional[str] = None,
project: Optional[str] = None,
region: Optional[str] = None,
storage_config: Optional[EnvironmentStorageConfigArgs] = None)func NewEnvironment(ctx *Context, name string, args *EnvironmentArgs, opts ...ResourceOption) (*Environment, error)public Environment(string name, EnvironmentArgs? args = null, CustomResourceOptions? opts = null)
public Environment(String name, EnvironmentArgs args)
public Environment(String name, EnvironmentArgs args, CustomResourceOptions options)
type: gcp:composer:Environment
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args EnvironmentArgs
- 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 EnvironmentArgs
- 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 EnvironmentArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args EnvironmentArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args EnvironmentArgs
- 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 gcpEnvironmentResource = new Gcp.Composer.Environment("gcpEnvironmentResource", new()
{
Config = new Gcp.Composer.Inputs.EnvironmentConfigArgs
{
AirflowUri = "string",
DagGcsPrefix = "string",
DataRetentionConfig = new Gcp.Composer.Inputs.EnvironmentConfigDataRetentionConfigArgs
{
AirflowMetadataRetentionConfigs = new[]
{
new Gcp.Composer.Inputs.EnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfigArgs
{
RetentionDays = 0,
RetentionMode = "string",
},
},
TaskLogsRetentionConfigs = new[]
{
new Gcp.Composer.Inputs.EnvironmentConfigDataRetentionConfigTaskLogsRetentionConfigArgs
{
StorageMode = "string",
},
},
},
DatabaseConfig = new Gcp.Composer.Inputs.EnvironmentConfigDatabaseConfigArgs
{
MachineType = "string",
Zone = "string",
},
EnablePrivateBuildsOnly = false,
EnablePrivateEnvironment = false,
EncryptionConfig = new Gcp.Composer.Inputs.EnvironmentConfigEncryptionConfigArgs
{
KmsKeyName = "string",
},
EnvironmentSize = "string",
GkeCluster = "string",
MaintenanceWindow = new Gcp.Composer.Inputs.EnvironmentConfigMaintenanceWindowArgs
{
EndTime = "string",
Recurrence = "string",
StartTime = "string",
},
MasterAuthorizedNetworksConfig = new Gcp.Composer.Inputs.EnvironmentConfigMasterAuthorizedNetworksConfigArgs
{
Enabled = false,
CidrBlocks = new[]
{
new Gcp.Composer.Inputs.EnvironmentConfigMasterAuthorizedNetworksConfigCidrBlockArgs
{
CidrBlock = "string",
DisplayName = "string",
},
},
},
NodeConfig = new Gcp.Composer.Inputs.EnvironmentConfigNodeConfigArgs
{
ComposerInternalIpv4CidrBlock = "string",
ComposerNetworkAttachment = "string",
DiskSizeGb = 0,
EnableIpMasqAgent = false,
IpAllocationPolicy = new Gcp.Composer.Inputs.EnvironmentConfigNodeConfigIpAllocationPolicyArgs
{
ClusterIpv4CidrBlock = "string",
ClusterSecondaryRangeName = "string",
ServicesIpv4CidrBlock = "string",
ServicesSecondaryRangeName = "string",
UseIpAliases = false,
},
MachineType = "string",
MaxPodsPerNode = 0,
Network = "string",
OauthScopes = new[]
{
"string",
},
ServiceAccount = "string",
Subnetwork = "string",
Tags = new[]
{
"string",
},
Zone = "string",
},
NodeCount = 0,
PrivateEnvironmentConfig = new Gcp.Composer.Inputs.EnvironmentConfigPrivateEnvironmentConfigArgs
{
CloudComposerConnectionSubnetwork = "string",
CloudComposerNetworkIpv4CidrBlock = "string",
CloudSqlIpv4CidrBlock = "string",
ConnectionType = "string",
EnablePrivateEndpoint = false,
EnablePrivatelyUsedPublicIps = false,
MasterIpv4CidrBlock = "string",
WebServerIpv4CidrBlock = "string",
},
RecoveryConfig = new Gcp.Composer.Inputs.EnvironmentConfigRecoveryConfigArgs
{
ScheduledSnapshotsConfig = new Gcp.Composer.Inputs.EnvironmentConfigRecoveryConfigScheduledSnapshotsConfigArgs
{
Enabled = false,
SnapshotCreationSchedule = "string",
SnapshotLocation = "string",
TimeZone = "string",
},
},
ResilienceMode = "string",
SoftwareConfig = new Gcp.Composer.Inputs.EnvironmentConfigSoftwareConfigArgs
{
AirflowConfigOverrides =
{
{ "string", "string" },
},
CloudDataLineageIntegration = new Gcp.Composer.Inputs.EnvironmentConfigSoftwareConfigCloudDataLineageIntegrationArgs
{
Enabled = false,
},
EnvVariables =
{
{ "string", "string" },
},
ImageVersion = "string",
PypiPackages =
{
{ "string", "string" },
},
PythonVersion = "string",
SchedulerCount = 0,
WebServerPluginsMode = "string",
},
WebServerConfig = new Gcp.Composer.Inputs.EnvironmentConfigWebServerConfigArgs
{
MachineType = "string",
},
WebServerNetworkAccessControl = new Gcp.Composer.Inputs.EnvironmentConfigWebServerNetworkAccessControlArgs
{
AllowedIpRanges = new[]
{
new Gcp.Composer.Inputs.EnvironmentConfigWebServerNetworkAccessControlAllowedIpRangeArgs
{
Value = "string",
Description = "string",
},
},
},
WorkloadsConfig = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigArgs
{
DagProcessor = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigDagProcessorArgs
{
Count = 0,
Cpu = 0,
MemoryGb = 0,
StorageGb = 0,
},
Scheduler = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigSchedulerArgs
{
Count = 0,
Cpu = 0,
MemoryGb = 0,
StorageGb = 0,
},
Triggerer = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigTriggererArgs
{
Count = 0,
Cpu = 0,
MemoryGb = 0,
},
WebServer = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigWebServerArgs
{
Cpu = 0,
MemoryGb = 0,
StorageGb = 0,
},
Worker = new Gcp.Composer.Inputs.EnvironmentConfigWorkloadsConfigWorkerArgs
{
Cpu = 0,
MaxCount = 0,
MemoryGb = 0,
MinCount = 0,
StorageGb = 0,
},
},
},
Labels =
{
{ "string", "string" },
},
Name = "string",
Project = "string",
Region = "string",
StorageConfig = new Gcp.Composer.Inputs.EnvironmentStorageConfigArgs
{
Bucket = "string",
},
});
example, err := composer.NewEnvironment(ctx, "gcpEnvironmentResource", &composer.EnvironmentArgs{
Config: &composer.EnvironmentConfigArgs{
AirflowUri: pulumi.String("string"),
DagGcsPrefix: pulumi.String("string"),
DataRetentionConfig: &composer.EnvironmentConfigDataRetentionConfigArgs{
AirflowMetadataRetentionConfigs: composer.EnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfigArray{
&composer.EnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfigArgs{
RetentionDays: pulumi.Int(0),
RetentionMode: pulumi.String("string"),
},
},
TaskLogsRetentionConfigs: composer.EnvironmentConfigDataRetentionConfigTaskLogsRetentionConfigArray{
&composer.EnvironmentConfigDataRetentionConfigTaskLogsRetentionConfigArgs{
StorageMode: pulumi.String("string"),
},
},
},
DatabaseConfig: &composer.EnvironmentConfigDatabaseConfigArgs{
MachineType: pulumi.String("string"),
Zone: pulumi.String("string"),
},
EnablePrivateBuildsOnly: pulumi.Bool(false),
EnablePrivateEnvironment: pulumi.Bool(false),
EncryptionConfig: &composer.EnvironmentConfigEncryptionConfigArgs{
KmsKeyName: pulumi.String("string"),
},
EnvironmentSize: pulumi.String("string"),
GkeCluster: pulumi.String("string"),
MaintenanceWindow: &composer.EnvironmentConfigMaintenanceWindowArgs{
EndTime: pulumi.String("string"),
Recurrence: pulumi.String("string"),
StartTime: pulumi.String("string"),
},
MasterAuthorizedNetworksConfig: &composer.EnvironmentConfigMasterAuthorizedNetworksConfigArgs{
Enabled: pulumi.Bool(false),
CidrBlocks: composer.EnvironmentConfigMasterAuthorizedNetworksConfigCidrBlockArray{
&composer.EnvironmentConfigMasterAuthorizedNetworksConfigCidrBlockArgs{
CidrBlock: pulumi.String("string"),
DisplayName: pulumi.String("string"),
},
},
},
NodeConfig: &composer.EnvironmentConfigNodeConfigArgs{
ComposerInternalIpv4CidrBlock: pulumi.String("string"),
ComposerNetworkAttachment: pulumi.String("string"),
DiskSizeGb: pulumi.Int(0),
EnableIpMasqAgent: pulumi.Bool(false),
IpAllocationPolicy: &composer.EnvironmentConfigNodeConfigIpAllocationPolicyArgs{
ClusterIpv4CidrBlock: pulumi.String("string"),
ClusterSecondaryRangeName: pulumi.String("string"),
ServicesIpv4CidrBlock: pulumi.String("string"),
ServicesSecondaryRangeName: pulumi.String("string"),
UseIpAliases: pulumi.Bool(false),
},
MachineType: pulumi.String("string"),
MaxPodsPerNode: pulumi.Int(0),
Network: pulumi.String("string"),
OauthScopes: pulumi.StringArray{
pulumi.String("string"),
},
ServiceAccount: pulumi.String("string"),
Subnetwork: pulumi.String("string"),
Tags: pulumi.StringArray{
pulumi.String("string"),
},
Zone: pulumi.String("string"),
},
NodeCount: pulumi.Int(0),
PrivateEnvironmentConfig: &composer.EnvironmentConfigPrivateEnvironmentConfigArgs{
CloudComposerConnectionSubnetwork: pulumi.String("string"),
CloudComposerNetworkIpv4CidrBlock: pulumi.String("string"),
CloudSqlIpv4CidrBlock: pulumi.String("string"),
ConnectionType: pulumi.String("string"),
EnablePrivateEndpoint: pulumi.Bool(false),
EnablePrivatelyUsedPublicIps: pulumi.Bool(false),
MasterIpv4CidrBlock: pulumi.String("string"),
WebServerIpv4CidrBlock: pulumi.String("string"),
},
RecoveryConfig: &composer.EnvironmentConfigRecoveryConfigArgs{
ScheduledSnapshotsConfig: &composer.EnvironmentConfigRecoveryConfigScheduledSnapshotsConfigArgs{
Enabled: pulumi.Bool(false),
SnapshotCreationSchedule: pulumi.String("string"),
SnapshotLocation: pulumi.String("string"),
TimeZone: pulumi.String("string"),
},
},
ResilienceMode: pulumi.String("string"),
SoftwareConfig: &composer.EnvironmentConfigSoftwareConfigArgs{
AirflowConfigOverrides: pulumi.StringMap{
"string": pulumi.String("string"),
},
CloudDataLineageIntegration: &composer.EnvironmentConfigSoftwareConfigCloudDataLineageIntegrationArgs{
Enabled: pulumi.Bool(false),
},
EnvVariables: pulumi.StringMap{
"string": pulumi.String("string"),
},
ImageVersion: pulumi.String("string"),
PypiPackages: pulumi.StringMap{
"string": pulumi.String("string"),
},
PythonVersion: pulumi.String("string"),
SchedulerCount: pulumi.Int(0),
WebServerPluginsMode: pulumi.String("string"),
},
WebServerConfig: &composer.EnvironmentConfigWebServerConfigArgs{
MachineType: pulumi.String("string"),
},
WebServerNetworkAccessControl: &composer.EnvironmentConfigWebServerNetworkAccessControlArgs{
AllowedIpRanges: composer.EnvironmentConfigWebServerNetworkAccessControlAllowedIpRangeArray{
&composer.EnvironmentConfigWebServerNetworkAccessControlAllowedIpRangeArgs{
Value: pulumi.String("string"),
Description: pulumi.String("string"),
},
},
},
WorkloadsConfig: &composer.EnvironmentConfigWorkloadsConfigArgs{
DagProcessor: &composer.EnvironmentConfigWorkloadsConfigDagProcessorArgs{
Count: pulumi.Int(0),
Cpu: pulumi.Float64(0),
MemoryGb: pulumi.Float64(0),
StorageGb: pulumi.Float64(0),
},
Scheduler: &composer.EnvironmentConfigWorkloadsConfigSchedulerArgs{
Count: pulumi.Int(0),
Cpu: pulumi.Float64(0),
MemoryGb: pulumi.Float64(0),
StorageGb: pulumi.Float64(0),
},
Triggerer: &composer.EnvironmentConfigWorkloadsConfigTriggererArgs{
Count: pulumi.Int(0),
Cpu: pulumi.Float64(0),
MemoryGb: pulumi.Float64(0),
},
WebServer: &composer.EnvironmentConfigWorkloadsConfigWebServerArgs{
Cpu: pulumi.Float64(0),
MemoryGb: pulumi.Float64(0),
StorageGb: pulumi.Float64(0),
},
Worker: &composer.EnvironmentConfigWorkloadsConfigWorkerArgs{
Cpu: pulumi.Float64(0),
MaxCount: pulumi.Int(0),
MemoryGb: pulumi.Float64(0),
MinCount: pulumi.Int(0),
StorageGb: pulumi.Float64(0),
},
},
},
Labels: pulumi.StringMap{
"string": pulumi.String("string"),
},
Name: pulumi.String("string"),
Project: pulumi.String("string"),
Region: pulumi.String("string"),
StorageConfig: &composer.EnvironmentStorageConfigArgs{
Bucket: pulumi.String("string"),
},
})
var gcpEnvironmentResource = new com.pulumi.gcp.composer.Environment("gcpEnvironmentResource", com.pulumi.gcp.composer.EnvironmentArgs.builder()
.config(EnvironmentConfigArgs.builder()
.airflowUri("string")
.dagGcsPrefix("string")
.dataRetentionConfig(EnvironmentConfigDataRetentionConfigArgs.builder()
.airflowMetadataRetentionConfigs(EnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfigArgs.builder()
.retentionDays(0)
.retentionMode("string")
.build())
.taskLogsRetentionConfigs(EnvironmentConfigDataRetentionConfigTaskLogsRetentionConfigArgs.builder()
.storageMode("string")
.build())
.build())
.databaseConfig(EnvironmentConfigDatabaseConfigArgs.builder()
.machineType("string")
.zone("string")
.build())
.enablePrivateBuildsOnly(false)
.enablePrivateEnvironment(false)
.encryptionConfig(EnvironmentConfigEncryptionConfigArgs.builder()
.kmsKeyName("string")
.build())
.environmentSize("string")
.gkeCluster("string")
.maintenanceWindow(EnvironmentConfigMaintenanceWindowArgs.builder()
.endTime("string")
.recurrence("string")
.startTime("string")
.build())
.masterAuthorizedNetworksConfig(EnvironmentConfigMasterAuthorizedNetworksConfigArgs.builder()
.enabled(false)
.cidrBlocks(EnvironmentConfigMasterAuthorizedNetworksConfigCidrBlockArgs.builder()
.cidrBlock("string")
.displayName("string")
.build())
.build())
.nodeConfig(EnvironmentConfigNodeConfigArgs.builder()
.composerInternalIpv4CidrBlock("string")
.composerNetworkAttachment("string")
.diskSizeGb(0)
.enableIpMasqAgent(false)
.ipAllocationPolicy(EnvironmentConfigNodeConfigIpAllocationPolicyArgs.builder()
.clusterIpv4CidrBlock("string")
.clusterSecondaryRangeName("string")
.servicesIpv4CidrBlock("string")
.servicesSecondaryRangeName("string")
.useIpAliases(false)
.build())
.machineType("string")
.maxPodsPerNode(0)
.network("string")
.oauthScopes("string")
.serviceAccount("string")
.subnetwork("string")
.tags("string")
.zone("string")
.build())
.nodeCount(0)
.privateEnvironmentConfig(EnvironmentConfigPrivateEnvironmentConfigArgs.builder()
.cloudComposerConnectionSubnetwork("string")
.cloudComposerNetworkIpv4CidrBlock("string")
.cloudSqlIpv4CidrBlock("string")
.connectionType("string")
.enablePrivateEndpoint(false)
.enablePrivatelyUsedPublicIps(false)
.masterIpv4CidrBlock("string")
.webServerIpv4CidrBlock("string")
.build())
.recoveryConfig(EnvironmentConfigRecoveryConfigArgs.builder()
.scheduledSnapshotsConfig(EnvironmentConfigRecoveryConfigScheduledSnapshotsConfigArgs.builder()
.enabled(false)
.snapshotCreationSchedule("string")
.snapshotLocation("string")
.timeZone("string")
.build())
.build())
.resilienceMode("string")
.softwareConfig(EnvironmentConfigSoftwareConfigArgs.builder()
.airflowConfigOverrides(Map.of("string", "string"))
.cloudDataLineageIntegration(EnvironmentConfigSoftwareConfigCloudDataLineageIntegrationArgs.builder()
.enabled(false)
.build())
.envVariables(Map.of("string", "string"))
.imageVersion("string")
.pypiPackages(Map.of("string", "string"))
.pythonVersion("string")
.schedulerCount(0)
.webServerPluginsMode("string")
.build())
.webServerConfig(EnvironmentConfigWebServerConfigArgs.builder()
.machineType("string")
.build())
.webServerNetworkAccessControl(EnvironmentConfigWebServerNetworkAccessControlArgs.builder()
.allowedIpRanges(EnvironmentConfigWebServerNetworkAccessControlAllowedIpRangeArgs.builder()
.value("string")
.description("string")
.build())
.build())
.workloadsConfig(EnvironmentConfigWorkloadsConfigArgs.builder()
.dagProcessor(EnvironmentConfigWorkloadsConfigDagProcessorArgs.builder()
.count(0)
.cpu(0.0)
.memoryGb(0.0)
.storageGb(0.0)
.build())
.scheduler(EnvironmentConfigWorkloadsConfigSchedulerArgs.builder()
.count(0)
.cpu(0.0)
.memoryGb(0.0)
.storageGb(0.0)
.build())
.triggerer(EnvironmentConfigWorkloadsConfigTriggererArgs.builder()
.count(0)
.cpu(0.0)
.memoryGb(0.0)
.build())
.webServer(EnvironmentConfigWorkloadsConfigWebServerArgs.builder()
.cpu(0.0)
.memoryGb(0.0)
.storageGb(0.0)
.build())
.worker(EnvironmentConfigWorkloadsConfigWorkerArgs.builder()
.cpu(0.0)
.maxCount(0)
.memoryGb(0.0)
.minCount(0)
.storageGb(0.0)
.build())
.build())
.build())
.labels(Map.of("string", "string"))
.name("string")
.project("string")
.region("string")
.storageConfig(EnvironmentStorageConfigArgs.builder()
.bucket("string")
.build())
.build());
gcp_environment_resource = gcp.composer.Environment("gcpEnvironmentResource",
config={
"airflow_uri": "string",
"dag_gcs_prefix": "string",
"data_retention_config": {
"airflow_metadata_retention_configs": [{
"retention_days": 0,
"retention_mode": "string",
}],
"task_logs_retention_configs": [{
"storage_mode": "string",
}],
},
"database_config": {
"machine_type": "string",
"zone": "string",
},
"enable_private_builds_only": False,
"enable_private_environment": False,
"encryption_config": {
"kms_key_name": "string",
},
"environment_size": "string",
"gke_cluster": "string",
"maintenance_window": {
"end_time": "string",
"recurrence": "string",
"start_time": "string",
},
"master_authorized_networks_config": {
"enabled": False,
"cidr_blocks": [{
"cidr_block": "string",
"display_name": "string",
}],
},
"node_config": {
"composer_internal_ipv4_cidr_block": "string",
"composer_network_attachment": "string",
"disk_size_gb": 0,
"enable_ip_masq_agent": False,
"ip_allocation_policy": {
"cluster_ipv4_cidr_block": "string",
"cluster_secondary_range_name": "string",
"services_ipv4_cidr_block": "string",
"services_secondary_range_name": "string",
"use_ip_aliases": False,
},
"machine_type": "string",
"max_pods_per_node": 0,
"network": "string",
"oauth_scopes": ["string"],
"service_account": "string",
"subnetwork": "string",
"tags": ["string"],
"zone": "string",
},
"node_count": 0,
"private_environment_config": {
"cloud_composer_connection_subnetwork": "string",
"cloud_composer_network_ipv4_cidr_block": "string",
"cloud_sql_ipv4_cidr_block": "string",
"connection_type": "string",
"enable_private_endpoint": False,
"enable_privately_used_public_ips": False,
"master_ipv4_cidr_block": "string",
"web_server_ipv4_cidr_block": "string",
},
"recovery_config": {
"scheduled_snapshots_config": {
"enabled": False,
"snapshot_creation_schedule": "string",
"snapshot_location": "string",
"time_zone": "string",
},
},
"resilience_mode": "string",
"software_config": {
"airflow_config_overrides": {
"string": "string",
},
"cloud_data_lineage_integration": {
"enabled": False,
},
"env_variables": {
"string": "string",
},
"image_version": "string",
"pypi_packages": {
"string": "string",
},
"python_version": "string",
"scheduler_count": 0,
"web_server_plugins_mode": "string",
},
"web_server_config": {
"machine_type": "string",
},
"web_server_network_access_control": {
"allowed_ip_ranges": [{
"value": "string",
"description": "string",
}],
},
"workloads_config": {
"dag_processor": {
"count": 0,
"cpu": 0,
"memory_gb": 0,
"storage_gb": 0,
},
"scheduler": {
"count": 0,
"cpu": 0,
"memory_gb": 0,
"storage_gb": 0,
},
"triggerer": {
"count": 0,
"cpu": 0,
"memory_gb": 0,
},
"web_server": {
"cpu": 0,
"memory_gb": 0,
"storage_gb": 0,
},
"worker": {
"cpu": 0,
"max_count": 0,
"memory_gb": 0,
"min_count": 0,
"storage_gb": 0,
},
},
},
labels={
"string": "string",
},
name="string",
project="string",
region="string",
storage_config={
"bucket": "string",
})
const gcpEnvironmentResource = new gcp.composer.Environment("gcpEnvironmentResource", {
config: {
airflowUri: "string",
dagGcsPrefix: "string",
dataRetentionConfig: {
airflowMetadataRetentionConfigs: [{
retentionDays: 0,
retentionMode: "string",
}],
taskLogsRetentionConfigs: [{
storageMode: "string",
}],
},
databaseConfig: {
machineType: "string",
zone: "string",
},
enablePrivateBuildsOnly: false,
enablePrivateEnvironment: false,
encryptionConfig: {
kmsKeyName: "string",
},
environmentSize: "string",
gkeCluster: "string",
maintenanceWindow: {
endTime: "string",
recurrence: "string",
startTime: "string",
},
masterAuthorizedNetworksConfig: {
enabled: false,
cidrBlocks: [{
cidrBlock: "string",
displayName: "string",
}],
},
nodeConfig: {
composerInternalIpv4CidrBlock: "string",
composerNetworkAttachment: "string",
diskSizeGb: 0,
enableIpMasqAgent: false,
ipAllocationPolicy: {
clusterIpv4CidrBlock: "string",
clusterSecondaryRangeName: "string",
servicesIpv4CidrBlock: "string",
servicesSecondaryRangeName: "string",
useIpAliases: false,
},
machineType: "string",
maxPodsPerNode: 0,
network: "string",
oauthScopes: ["string"],
serviceAccount: "string",
subnetwork: "string",
tags: ["string"],
zone: "string",
},
nodeCount: 0,
privateEnvironmentConfig: {
cloudComposerConnectionSubnetwork: "string",
cloudComposerNetworkIpv4CidrBlock: "string",
cloudSqlIpv4CidrBlock: "string",
connectionType: "string",
enablePrivateEndpoint: false,
enablePrivatelyUsedPublicIps: false,
masterIpv4CidrBlock: "string",
webServerIpv4CidrBlock: "string",
},
recoveryConfig: {
scheduledSnapshotsConfig: {
enabled: false,
snapshotCreationSchedule: "string",
snapshotLocation: "string",
timeZone: "string",
},
},
resilienceMode: "string",
softwareConfig: {
airflowConfigOverrides: {
string: "string",
},
cloudDataLineageIntegration: {
enabled: false,
},
envVariables: {
string: "string",
},
imageVersion: "string",
pypiPackages: {
string: "string",
},
pythonVersion: "string",
schedulerCount: 0,
webServerPluginsMode: "string",
},
webServerConfig: {
machineType: "string",
},
webServerNetworkAccessControl: {
allowedIpRanges: [{
value: "string",
description: "string",
}],
},
workloadsConfig: {
dagProcessor: {
count: 0,
cpu: 0,
memoryGb: 0,
storageGb: 0,
},
scheduler: {
count: 0,
cpu: 0,
memoryGb: 0,
storageGb: 0,
},
triggerer: {
count: 0,
cpu: 0,
memoryGb: 0,
},
webServer: {
cpu: 0,
memoryGb: 0,
storageGb: 0,
},
worker: {
cpu: 0,
maxCount: 0,
memoryGb: 0,
minCount: 0,
storageGb: 0,
},
},
},
labels: {
string: "string",
},
name: "string",
project: "string",
region: "string",
storageConfig: {
bucket: "string",
},
});
type: gcp:composer:Environment
properties:
config:
airflowUri: string
dagGcsPrefix: string
dataRetentionConfig:
airflowMetadataRetentionConfigs:
- retentionDays: 0
retentionMode: string
taskLogsRetentionConfigs:
- storageMode: string
databaseConfig:
machineType: string
zone: string
enablePrivateBuildsOnly: false
enablePrivateEnvironment: false
encryptionConfig:
kmsKeyName: string
environmentSize: string
gkeCluster: string
maintenanceWindow:
endTime: string
recurrence: string
startTime: string
masterAuthorizedNetworksConfig:
cidrBlocks:
- cidrBlock: string
displayName: string
enabled: false
nodeConfig:
composerInternalIpv4CidrBlock: string
composerNetworkAttachment: string
diskSizeGb: 0
enableIpMasqAgent: false
ipAllocationPolicy:
clusterIpv4CidrBlock: string
clusterSecondaryRangeName: string
servicesIpv4CidrBlock: string
servicesSecondaryRangeName: string
useIpAliases: false
machineType: string
maxPodsPerNode: 0
network: string
oauthScopes:
- string
serviceAccount: string
subnetwork: string
tags:
- string
zone: string
nodeCount: 0
privateEnvironmentConfig:
cloudComposerConnectionSubnetwork: string
cloudComposerNetworkIpv4CidrBlock: string
cloudSqlIpv4CidrBlock: string
connectionType: string
enablePrivateEndpoint: false
enablePrivatelyUsedPublicIps: false
masterIpv4CidrBlock: string
webServerIpv4CidrBlock: string
recoveryConfig:
scheduledSnapshotsConfig:
enabled: false
snapshotCreationSchedule: string
snapshotLocation: string
timeZone: string
resilienceMode: string
softwareConfig:
airflowConfigOverrides:
string: string
cloudDataLineageIntegration:
enabled: false
envVariables:
string: string
imageVersion: string
pypiPackages:
string: string
pythonVersion: string
schedulerCount: 0
webServerPluginsMode: string
webServerConfig:
machineType: string
webServerNetworkAccessControl:
allowedIpRanges:
- description: string
value: string
workloadsConfig:
dagProcessor:
count: 0
cpu: 0
memoryGb: 0
storageGb: 0
scheduler:
count: 0
cpu: 0
memoryGb: 0
storageGb: 0
triggerer:
count: 0
cpu: 0
memoryGb: 0
webServer:
cpu: 0
memoryGb: 0
storageGb: 0
worker:
cpu: 0
maxCount: 0
memoryGb: 0
minCount: 0
storageGb: 0
labels:
string: string
name: string
project: string
region: string
storageConfig:
bucket: string
Environment 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 Environment resource accepts the following input properties:
- Config
Environment
Config - Configuration parameters for this environment.
- Labels Dictionary<string, string>
- User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: a-z?. Label values must be between 0 and 63 characters long and must conform to the regular expression (a-z?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be <= 128 bytes in size.
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. - Name string
- Name of the environment.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Region string
- The location or Compute Engine region for the environment.
- Storage
Config EnvironmentStorage Config - Configuration options for storage used by Composer environment.
- Config
Environment
Config Args - Configuration parameters for this environment.
- Labels map[string]string
- User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: a-z?. Label values must be between 0 and 63 characters long and must conform to the regular expression (a-z?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be <= 128 bytes in size.
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. - Name string
- Name of the environment.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Region string
- The location or Compute Engine region for the environment.
- Storage
Config EnvironmentStorage Config Args - Configuration options for storage used by Composer environment.
- config
Environment
Config - Configuration parameters for this environment.
- labels Map<String,String>
- User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: a-z?. Label values must be between 0 and 63 characters long and must conform to the regular expression (a-z?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be <= 128 bytes in size.
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. - name String
- Name of the environment.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- region String
- The location or Compute Engine region for the environment.
- storage
Config EnvironmentStorage Config - Configuration options for storage used by Composer environment.
- config
Environment
Config - Configuration parameters for this environment.
- labels {[key: string]: string}
- User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: a-z?. Label values must be between 0 and 63 characters long and must conform to the regular expression (a-z?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be <= 128 bytes in size.
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. - name string
- Name of the environment.
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- region string
- The location or Compute Engine region for the environment.
- storage
Config EnvironmentStorage Config - Configuration options for storage used by Composer environment.
- config
Environment
Config Args - Configuration parameters for this environment.
- labels Mapping[str, str]
- User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: a-z?. Label values must be between 0 and 63 characters long and must conform to the regular expression (a-z?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be <= 128 bytes in size.
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. - name str
- Name of the environment.
- project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- region str
- The location or Compute Engine region for the environment.
- storage_
config EnvironmentStorage Config Args - Configuration options for storage used by Composer environment.
- config Property Map
- Configuration parameters for this environment.
- labels Map<String>
- User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: a-z?. Label values must be between 0 and 63 characters long and must conform to the regular expression (a-z?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be <= 128 bytes in size.
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. - name String
- Name of the environment.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- region String
- The location or Compute Engine region for the environment.
- storage
Config Property Map - Configuration options for storage used by Composer environment.
Outputs
All input properties are implicitly available as output properties. Additionally, the Environment resource produces the following output properties:
- Effective
Labels Dictionary<string, string> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
- Id string
- The provider-assigned unique ID for this managed resource.
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Effective
Labels map[string]string - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
- Id string
- The provider-assigned unique ID for this managed resource.
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- effective
Labels Map<String,String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
- id String
- The provider-assigned unique ID for this managed resource.
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- effective
Labels {[key: string]: string} - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
- id string
- The provider-assigned unique ID for this managed resource.
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- effective_
labels Mapping[str, str] - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
- id str
- The provider-assigned unique ID for this managed resource.
- pulumi_
labels Mapping[str, str] - The combination of labels configured directly on the resource and default labels configured on the provider.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
- id String
- The provider-assigned unique ID for this managed resource.
- pulumi
Labels Map<String> - The combination of labels configured directly on the resource and default labels configured on the provider.
Look up Existing Environment Resource
Get an existing Environment 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?: EnvironmentState, opts?: CustomResourceOptions): Environment@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
config: Optional[EnvironmentConfigArgs] = None,
effective_labels: Optional[Mapping[str, str]] = None,
labels: Optional[Mapping[str, str]] = None,
name: Optional[str] = None,
project: Optional[str] = None,
pulumi_labels: Optional[Mapping[str, str]] = None,
region: Optional[str] = None,
storage_config: Optional[EnvironmentStorageConfigArgs] = None) -> Environmentfunc GetEnvironment(ctx *Context, name string, id IDInput, state *EnvironmentState, opts ...ResourceOption) (*Environment, error)public static Environment Get(string name, Input<string> id, EnvironmentState? state, CustomResourceOptions? opts = null)public static Environment get(String name, Output<String> id, EnvironmentState state, CustomResourceOptions options)resources: _: type: gcp:composer:Environment get: 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.
- Config
Environment
Config - Configuration parameters for this environment.
- Effective
Labels Dictionary<string, string> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
- Labels Dictionary<string, string>
- User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: a-z?. Label values must be between 0 and 63 characters long and must conform to the regular expression (a-z?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be <= 128 bytes in size.
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. - Name string
- Name of the environment.
- 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.
- Region string
- The location or Compute Engine region for the environment.
- Storage
Config EnvironmentStorage Config - Configuration options for storage used by Composer environment.
- Config
Environment
Config Args - Configuration parameters for this environment.
- Effective
Labels map[string]string - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
- Labels map[string]string
- User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: a-z?. Label values must be between 0 and 63 characters long and must conform to the regular expression (a-z?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be <= 128 bytes in size.
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. - Name string
- Name of the environment.
- 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.
- Region string
- The location or Compute Engine region for the environment.
- Storage
Config EnvironmentStorage Config Args - Configuration options for storage used by Composer environment.
- config
Environment
Config - Configuration parameters for this environment.
- effective
Labels Map<String,String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
- labels Map<String,String>
- User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: a-z?. Label values must be between 0 and 63 characters long and must conform to the regular expression (a-z?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be <= 128 bytes in size.
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. - name String
- Name of the environment.
- 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.
- region String
- The location or Compute Engine region for the environment.
- storage
Config EnvironmentStorage Config - Configuration options for storage used by Composer environment.
- config
Environment
Config - Configuration parameters for this environment.
- effective
Labels {[key: string]: string} - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
- labels {[key: string]: string}
- User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: a-z?. Label values must be between 0 and 63 characters long and must conform to the regular expression (a-z?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be <= 128 bytes in size.
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. - name string
- Name of the environment.
- 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.
- region string
- The location or Compute Engine region for the environment.
- storage
Config EnvironmentStorage Config - Configuration options for storage used by Composer environment.
- config
Environment
Config Args - Configuration parameters for this environment.
- effective_
labels Mapping[str, str] - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
- labels Mapping[str, str]
- User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: a-z?. Label values must be between 0 and 63 characters long and must conform to the regular expression (a-z?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be <= 128 bytes in size.
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. - name str
- Name of the environment.
- 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.
- region str
- The location or Compute Engine region for the environment.
- storage_
config EnvironmentStorage Config Args - Configuration options for storage used by Composer environment.
- config Property Map
- Configuration parameters for this environment.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
- labels Map<String>
- User-defined labels for this environment. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: a-z?. Label values must be between 0 and 63 characters long and must conform to the regular expression (a-z?)?. No more than 64 labels can be associated with a given environment. Both keys and values must be <= 128 bytes in size.
**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. - name String
- Name of the environment.
- 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.
- region String
- The location or Compute Engine region for the environment.
- storage
Config Property Map - Configuration options for storage used by Composer environment.
Supporting Types
EnvironmentConfig, EnvironmentConfigArgs
- Airflow
Uri string - The URI of the Apache Airflow Web UI hosted within this environment.
- Dag
Gcs stringPrefix - The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using '/'-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with this prefix.
- Data
Retention EnvironmentConfig Config Data Retention Config - The configuration setting for Airflow data retention mechanism. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4. or newer
- Database
Config EnvironmentConfig Database Config - The configuration of Cloud SQL instance that is used by the Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Enable
Private boolBuilds Only - Optional. If true, builds performed during operations that install Python packages have only private connectivity to Google services. If false, the builds also have access to the internet.
- Enable
Private boolEnvironment - Optional. If true, a private Composer environment will be created.
- Encryption
Config EnvironmentConfig Encryption Config - The encryption options for the Composer environment and its dependencies.
- Environment
Size string - The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- Gke
Cluster string - The Kubernetes Engine cluster used to run this environment.
- Maintenance
Window EnvironmentConfig Maintenance Window - The configuration for Cloud Composer maintenance window.
-
Environment
Config Master Authorized Networks Config - Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.
- Node
Config EnvironmentConfig Node Config - The configuration used for the Kubernetes Engine cluster.
- Node
Count int - The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Private
Environment EnvironmentConfig Config Private Environment Config - The configuration used for the Private IP Cloud Composer environment.
- Recovery
Config EnvironmentConfig Recovery Config - The recovery configuration settings for the Cloud Composer environment
- Resilience
Mode string - Whether high resilience is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.1.15-airflow-..* and newer.
- Software
Config EnvironmentConfig Software Config - The configuration settings for software inside the environment.
- Web
Server EnvironmentConfig Config Web Server Config - The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Web
Server EnvironmentNetwork Access Control Config Web Server Network Access Control - Network-level access control policy for the Airflow web server.
- Workloads
Config EnvironmentConfig Workloads Config - The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- Airflow
Uri string - The URI of the Apache Airflow Web UI hosted within this environment.
- Dag
Gcs stringPrefix - The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using '/'-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with this prefix.
- Data
Retention EnvironmentConfig Config Data Retention Config - The configuration setting for Airflow data retention mechanism. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4. or newer
- Database
Config EnvironmentConfig Database Config - The configuration of Cloud SQL instance that is used by the Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Enable
Private boolBuilds Only - Optional. If true, builds performed during operations that install Python packages have only private connectivity to Google services. If false, the builds also have access to the internet.
- Enable
Private boolEnvironment - Optional. If true, a private Composer environment will be created.
- Encryption
Config EnvironmentConfig Encryption Config - The encryption options for the Composer environment and its dependencies.
- Environment
Size string - The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- Gke
Cluster string - The Kubernetes Engine cluster used to run this environment.
- Maintenance
Window EnvironmentConfig Maintenance Window - The configuration for Cloud Composer maintenance window.
-
Environment
Config Master Authorized Networks Config - Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.
- Node
Config EnvironmentConfig Node Config - The configuration used for the Kubernetes Engine cluster.
- Node
Count int - The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Private
Environment EnvironmentConfig Config Private Environment Config - The configuration used for the Private IP Cloud Composer environment.
- Recovery
Config EnvironmentConfig Recovery Config - The recovery configuration settings for the Cloud Composer environment
- Resilience
Mode string - Whether high resilience is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.1.15-airflow-..* and newer.
- Software
Config EnvironmentConfig Software Config - The configuration settings for software inside the environment.
- Web
Server EnvironmentConfig Config Web Server Config - The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Web
Server EnvironmentNetwork Access Control Config Web Server Network Access Control - Network-level access control policy for the Airflow web server.
- Workloads
Config EnvironmentConfig Workloads Config - The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- airflow
Uri String - The URI of the Apache Airflow Web UI hosted within this environment.
- dag
Gcs StringPrefix - The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using '/'-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with this prefix.
- data
Retention EnvironmentConfig Config Data Retention Config - The configuration setting for Airflow data retention mechanism. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4. or newer
- database
Config EnvironmentConfig Database Config - The configuration of Cloud SQL instance that is used by the Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- enable
Private BooleanBuilds Only - Optional. If true, builds performed during operations that install Python packages have only private connectivity to Google services. If false, the builds also have access to the internet.
- enable
Private BooleanEnvironment - Optional. If true, a private Composer environment will be created.
- encryption
Config EnvironmentConfig Encryption Config - The encryption options for the Composer environment and its dependencies.
- environment
Size String - The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- gke
Cluster String - The Kubernetes Engine cluster used to run this environment.
- maintenance
Window EnvironmentConfig Maintenance Window - The configuration for Cloud Composer maintenance window.
-
Environment
Config Master Authorized Networks Config - Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.
- node
Config EnvironmentConfig Node Config - The configuration used for the Kubernetes Engine cluster.
- node
Count Integer - The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- private
Environment EnvironmentConfig Config Private Environment Config - The configuration used for the Private IP Cloud Composer environment.
- recovery
Config EnvironmentConfig Recovery Config - The recovery configuration settings for the Cloud Composer environment
- resilience
Mode String - Whether high resilience is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.1.15-airflow-..* and newer.
- software
Config EnvironmentConfig Software Config - The configuration settings for software inside the environment.
- web
Server EnvironmentConfig Config Web Server Config - The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- web
Server EnvironmentNetwork Access Control Config Web Server Network Access Control - Network-level access control policy for the Airflow web server.
- workloads
Config EnvironmentConfig Workloads Config - The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- airflow
Uri string - The URI of the Apache Airflow Web UI hosted within this environment.
- dag
Gcs stringPrefix - The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using '/'-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with this prefix.
- data
Retention EnvironmentConfig Config Data Retention Config - The configuration setting for Airflow data retention mechanism. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4. or newer
- database
Config EnvironmentConfig Database Config - The configuration of Cloud SQL instance that is used by the Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- enable
Private booleanBuilds Only - Optional. If true, builds performed during operations that install Python packages have only private connectivity to Google services. If false, the builds also have access to the internet.
- enable
Private booleanEnvironment - Optional. If true, a private Composer environment will be created.
- encryption
Config EnvironmentConfig Encryption Config - The encryption options for the Composer environment and its dependencies.
- environment
Size string - The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- gke
Cluster string - The Kubernetes Engine cluster used to run this environment.
- maintenance
Window EnvironmentConfig Maintenance Window - The configuration for Cloud Composer maintenance window.
-
Environment
Config Master Authorized Networks Config - Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.
- node
Config EnvironmentConfig Node Config - The configuration used for the Kubernetes Engine cluster.
- node
Count number - The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- private
Environment EnvironmentConfig Config Private Environment Config - The configuration used for the Private IP Cloud Composer environment.
- recovery
Config EnvironmentConfig Recovery Config - The recovery configuration settings for the Cloud Composer environment
- resilience
Mode string - Whether high resilience is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.1.15-airflow-..* and newer.
- software
Config EnvironmentConfig Software Config - The configuration settings for software inside the environment.
- web
Server EnvironmentConfig Config Web Server Config - The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- web
Server EnvironmentNetwork Access Control Config Web Server Network Access Control - Network-level access control policy for the Airflow web server.
- workloads
Config EnvironmentConfig Workloads Config - The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- airflow_
uri str - The URI of the Apache Airflow Web UI hosted within this environment.
- dag_
gcs_ strprefix - The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using '/'-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with this prefix.
- data_
retention_ Environmentconfig Config Data Retention Config - The configuration setting for Airflow data retention mechanism. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4. or newer
- database_
config EnvironmentConfig Database Config - The configuration of Cloud SQL instance that is used by the Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- enable_
private_ boolbuilds_ only - Optional. If true, builds performed during operations that install Python packages have only private connectivity to Google services. If false, the builds also have access to the internet.
- enable_
private_ boolenvironment - Optional. If true, a private Composer environment will be created.
- encryption_
config EnvironmentConfig Encryption Config - The encryption options for the Composer environment and its dependencies.
- environment_
size str - The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- gke_
cluster str - The Kubernetes Engine cluster used to run this environment.
- maintenance_
window EnvironmentConfig Maintenance Window - The configuration for Cloud Composer maintenance window.
-
Environment
Config Master Authorized Networks Config - Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.
- node_
config EnvironmentConfig Node Config - The configuration used for the Kubernetes Engine cluster.
- node_
count int - The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- private_
environment_ Environmentconfig Config Private Environment Config - The configuration used for the Private IP Cloud Composer environment.
- recovery_
config EnvironmentConfig Recovery Config - The recovery configuration settings for the Cloud Composer environment
- resilience_
mode str - Whether high resilience is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.1.15-airflow-..* and newer.
- software_
config EnvironmentConfig Software Config - The configuration settings for software inside the environment.
- web_
server_ Environmentconfig Config Web Server Config - The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- web_
server_ Environmentnetwork_ access_ control Config Web Server Network Access Control - Network-level access control policy for the Airflow web server.
- workloads_
config EnvironmentConfig Workloads Config - The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- airflow
Uri String - The URI of the Apache Airflow Web UI hosted within this environment.
- dag
Gcs StringPrefix - The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using '/'-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with this prefix.
- data
Retention Property MapConfig - The configuration setting for Airflow data retention mechanism. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4. or newer
- database
Config Property Map - The configuration of Cloud SQL instance that is used by the Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- enable
Private BooleanBuilds Only - Optional. If true, builds performed during operations that install Python packages have only private connectivity to Google services. If false, the builds also have access to the internet.
- enable
Private BooleanEnvironment - Optional. If true, a private Composer environment will be created.
- encryption
Config Property Map - The encryption options for the Composer environment and its dependencies.
- environment
Size String - The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- gke
Cluster String - The Kubernetes Engine cluster used to run this environment.
- maintenance
Window Property Map - The configuration for Cloud Composer maintenance window.
- Property Map
- Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.
- node
Config Property Map - The configuration used for the Kubernetes Engine cluster.
- node
Count Number - The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- private
Environment Property MapConfig - The configuration used for the Private IP Cloud Composer environment.
- recovery
Config Property Map - The recovery configuration settings for the Cloud Composer environment
- resilience
Mode String - Whether high resilience is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.1.15-airflow-..* and newer.
- software
Config Property Map - The configuration settings for software inside the environment.
- web
Server Property MapConfig - The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- web
Server Property MapNetwork Access Control - Network-level access control policy for the Airflow web server.
- workloads
Config Property Map - The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
EnvironmentConfigDataRetentionConfig, EnvironmentConfigDataRetentionConfigArgs
- Airflow
Metadata List<EnvironmentRetention Configs Config Data Retention Config Airflow Metadata Retention Config> - Optional. The policy for airflow metadata database retention.
- Task
Logs List<EnvironmentRetention Configs Config Data Retention Config Task Logs Retention Config> - Optional. The configuration setting for Task Logs.
- Airflow
Metadata []EnvironmentRetention Configs Config Data Retention Config Airflow Metadata Retention Config - Optional. The policy for airflow metadata database retention.
- Task
Logs []EnvironmentRetention Configs Config Data Retention Config Task Logs Retention Config - Optional. The configuration setting for Task Logs.
- airflow
Metadata List<EnvironmentRetention Configs Config Data Retention Config Airflow Metadata Retention Config> - Optional. The policy for airflow metadata database retention.
- task
Logs List<EnvironmentRetention Configs Config Data Retention Config Task Logs Retention Config> - Optional. The configuration setting for Task Logs.
- airflow
Metadata EnvironmentRetention Configs Config Data Retention Config Airflow Metadata Retention Config[] - Optional. The policy for airflow metadata database retention.
- task
Logs EnvironmentRetention Configs Config Data Retention Config Task Logs Retention Config[] - Optional. The configuration setting for Task Logs.
- airflow_
metadata_ Sequence[Environmentretention_ configs Config Data Retention Config Airflow Metadata Retention Config] - Optional. The policy for airflow metadata database retention.
- task_
logs_ Sequence[Environmentretention_ configs Config Data Retention Config Task Logs Retention Config] - Optional. The configuration setting for Task Logs.
- airflow
Metadata List<Property Map>Retention Configs - Optional. The policy for airflow metadata database retention.
- task
Logs List<Property Map>Retention Configs - Optional. The configuration setting for Task Logs.
EnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig, EnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfigArgs
- Retention
Days int - How many days data should be retained for. This field is supported for Cloud Composer environments in composer 3 and newer.
- Retention
Mode string - Whether database retention is enabled or not. This field is supported for Cloud Composer environments in composer 3 and newer.
- Retention
Days int - How many days data should be retained for. This field is supported for Cloud Composer environments in composer 3 and newer.
- Retention
Mode string - Whether database retention is enabled or not. This field is supported for Cloud Composer environments in composer 3 and newer.
- retention
Days Integer - How many days data should be retained for. This field is supported for Cloud Composer environments in composer 3 and newer.
- retention
Mode String - Whether database retention is enabled or not. This field is supported for Cloud Composer environments in composer 3 and newer.
- retention
Days number - How many days data should be retained for. This field is supported for Cloud Composer environments in composer 3 and newer.
- retention
Mode string - Whether database retention is enabled or not. This field is supported for Cloud Composer environments in composer 3 and newer.
- retention_
days int - How many days data should be retained for. This field is supported for Cloud Composer environments in composer 3 and newer.
- retention_
mode str - Whether database retention is enabled or not. This field is supported for Cloud Composer environments in composer 3 and newer.
- retention
Days Number - How many days data should be retained for. This field is supported for Cloud Composer environments in composer 3 and newer.
- retention
Mode String - Whether database retention is enabled or not. This field is supported for Cloud Composer environments in composer 3 and newer.
EnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig, EnvironmentConfigDataRetentionConfigTaskLogsRetentionConfigArgs
- Storage
Mode string - Whether logs in cloud logging only is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4 and newer but not in composer-3*
- Storage
Mode string - Whether logs in cloud logging only is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4 and newer but not in composer-3*
- storage
Mode String - Whether logs in cloud logging only is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4 and newer but not in composer-3*
- storage
Mode string - Whether logs in cloud logging only is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4 and newer but not in composer-3*
- storage_
mode str - Whether logs in cloud logging only is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4 and newer but not in composer-3*
- storage
Mode String - Whether logs in cloud logging only is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4 and newer but not in composer-3*
EnvironmentConfigDatabaseConfig, EnvironmentConfigDatabaseConfigArgs
- Machine
Type string - Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used.
- Zone string
- Optional. Cloud SQL database preferred zone.
- Machine
Type string - Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used.
- Zone string
- Optional. Cloud SQL database preferred zone.
- machine
Type String - Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used.
- zone String
- Optional. Cloud SQL database preferred zone.
- machine
Type string - Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used.
- zone string
- Optional. Cloud SQL database preferred zone.
- machine_
type str - Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used.
- zone str
- Optional. Cloud SQL database preferred zone.
- machine
Type String - Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used.
- zone String
- Optional. Cloud SQL database preferred zone.
EnvironmentConfigEncryptionConfig, EnvironmentConfigEncryptionConfigArgs
- Kms
Key stringName - Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated.
- Kms
Key stringName - Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated.
- kms
Key StringName - Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated.
- kms
Key stringName - Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated.
- kms_
key_ strname - Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated.
- kms
Key StringName - Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated.
EnvironmentConfigMaintenanceWindow, EnvironmentConfigMaintenanceWindowArgs
- End
Time string - Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end-time must be in the future, relative to 'start_time'.
- Recurrence string
- Maintenance window recurrence. Format is a subset of RFC-5545 (https://tools.ietf.org/html/rfc5545) 'RRULE'. The only allowed values for 'FREQ' field are 'FREQ=DAILY' and 'FREQ=WEEKLY;BYDAY=...'. Example values: 'FREQ=WEEKLY;BYDAY=TU,WE', 'FREQ=DAILY'.
- Start
Time string - Start time of the first recurrence of the maintenance window.
- End
Time string - Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end-time must be in the future, relative to 'start_time'.
- Recurrence string
- Maintenance window recurrence. Format is a subset of RFC-5545 (https://tools.ietf.org/html/rfc5545) 'RRULE'. The only allowed values for 'FREQ' field are 'FREQ=DAILY' and 'FREQ=WEEKLY;BYDAY=...'. Example values: 'FREQ=WEEKLY;BYDAY=TU,WE', 'FREQ=DAILY'.
- Start
Time string - Start time of the first recurrence of the maintenance window.
- end
Time String - Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end-time must be in the future, relative to 'start_time'.
- recurrence String
- Maintenance window recurrence. Format is a subset of RFC-5545 (https://tools.ietf.org/html/rfc5545) 'RRULE'. The only allowed values for 'FREQ' field are 'FREQ=DAILY' and 'FREQ=WEEKLY;BYDAY=...'. Example values: 'FREQ=WEEKLY;BYDAY=TU,WE', 'FREQ=DAILY'.
- start
Time String - Start time of the first recurrence of the maintenance window.
- end
Time string - Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end-time must be in the future, relative to 'start_time'.
- recurrence string
- Maintenance window recurrence. Format is a subset of RFC-5545 (https://tools.ietf.org/html/rfc5545) 'RRULE'. The only allowed values for 'FREQ' field are 'FREQ=DAILY' and 'FREQ=WEEKLY;BYDAY=...'. Example values: 'FREQ=WEEKLY;BYDAY=TU,WE', 'FREQ=DAILY'.
- start
Time string - Start time of the first recurrence of the maintenance window.
- end_
time str - Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end-time must be in the future, relative to 'start_time'.
- recurrence str
- Maintenance window recurrence. Format is a subset of RFC-5545 (https://tools.ietf.org/html/rfc5545) 'RRULE'. The only allowed values for 'FREQ' field are 'FREQ=DAILY' and 'FREQ=WEEKLY;BYDAY=...'. Example values: 'FREQ=WEEKLY;BYDAY=TU,WE', 'FREQ=DAILY'.
- start_
time str - Start time of the first recurrence of the maintenance window.
- end
Time String - Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end-time must be in the future, relative to 'start_time'.
- recurrence String
- Maintenance window recurrence. Format is a subset of RFC-5545 (https://tools.ietf.org/html/rfc5545) 'RRULE'. The only allowed values for 'FREQ' field are 'FREQ=DAILY' and 'FREQ=WEEKLY;BYDAY=...'. Example values: 'FREQ=WEEKLY;BYDAY=TU,WE', 'FREQ=DAILY'.
- start
Time String - Start time of the first recurrence of the maintenance window.
EnvironmentConfigMasterAuthorizedNetworksConfig, EnvironmentConfigMasterAuthorizedNetworksConfigArgs
- Enabled bool
- Whether or not master authorized networks is enabled.
- Cidr
Blocks List<EnvironmentConfig Master Authorized Networks Config Cidr Block> - cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
- Enabled bool
- Whether or not master authorized networks is enabled.
- Cidr
Blocks []EnvironmentConfig Master Authorized Networks Config Cidr Block - cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
- enabled Boolean
- Whether or not master authorized networks is enabled.
- cidr
Blocks List<EnvironmentConfig Master Authorized Networks Config Cidr Block> - cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
- enabled boolean
- Whether or not master authorized networks is enabled.
- cidr
Blocks EnvironmentConfig Master Authorized Networks Config Cidr Block[] - cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
- enabled bool
- Whether or not master authorized networks is enabled.
- cidr_
blocks Sequence[EnvironmentConfig Master Authorized Networks Config Cidr Block] - cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
- enabled Boolean
- Whether or not master authorized networks is enabled.
- cidr
Blocks List<Property Map> - cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
EnvironmentConfigMasterAuthorizedNetworksConfigCidrBlock, EnvironmentConfigMasterAuthorizedNetworksConfigCidrBlockArgs
- Cidr
Block string - cidr_block must be specified in CIDR notation.
- Display
Name string - display_name is a field for users to identify CIDR blocks.
- Cidr
Block string - cidr_block must be specified in CIDR notation.
- Display
Name string - display_name is a field for users to identify CIDR blocks.
- cidr
Block String - cidr_block must be specified in CIDR notation.
- display
Name String - display_name is a field for users to identify CIDR blocks.
- cidr
Block string - cidr_block must be specified in CIDR notation.
- display
Name string - display_name is a field for users to identify CIDR blocks.
- cidr_
block str - cidr_block must be specified in CIDR notation.
- display_
name str - display_name is a field for users to identify CIDR blocks.
- cidr
Block String - cidr_block must be specified in CIDR notation.
- display
Name String - display_name is a field for users to identify CIDR blocks.
EnvironmentConfigNodeConfig, EnvironmentConfigNodeConfigArgs
- Composer
Internal stringIpv4Cidr Block - IPv4 cidr range that will be used by Composer internal components.
- Composer
Network stringAttachment - PSC (Private Service Connect) Network entry point. Customers can pre-create the Network Attachment and point Cloud Composer environment to use. It is possible to share network attachment among many environments, provided enough IP addresses are available.
- Disk
Size intGb - The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Enable
Ip boolMasq Agent - Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent
- Ip
Allocation EnvironmentPolicy Config Node Config Ip Allocation Policy - Configuration for controlling how IPs are allocated in the GKE cluster. Cannot be updated.
- Machine
Type string - The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Max
Pods intPer Node - The maximum pods per node in the GKE cluster allocated during environment creation. Lowering this value reduces IP address consumption by the Cloud Composer Kubernetes cluster. This value can only be set during environment creation, and only if the environment is VPC-Native. The range of possible values is 8-110, and the default is 32. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Network string
- The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. The network must belong to the environment's project. If unspecified, the "default" network ID in the environment's project is used. If a Custom Subnet Network is provided, subnetwork must also be provided.
- Oauth
Scopes List<string> - The set of Google API scopes to be made available on all node VMs. Cannot be updated. If empty, defaults to ["https://www.googleapis.com/auth/cloud-platform"]. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Service
Account string - The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the "default" Compute Engine service account is used. Cannot be updated. If given, note that the service account must have roles/composer.worker for any GCP resources created under the Cloud Composer Environment.
- Subnetwork string
- The Compute Engine subnetwork to be used for machine communications, specified as a self-link, relative resource name (e.g. "projects/{project}/regions/{region}/subnetworks/{subnetwork}"), or by name. If subnetwork is provided, network must also be provided and the subnetwork must belong to the enclosing environment's project and region.
- List<string>
- The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with RFC1035. Cannot be updated.
- Zone string
- The Compute Engine zone in which to deploy the VMs running the Apache Airflow software, specified as the zone name or relative resource name (e.g. "projects/{project}/zones/{zone}"). Must belong to the enclosing environment's project and region. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Composer
Internal stringIpv4Cidr Block - IPv4 cidr range that will be used by Composer internal components.
- Composer
Network stringAttachment - PSC (Private Service Connect) Network entry point. Customers can pre-create the Network Attachment and point Cloud Composer environment to use. It is possible to share network attachment among many environments, provided enough IP addresses are available.
- Disk
Size intGb - The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Enable
Ip boolMasq Agent - Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent
- Ip
Allocation EnvironmentPolicy Config Node Config Ip Allocation Policy - Configuration for controlling how IPs are allocated in the GKE cluster. Cannot be updated.
- Machine
Type string - The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Max
Pods intPer Node - The maximum pods per node in the GKE cluster allocated during environment creation. Lowering this value reduces IP address consumption by the Cloud Composer Kubernetes cluster. This value can only be set during environment creation, and only if the environment is VPC-Native. The range of possible values is 8-110, and the default is 32. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Network string
- The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. The network must belong to the environment's project. If unspecified, the "default" network ID in the environment's project is used. If a Custom Subnet Network is provided, subnetwork must also be provided.
- Oauth
Scopes []string - The set of Google API scopes to be made available on all node VMs. Cannot be updated. If empty, defaults to ["https://www.googleapis.com/auth/cloud-platform"]. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Service
Account string - The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the "default" Compute Engine service account is used. Cannot be updated. If given, note that the service account must have roles/composer.worker for any GCP resources created under the Cloud Composer Environment.
- Subnetwork string
- The Compute Engine subnetwork to be used for machine communications, specified as a self-link, relative resource name (e.g. "projects/{project}/regions/{region}/subnetworks/{subnetwork}"), or by name. If subnetwork is provided, network must also be provided and the subnetwork must belong to the enclosing environment's project and region.
- []string
- The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with RFC1035. Cannot be updated.
- Zone string
- The Compute Engine zone in which to deploy the VMs running the Apache Airflow software, specified as the zone name or relative resource name (e.g. "projects/{project}/zones/{zone}"). Must belong to the enclosing environment's project and region. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- composer
Internal StringIpv4Cidr Block - IPv4 cidr range that will be used by Composer internal components.
- composer
Network StringAttachment - PSC (Private Service Connect) Network entry point. Customers can pre-create the Network Attachment and point Cloud Composer environment to use. It is possible to share network attachment among many environments, provided enough IP addresses are available.
- disk
Size IntegerGb - The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- enable
Ip BooleanMasq Agent - Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent
- ip
Allocation EnvironmentPolicy Config Node Config Ip Allocation Policy - Configuration for controlling how IPs are allocated in the GKE cluster. Cannot be updated.
- machine
Type String - The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- max
Pods IntegerPer Node - The maximum pods per node in the GKE cluster allocated during environment creation. Lowering this value reduces IP address consumption by the Cloud Composer Kubernetes cluster. This value can only be set during environment creation, and only if the environment is VPC-Native. The range of possible values is 8-110, and the default is 32. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- network String
- The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. The network must belong to the environment's project. If unspecified, the "default" network ID in the environment's project is used. If a Custom Subnet Network is provided, subnetwork must also be provided.
- oauth
Scopes List<String> - The set of Google API scopes to be made available on all node VMs. Cannot be updated. If empty, defaults to ["https://www.googleapis.com/auth/cloud-platform"]. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- service
Account String - The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the "default" Compute Engine service account is used. Cannot be updated. If given, note that the service account must have roles/composer.worker for any GCP resources created under the Cloud Composer Environment.
- subnetwork String
- The Compute Engine subnetwork to be used for machine communications, specified as a self-link, relative resource name (e.g. "projects/{project}/regions/{region}/subnetworks/{subnetwork}"), or by name. If subnetwork is provided, network must also be provided and the subnetwork must belong to the enclosing environment's project and region.
- List<String>
- The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with RFC1035. Cannot be updated.
- zone String
- The Compute Engine zone in which to deploy the VMs running the Apache Airflow software, specified as the zone name or relative resource name (e.g. "projects/{project}/zones/{zone}"). Must belong to the enclosing environment's project and region. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- composer
Internal stringIpv4Cidr Block - IPv4 cidr range that will be used by Composer internal components.
- composer
Network stringAttachment - PSC (Private Service Connect) Network entry point. Customers can pre-create the Network Attachment and point Cloud Composer environment to use. It is possible to share network attachment among many environments, provided enough IP addresses are available.
- disk
Size numberGb - The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- enable
Ip booleanMasq Agent - Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent
- ip
Allocation EnvironmentPolicy Config Node Config Ip Allocation Policy - Configuration for controlling how IPs are allocated in the GKE cluster. Cannot be updated.
- machine
Type string - The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- max
Pods numberPer Node - The maximum pods per node in the GKE cluster allocated during environment creation. Lowering this value reduces IP address consumption by the Cloud Composer Kubernetes cluster. This value can only be set during environment creation, and only if the environment is VPC-Native. The range of possible values is 8-110, and the default is 32. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- network string
- The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. The network must belong to the environment's project. If unspecified, the "default" network ID in the environment's project is used. If a Custom Subnet Network is provided, subnetwork must also be provided.
- oauth
Scopes string[] - The set of Google API scopes to be made available on all node VMs. Cannot be updated. If empty, defaults to ["https://www.googleapis.com/auth/cloud-platform"]. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- service
Account string - The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the "default" Compute Engine service account is used. Cannot be updated. If given, note that the service account must have roles/composer.worker for any GCP resources created under the Cloud Composer Environment.
- subnetwork string
- The Compute Engine subnetwork to be used for machine communications, specified as a self-link, relative resource name (e.g. "projects/{project}/regions/{region}/subnetworks/{subnetwork}"), or by name. If subnetwork is provided, network must also be provided and the subnetwork must belong to the enclosing environment's project and region.
- string[]
- The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with RFC1035. Cannot be updated.
- zone string
- The Compute Engine zone in which to deploy the VMs running the Apache Airflow software, specified as the zone name or relative resource name (e.g. "projects/{project}/zones/{zone}"). Must belong to the enclosing environment's project and region. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- composer_
internal_ stripv4_ cidr_ block - IPv4 cidr range that will be used by Composer internal components.
- composer_
network_ strattachment - PSC (Private Service Connect) Network entry point. Customers can pre-create the Network Attachment and point Cloud Composer environment to use. It is possible to share network attachment among many environments, provided enough IP addresses are available.
- disk_
size_ intgb - The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- enable_
ip_ boolmasq_ agent - Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent
- ip_
allocation_ Environmentpolicy Config Node Config Ip Allocation Policy - Configuration for controlling how IPs are allocated in the GKE cluster. Cannot be updated.
- machine_
type str - The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- max_
pods_ intper_ node - The maximum pods per node in the GKE cluster allocated during environment creation. Lowering this value reduces IP address consumption by the Cloud Composer Kubernetes cluster. This value can only be set during environment creation, and only if the environment is VPC-Native. The range of possible values is 8-110, and the default is 32. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- network str
- The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. The network must belong to the environment's project. If unspecified, the "default" network ID in the environment's project is used. If a Custom Subnet Network is provided, subnetwork must also be provided.
- oauth_
scopes Sequence[str] - The set of Google API scopes to be made available on all node VMs. Cannot be updated. If empty, defaults to ["https://www.googleapis.com/auth/cloud-platform"]. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- service_
account str - The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the "default" Compute Engine service account is used. Cannot be updated. If given, note that the service account must have roles/composer.worker for any GCP resources created under the Cloud Composer Environment.
- subnetwork str
- The Compute Engine subnetwork to be used for machine communications, specified as a self-link, relative resource name (e.g. "projects/{project}/regions/{region}/subnetworks/{subnetwork}"), or by name. If subnetwork is provided, network must also be provided and the subnetwork must belong to the enclosing environment's project and region.
- Sequence[str]
- The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with RFC1035. Cannot be updated.
- zone str
- The Compute Engine zone in which to deploy the VMs running the Apache Airflow software, specified as the zone name or relative resource name (e.g. "projects/{project}/zones/{zone}"). Must belong to the enclosing environment's project and region. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- composer
Internal StringIpv4Cidr Block - IPv4 cidr range that will be used by Composer internal components.
- composer
Network StringAttachment - PSC (Private Service Connect) Network entry point. Customers can pre-create the Network Attachment and point Cloud Composer environment to use. It is possible to share network attachment among many environments, provided enough IP addresses are available.
- disk
Size NumberGb - The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- enable
Ip BooleanMasq Agent - Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent
- ip
Allocation Property MapPolicy - Configuration for controlling how IPs are allocated in the GKE cluster. Cannot be updated.
- machine
Type String - The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- max
Pods NumberPer Node - The maximum pods per node in the GKE cluster allocated during environment creation. Lowering this value reduces IP address consumption by the Cloud Composer Kubernetes cluster. This value can only be set during environment creation, and only if the environment is VPC-Native. The range of possible values is 8-110, and the default is 32. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- network String
- The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: "projects/{project}/zones/{zone}/machineTypes/{machineType}". Must belong to the enclosing environment's project and region/zone. The network must belong to the environment's project. If unspecified, the "default" network ID in the environment's project is used. If a Custom Subnet Network is provided, subnetwork must also be provided.
- oauth
Scopes List<String> - The set of Google API scopes to be made available on all node VMs. Cannot be updated. If empty, defaults to ["https://www.googleapis.com/auth/cloud-platform"]. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- service
Account String - The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the "default" Compute Engine service account is used. Cannot be updated. If given, note that the service account must have roles/composer.worker for any GCP resources created under the Cloud Composer Environment.
- subnetwork String
- The Compute Engine subnetwork to be used for machine communications, specified as a self-link, relative resource name (e.g. "projects/{project}/regions/{region}/subnetworks/{subnetwork}"), or by name. If subnetwork is provided, network must also be provided and the subnetwork must belong to the enclosing environment's project and region.
- List<String>
- The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with RFC1035. Cannot be updated.
- zone String
- The Compute Engine zone in which to deploy the VMs running the Apache Airflow software, specified as the zone name or relative resource name (e.g. "projects/{project}/zones/{zone}"). Must belong to the enclosing environment's project and region. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
EnvironmentConfigNodeConfigIpAllocationPolicy, EnvironmentConfigNodeConfigIpAllocationPolicyArgs
- Cluster
Ipv4Cidr stringBlock - The IP address range used to allocate IP addresses to pods in the cluster. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either clusterSecondaryRangeName or clusterIpv4CidrBlock but not both.
- Cluster
Secondary stringRange Name - The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either clusterSecondaryRangeName or clusterIpv4CidrBlock but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true.
- Services
Ipv4Cidr stringBlock - The IP address range used to allocate IP addresses in this cluster. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either servicesSecondaryRangeName or servicesIpv4CidrBlock but not both.
- Services
Secondary stringRange Name - The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either servicesSecondaryRangeName or servicesIpv4CidrBlock but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true.
- Use
Ip boolAliases - Whether or not to enable Alias IPs in the GKE cluster. If true, a VPC-native cluster is created. Defaults to true if the ipAllocationPolicy block is present in config. This field is only supported for Cloud Composer environments in versions composer-1..-airflow-..*. Environments in newer versions always use VPC-native GKE clusters.
- Cluster
Ipv4Cidr stringBlock - The IP address range used to allocate IP addresses to pods in the cluster. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either clusterSecondaryRangeName or clusterIpv4CidrBlock but not both.
- Cluster
Secondary stringRange Name - The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either clusterSecondaryRangeName or clusterIpv4CidrBlock but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true.
- Services
Ipv4Cidr stringBlock - The IP address range used to allocate IP addresses in this cluster. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either servicesSecondaryRangeName or servicesIpv4CidrBlock but not both.
- Services
Secondary stringRange Name - The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either servicesSecondaryRangeName or servicesIpv4CidrBlock but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true.
- Use
Ip boolAliases - Whether or not to enable Alias IPs in the GKE cluster. If true, a VPC-native cluster is created. Defaults to true if the ipAllocationPolicy block is present in config. This field is only supported for Cloud Composer environments in versions composer-1..-airflow-..*. Environments in newer versions always use VPC-native GKE clusters.
- cluster
Ipv4Cidr StringBlock - The IP address range used to allocate IP addresses to pods in the cluster. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either clusterSecondaryRangeName or clusterIpv4CidrBlock but not both.
- cluster
Secondary StringRange Name - The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either clusterSecondaryRangeName or clusterIpv4CidrBlock but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true.
- services
Ipv4Cidr StringBlock - The IP address range used to allocate IP addresses in this cluster. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either servicesSecondaryRangeName or servicesIpv4CidrBlock but not both.
- services
Secondary StringRange Name - The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either servicesSecondaryRangeName or servicesIpv4CidrBlock but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true.
- use
Ip BooleanAliases - Whether or not to enable Alias IPs in the GKE cluster. If true, a VPC-native cluster is created. Defaults to true if the ipAllocationPolicy block is present in config. This field is only supported for Cloud Composer environments in versions composer-1..-airflow-..*. Environments in newer versions always use VPC-native GKE clusters.
- cluster
Ipv4Cidr stringBlock - The IP address range used to allocate IP addresses to pods in the cluster. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either clusterSecondaryRangeName or clusterIpv4CidrBlock but not both.
- cluster
Secondary stringRange Name - The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either clusterSecondaryRangeName or clusterIpv4CidrBlock but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true.
- services
Ipv4Cidr stringBlock - The IP address range used to allocate IP addresses in this cluster. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either servicesSecondaryRangeName or servicesIpv4CidrBlock but not both.
- services
Secondary stringRange Name - The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either servicesSecondaryRangeName or servicesIpv4CidrBlock but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true.
- use
Ip booleanAliases - Whether or not to enable Alias IPs in the GKE cluster. If true, a VPC-native cluster is created. Defaults to true if the ipAllocationPolicy block is present in config. This field is only supported for Cloud Composer environments in versions composer-1..-airflow-..*. Environments in newer versions always use VPC-native GKE clusters.
- cluster_
ipv4_ strcidr_ block - The IP address range used to allocate IP addresses to pods in the cluster. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either clusterSecondaryRangeName or clusterIpv4CidrBlock but not both.
- cluster_
secondary_ strrange_ name - The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either clusterSecondaryRangeName or clusterIpv4CidrBlock but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true.
- services_
ipv4_ strcidr_ block - The IP address range used to allocate IP addresses in this cluster. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either servicesSecondaryRangeName or servicesIpv4CidrBlock but not both.
- services_
secondary_ strrange_ name - The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either servicesSecondaryRangeName or servicesIpv4CidrBlock but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true.
- use_
ip_ boolaliases - Whether or not to enable Alias IPs in the GKE cluster. If true, a VPC-native cluster is created. Defaults to true if the ipAllocationPolicy block is present in config. This field is only supported for Cloud Composer environments in versions composer-1..-airflow-..*. Environments in newer versions always use VPC-native GKE clusters.
- cluster
Ipv4Cidr StringBlock - The IP address range used to allocate IP addresses to pods in the cluster. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either clusterSecondaryRangeName or clusterIpv4CidrBlock but not both.
- cluster
Secondary StringRange Name - The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either clusterSecondaryRangeName or clusterIpv4CidrBlock but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true.
- services
Ipv4Cidr StringBlock - The IP address range used to allocate IP addresses in this cluster. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either servicesSecondaryRangeName or servicesIpv4CidrBlock but not both.
- services
Secondary StringRange Name - The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either servicesSecondaryRangeName or servicesIpv4CidrBlock but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when useIpAliases is true.
- use
Ip BooleanAliases - Whether or not to enable Alias IPs in the GKE cluster. If true, a VPC-native cluster is created. Defaults to true if the ipAllocationPolicy block is present in config. This field is only supported for Cloud Composer environments in versions composer-1..-airflow-..*. Environments in newer versions always use VPC-native GKE clusters.
EnvironmentConfigPrivateEnvironmentConfig, EnvironmentConfigPrivateEnvironmentConfigArgs
- Cloud
Composer stringConnection Subnetwork - When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- Cloud
Composer stringNetwork Ipv4Cidr Block - The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- Cloud
Sql stringIpv4Cidr Block - The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from web_server_ipv4_cidr_block.
- Connection
Type string - Mode of internal communication within the Composer environment. Must be one of "VPC_PEERING" or "PRIVATE_SERVICE_CONNECT".
- Enable
Private boolEndpoint - If true, access to the public endpoint of the GKE cluster is denied. If this field is set to true, ip_allocation_policy.use_ip_aliases must be set to true for Cloud Composer environments in versions composer-1..-airflow-..*.
- Enable
Privately boolUsed Public Ips - When enabled, IPs from public (non-RFC1918) ranges can be used for ip_allocation_policy.cluster_ipv4_cidr_block and ip_allocation_policy.service_ipv4_cidr_block.
- Master
Ipv4Cidr stringBlock - The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. If left blank, the default value of '172.16.0.0/28' is used.
- Web
Server stringIpv4Cidr Block - The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from masterIpv4CidrBlock and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- Cloud
Composer stringConnection Subnetwork - When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- Cloud
Composer stringNetwork Ipv4Cidr Block - The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- Cloud
Sql stringIpv4Cidr Block - The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from web_server_ipv4_cidr_block.
- Connection
Type string - Mode of internal communication within the Composer environment. Must be one of "VPC_PEERING" or "PRIVATE_SERVICE_CONNECT".
- Enable
Private boolEndpoint - If true, access to the public endpoint of the GKE cluster is denied. If this field is set to true, ip_allocation_policy.use_ip_aliases must be set to true for Cloud Composer environments in versions composer-1..-airflow-..*.
- Enable
Privately boolUsed Public Ips - When enabled, IPs from public (non-RFC1918) ranges can be used for ip_allocation_policy.cluster_ipv4_cidr_block and ip_allocation_policy.service_ipv4_cidr_block.
- Master
Ipv4Cidr stringBlock - The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. If left blank, the default value of '172.16.0.0/28' is used.
- Web
Server stringIpv4Cidr Block - The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from masterIpv4CidrBlock and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- cloud
Composer StringConnection Subnetwork - When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- cloud
Composer StringNetwork Ipv4Cidr Block - The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- cloud
Sql StringIpv4Cidr Block - The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from web_server_ipv4_cidr_block.
- connection
Type String - Mode of internal communication within the Composer environment. Must be one of "VPC_PEERING" or "PRIVATE_SERVICE_CONNECT".
- enable
Private BooleanEndpoint - If true, access to the public endpoint of the GKE cluster is denied. If this field is set to true, ip_allocation_policy.use_ip_aliases must be set to true for Cloud Composer environments in versions composer-1..-airflow-..*.
- enable
Privately BooleanUsed Public Ips - When enabled, IPs from public (non-RFC1918) ranges can be used for ip_allocation_policy.cluster_ipv4_cidr_block and ip_allocation_policy.service_ipv4_cidr_block.
- master
Ipv4Cidr StringBlock - The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. If left blank, the default value of '172.16.0.0/28' is used.
- web
Server StringIpv4Cidr Block - The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from masterIpv4CidrBlock and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- cloud
Composer stringConnection Subnetwork - When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- cloud
Composer stringNetwork Ipv4Cidr Block - The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- cloud
Sql stringIpv4Cidr Block - The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from web_server_ipv4_cidr_block.
- connection
Type string - Mode of internal communication within the Composer environment. Must be one of "VPC_PEERING" or "PRIVATE_SERVICE_CONNECT".
- enable
Private booleanEndpoint - If true, access to the public endpoint of the GKE cluster is denied. If this field is set to true, ip_allocation_policy.use_ip_aliases must be set to true for Cloud Composer environments in versions composer-1..-airflow-..*.
- enable
Privately booleanUsed Public Ips - When enabled, IPs from public (non-RFC1918) ranges can be used for ip_allocation_policy.cluster_ipv4_cidr_block and ip_allocation_policy.service_ipv4_cidr_block.
- master
Ipv4Cidr stringBlock - The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. If left blank, the default value of '172.16.0.0/28' is used.
- web
Server stringIpv4Cidr Block - The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from masterIpv4CidrBlock and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- cloud_
composer_ strconnection_ subnetwork - When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- cloud_
composer_ strnetwork_ ipv4_ cidr_ block - The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- cloud_
sql_ stripv4_ cidr_ block - The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from web_server_ipv4_cidr_block.
- connection_
type str - Mode of internal communication within the Composer environment. Must be one of "VPC_PEERING" or "PRIVATE_SERVICE_CONNECT".
- enable_
private_ boolendpoint - If true, access to the public endpoint of the GKE cluster is denied. If this field is set to true, ip_allocation_policy.use_ip_aliases must be set to true for Cloud Composer environments in versions composer-1..-airflow-..*.
- enable_
privately_ boolused_ public_ ips - When enabled, IPs from public (non-RFC1918) ranges can be used for ip_allocation_policy.cluster_ipv4_cidr_block and ip_allocation_policy.service_ipv4_cidr_block.
- master_
ipv4_ strcidr_ block - The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. If left blank, the default value of '172.16.0.0/28' is used.
- web_
server_ stripv4_ cidr_ block - The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from masterIpv4CidrBlock and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
- cloud
Composer StringConnection Subnetwork - When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- cloud
Composer StringNetwork Ipv4Cidr Block - The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2..-airflow-..* and newer.
- cloud
Sql StringIpv4Cidr Block - The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from web_server_ipv4_cidr_block.
- connection
Type String - Mode of internal communication within the Composer environment. Must be one of "VPC_PEERING" or "PRIVATE_SERVICE_CONNECT".
- enable
Private BooleanEndpoint - If true, access to the public endpoint of the GKE cluster is denied. If this field is set to true, ip_allocation_policy.use_ip_aliases must be set to true for Cloud Composer environments in versions composer-1..-airflow-..*.
- enable
Privately BooleanUsed Public Ips - When enabled, IPs from public (non-RFC1918) ranges can be used for ip_allocation_policy.cluster_ipv4_cidr_block and ip_allocation_policy.service_ipv4_cidr_block.
- master
Ipv4Cidr StringBlock - The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. If left blank, the default value of '172.16.0.0/28' is used.
- web
Server StringIpv4Cidr Block - The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from masterIpv4CidrBlock and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*.
EnvironmentConfigRecoveryConfig, EnvironmentConfigRecoveryConfigArgs
- Scheduled
Snapshots EnvironmentConfig Config Recovery Config Scheduled Snapshots Config - The configuration settings for scheduled snapshots.
- Scheduled
Snapshots EnvironmentConfig Config Recovery Config Scheduled Snapshots Config - The configuration settings for scheduled snapshots.
- scheduled
Snapshots EnvironmentConfig Config Recovery Config Scheduled Snapshots Config - The configuration settings for scheduled snapshots.
- scheduled
Snapshots EnvironmentConfig Config Recovery Config Scheduled Snapshots Config - The configuration settings for scheduled snapshots.
- scheduled_
snapshots_ Environmentconfig Config Recovery Config Scheduled Snapshots Config - The configuration settings for scheduled snapshots.
- scheduled
Snapshots Property MapConfig - The configuration settings for scheduled snapshots.
EnvironmentConfigRecoveryConfigScheduledSnapshotsConfig, EnvironmentConfigRecoveryConfigScheduledSnapshotsConfigArgs
- Enabled bool
- When enabled, Cloud Composer periodically saves snapshots of your environment to a Cloud Storage bucket.
- Snapshot
Creation stringSchedule - Snapshot schedule, in the unix-cron format.
- Snapshot
Location string - the URI of a bucket folder where to save the snapshot.
- Time
Zone string - A time zone for the schedule. This value is a time offset and does not take into account daylight saving time changes. Valid values are from UTC-12 to UTC+12. Examples: UTC, UTC-01, UTC+03.
- Enabled bool
- When enabled, Cloud Composer periodically saves snapshots of your environment to a Cloud Storage bucket.
- Snapshot
Creation stringSchedule - Snapshot schedule, in the unix-cron format.
- Snapshot
Location string - the URI of a bucket folder where to save the snapshot.
- Time
Zone string - A time zone for the schedule. This value is a time offset and does not take into account daylight saving time changes. Valid values are from UTC-12 to UTC+12. Examples: UTC, UTC-01, UTC+03.
- enabled Boolean
- When enabled, Cloud Composer periodically saves snapshots of your environment to a Cloud Storage bucket.
- snapshot
Creation StringSchedule - Snapshot schedule, in the unix-cron format.
- snapshot
Location String - the URI of a bucket folder where to save the snapshot.
- time
Zone String - A time zone for the schedule. This value is a time offset and does not take into account daylight saving time changes. Valid values are from UTC-12 to UTC+12. Examples: UTC, UTC-01, UTC+03.
- enabled boolean
- When enabled, Cloud Composer periodically saves snapshots of your environment to a Cloud Storage bucket.
- snapshot
Creation stringSchedule - Snapshot schedule, in the unix-cron format.
- snapshot
Location string - the URI of a bucket folder where to save the snapshot.
- time
Zone string - A time zone for the schedule. This value is a time offset and does not take into account daylight saving time changes. Valid values are from UTC-12 to UTC+12. Examples: UTC, UTC-01, UTC+03.
- enabled bool
- When enabled, Cloud Composer periodically saves snapshots of your environment to a Cloud Storage bucket.
- snapshot_
creation_ strschedule - Snapshot schedule, in the unix-cron format.
- snapshot_
location str - the URI of a bucket folder where to save the snapshot.
- time_
zone str - A time zone for the schedule. This value is a time offset and does not take into account daylight saving time changes. Valid values are from UTC-12 to UTC+12. Examples: UTC, UTC-01, UTC+03.
- enabled Boolean
- When enabled, Cloud Composer periodically saves snapshots of your environment to a Cloud Storage bucket.
- snapshot
Creation StringSchedule - Snapshot schedule, in the unix-cron format.
- snapshot
Location String - the URI of a bucket folder where to save the snapshot.
- time
Zone String - A time zone for the schedule. This value is a time offset and does not take into account daylight saving time changes. Valid values are from UTC-12 to UTC+12. Examples: UTC, UTC-01, UTC+03.
EnvironmentConfigSoftwareConfig, EnvironmentConfigSoftwareConfigArgs
- Airflow
Config Dictionary<string, string>Overrides - Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and cannot contain "=" or ";". Section and property names cannot contain characters: "." Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.
- Cloud
Data EnvironmentLineage Integration Config Software Config Cloud Data Lineage Integration - The configuration for Cloud Data Lineage integration. Supported for Cloud Composer environments in versions composer-2.1.2-airflow-..* and newer
- Env
Variables Dictionary<string, string> - Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.
- Image
Version string - The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression composer-([0-9]+(.[0-9]+.[0-9]+(-preview.[0-9]+)?)?|latest)-airflow-([0-9]+(.[0-9]+(.[0-9]+)?)?). The Cloud Composer portion of the image version is a full semantic version, or an alias in the form of major version number or 'latest'. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. See documentation for more details and version list.
- Pypi
Packages Dictionary<string, string> - Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. "numpy"). Values are the lowercase extras and version specifier (e.g. "==1.12.0", "[devel,gcp_api]", "[devel]>=1.8.2, <1.9.2"). To specify a package without pinning it to a version specifier, use the empty string as the value.
- Python
Version string - The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*. Environments in newer versions always use Python major version 3.
- Scheduler
Count int - The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1..-airflow-2...
- Web
Server stringPlugins Mode - Should be either 'ENABLED' or 'DISABLED'. Defaults to 'ENABLED'. Used in Composer 3.
- Airflow
Config map[string]stringOverrides - Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and cannot contain "=" or ";". Section and property names cannot contain characters: "." Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.
- Cloud
Data EnvironmentLineage Integration Config Software Config Cloud Data Lineage Integration - The configuration for Cloud Data Lineage integration. Supported for Cloud Composer environments in versions composer-2.1.2-airflow-..* and newer
- Env
Variables map[string]string - Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.
- Image
Version string - The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression composer-([0-9]+(.[0-9]+.[0-9]+(-preview.[0-9]+)?)?|latest)-airflow-([0-9]+(.[0-9]+(.[0-9]+)?)?). The Cloud Composer portion of the image version is a full semantic version, or an alias in the form of major version number or 'latest'. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. See documentation for more details and version list.
- Pypi
Packages map[string]string - Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. "numpy"). Values are the lowercase extras and version specifier (e.g. "==1.12.0", "[devel,gcp_api]", "[devel]>=1.8.2, <1.9.2"). To specify a package without pinning it to a version specifier, use the empty string as the value.
- Python
Version string - The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*. Environments in newer versions always use Python major version 3.
- Scheduler
Count int - The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1..-airflow-2...
- Web
Server stringPlugins Mode - Should be either 'ENABLED' or 'DISABLED'. Defaults to 'ENABLED'. Used in Composer 3.
- airflow
Config Map<String,String>Overrides - Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and cannot contain "=" or ";". Section and property names cannot contain characters: "." Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.
- cloud
Data EnvironmentLineage Integration Config Software Config Cloud Data Lineage Integration - The configuration for Cloud Data Lineage integration. Supported for Cloud Composer environments in versions composer-2.1.2-airflow-..* and newer
- env
Variables Map<String,String> - Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.
- image
Version String - The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression composer-([0-9]+(.[0-9]+.[0-9]+(-preview.[0-9]+)?)?|latest)-airflow-([0-9]+(.[0-9]+(.[0-9]+)?)?). The Cloud Composer portion of the image version is a full semantic version, or an alias in the form of major version number or 'latest'. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. See documentation for more details and version list.
- pypi
Packages Map<String,String> - Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. "numpy"). Values are the lowercase extras and version specifier (e.g. "==1.12.0", "[devel,gcp_api]", "[devel]>=1.8.2, <1.9.2"). To specify a package without pinning it to a version specifier, use the empty string as the value.
- python
Version String - The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*. Environments in newer versions always use Python major version 3.
- scheduler
Count Integer - The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1..-airflow-2...
- web
Server StringPlugins Mode - Should be either 'ENABLED' or 'DISABLED'. Defaults to 'ENABLED'. Used in Composer 3.
- airflow
Config {[key: string]: string}Overrides - Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and cannot contain "=" or ";". Section and property names cannot contain characters: "." Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.
- cloud
Data EnvironmentLineage Integration Config Software Config Cloud Data Lineage Integration - The configuration for Cloud Data Lineage integration. Supported for Cloud Composer environments in versions composer-2.1.2-airflow-..* and newer
- env
Variables {[key: string]: string} - Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.
- image
Version string - The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression composer-([0-9]+(.[0-9]+.[0-9]+(-preview.[0-9]+)?)?|latest)-airflow-([0-9]+(.[0-9]+(.[0-9]+)?)?). The Cloud Composer portion of the image version is a full semantic version, or an alias in the form of major version number or 'latest'. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. See documentation for more details and version list.
- pypi
Packages {[key: string]: string} - Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. "numpy"). Values are the lowercase extras and version specifier (e.g. "==1.12.0", "[devel,gcp_api]", "[devel]>=1.8.2, <1.9.2"). To specify a package without pinning it to a version specifier, use the empty string as the value.
- python
Version string - The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*. Environments in newer versions always use Python major version 3.
- scheduler
Count number - The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1..-airflow-2...
- web
Server stringPlugins Mode - Should be either 'ENABLED' or 'DISABLED'. Defaults to 'ENABLED'. Used in Composer 3.
- airflow_
config_ Mapping[str, str]overrides - Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and cannot contain "=" or ";". Section and property names cannot contain characters: "." Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.
- cloud_
data_ Environmentlineage_ integration Config Software Config Cloud Data Lineage Integration - The configuration for Cloud Data Lineage integration. Supported for Cloud Composer environments in versions composer-2.1.2-airflow-..* and newer
- env_
variables Mapping[str, str] - Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.
- image_
version str - The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression composer-([0-9]+(.[0-9]+.[0-9]+(-preview.[0-9]+)?)?|latest)-airflow-([0-9]+(.[0-9]+(.[0-9]+)?)?). The Cloud Composer portion of the image version is a full semantic version, or an alias in the form of major version number or 'latest'. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. See documentation for more details and version list.
- pypi_
packages Mapping[str, str] - Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. "numpy"). Values are the lowercase extras and version specifier (e.g. "==1.12.0", "[devel,gcp_api]", "[devel]>=1.8.2, <1.9.2"). To specify a package without pinning it to a version specifier, use the empty string as the value.
- python_
version str - The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*. Environments in newer versions always use Python major version 3.
- scheduler_
count int - The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1..-airflow-2...
- web_
server_ strplugins_ mode - Should be either 'ENABLED' or 'DISABLED'. Defaults to 'ENABLED'. Used in Composer 3.
- airflow
Config Map<String>Overrides - Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and cannot contain "=" or ";". Section and property names cannot contain characters: "." Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.
- cloud
Data Property MapLineage Integration - The configuration for Cloud Data Lineage integration. Supported for Cloud Composer environments in versions composer-2.1.2-airflow-..* and newer
- env
Variables Map<String> - Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.
- image
Version String - The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression composer-([0-9]+(.[0-9]+.[0-9]+(-preview.[0-9]+)?)?|latest)-airflow-([0-9]+(.[0-9]+(.[0-9]+)?)?). The Cloud Composer portion of the image version is a full semantic version, or an alias in the form of major version number or 'latest'. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. See documentation for more details and version list.
- pypi
Packages Map<String> - Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. "numpy"). Values are the lowercase extras and version specifier (e.g. "==1.12.0", "[devel,gcp_api]", "[devel]>=1.8.2, <1.9.2"). To specify a package without pinning it to a version specifier, use the empty string as the value.
- python
Version String - The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*. Environments in newer versions always use Python major version 3.
- scheduler
Count Number - The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1..-airflow-2...
- web
Server StringPlugins Mode - Should be either 'ENABLED' or 'DISABLED'. Defaults to 'ENABLED'. Used in Composer 3.
EnvironmentConfigSoftwareConfigCloudDataLineageIntegration, EnvironmentConfigSoftwareConfigCloudDataLineageIntegrationArgs
- Enabled bool
- Whether or not Cloud Data Lineage integration is enabled.
- Enabled bool
- Whether or not Cloud Data Lineage integration is enabled.
- enabled Boolean
- Whether or not Cloud Data Lineage integration is enabled.
- enabled boolean
- Whether or not Cloud Data Lineage integration is enabled.
- enabled bool
- Whether or not Cloud Data Lineage integration is enabled.
- enabled Boolean
- Whether or not Cloud Data Lineage integration is enabled.
EnvironmentConfigWebServerConfig, EnvironmentConfigWebServerConfigArgs
- Machine
Type string - Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
- Machine
Type string - Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
- machine
Type String - Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
- machine
Type string - Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
- machine_
type str - Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
- machine
Type String - Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
EnvironmentConfigWebServerNetworkAccessControl, EnvironmentConfigWebServerNetworkAccessControlArgs
- Allowed
Ip List<EnvironmentRanges Config Web Server Network Access Control Allowed Ip Range> - A collection of allowed IP ranges with descriptions.
- Allowed
Ip []EnvironmentRanges Config Web Server Network Access Control Allowed Ip Range - A collection of allowed IP ranges with descriptions.
- allowed
Ip List<EnvironmentRanges Config Web Server Network Access Control Allowed Ip Range> - A collection of allowed IP ranges with descriptions.
- allowed
Ip EnvironmentRanges Config Web Server Network Access Control Allowed Ip Range[] - A collection of allowed IP ranges with descriptions.
- allowed_
ip_ Sequence[Environmentranges Config Web Server Network Access Control Allowed Ip Range] - A collection of allowed IP ranges with descriptions.
- allowed
Ip List<Property Map>Ranges - A collection of allowed IP ranges with descriptions.
EnvironmentConfigWebServerNetworkAccessControlAllowedIpRange, EnvironmentConfigWebServerNetworkAccessControlAllowedIpRangeArgs
- Value string
- IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: 192.168.1.1 or 192.168.0.0/16 or 2001:db8::/32 or 2001:0db8:0000:0042:0000:8a2e:0370:7334. IP range prefixes should be properly truncated. For example, 1.2.3.4/24 should be truncated to 1.2.3.0/24. Similarly, for IPv6, 2001:db8::1/32 should be truncated to 2001:db8::/32.
- Description string
- A description of this ip range.
- Value string
- IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: 192.168.1.1 or 192.168.0.0/16 or 2001:db8::/32 or 2001:0db8:0000:0042:0000:8a2e:0370:7334. IP range prefixes should be properly truncated. For example, 1.2.3.4/24 should be truncated to 1.2.3.0/24. Similarly, for IPv6, 2001:db8::1/32 should be truncated to 2001:db8::/32.
- Description string
- A description of this ip range.
- value String
- IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: 192.168.1.1 or 192.168.0.0/16 or 2001:db8::/32 or 2001:0db8:0000:0042:0000:8a2e:0370:7334. IP range prefixes should be properly truncated. For example, 1.2.3.4/24 should be truncated to 1.2.3.0/24. Similarly, for IPv6, 2001:db8::1/32 should be truncated to 2001:db8::/32.
- description String
- A description of this ip range.
- value string
- IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: 192.168.1.1 or 192.168.0.0/16 or 2001:db8::/32 or 2001:0db8:0000:0042:0000:8a2e:0370:7334. IP range prefixes should be properly truncated. For example, 1.2.3.4/24 should be truncated to 1.2.3.0/24. Similarly, for IPv6, 2001:db8::1/32 should be truncated to 2001:db8::/32.
- description string
- A description of this ip range.
- value str
- IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: 192.168.1.1 or 192.168.0.0/16 or 2001:db8::/32 or 2001:0db8:0000:0042:0000:8a2e:0370:7334. IP range prefixes should be properly truncated. For example, 1.2.3.4/24 should be truncated to 1.2.3.0/24. Similarly, for IPv6, 2001:db8::1/32 should be truncated to 2001:db8::/32.
- description str
- A description of this ip range.
- value String
- IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: 192.168.1.1 or 192.168.0.0/16 or 2001:db8::/32 or 2001:0db8:0000:0042:0000:8a2e:0370:7334. IP range prefixes should be properly truncated. For example, 1.2.3.4/24 should be truncated to 1.2.3.0/24. Similarly, for IPv6, 2001:db8::1/32 should be truncated to 2001:db8::/32.
- description String
- A description of this ip range.
EnvironmentConfigWorkloadsConfig, EnvironmentConfigWorkloadsConfigArgs
- Dag
Processor EnvironmentConfig Workloads Config Dag Processor - Configuration for resources used by DAG processor.
- Scheduler
Environment
Config Workloads Config Scheduler - Configuration for resources used by Airflow schedulers.
- Triggerer
Environment
Config Workloads Config Triggerer - Configuration for resources used by Airflow triggerers.
- Web
Server EnvironmentConfig Workloads Config Web Server - Configuration for resources used by Airflow web server.
- Worker
Environment
Config Workloads Config Worker - Configuration for resources used by Airflow workers.
- Dag
Processor EnvironmentConfig Workloads Config Dag Processor - Configuration for resources used by DAG processor.
- Scheduler
Environment
Config Workloads Config Scheduler - Configuration for resources used by Airflow schedulers.
- Triggerer
Environment
Config Workloads Config Triggerer - Configuration for resources used by Airflow triggerers.
- Web
Server EnvironmentConfig Workloads Config Web Server - Configuration for resources used by Airflow web server.
- Worker
Environment
Config Workloads Config Worker - Configuration for resources used by Airflow workers.
- dag
Processor EnvironmentConfig Workloads Config Dag Processor - Configuration for resources used by DAG processor.
- scheduler
Environment
Config Workloads Config Scheduler - Configuration for resources used by Airflow schedulers.
- triggerer
Environment
Config Workloads Config Triggerer - Configuration for resources used by Airflow triggerers.
- web
Server EnvironmentConfig Workloads Config Web Server - Configuration for resources used by Airflow web server.
- worker
Environment
Config Workloads Config Worker - Configuration for resources used by Airflow workers.
- dag
Processor EnvironmentConfig Workloads Config Dag Processor - Configuration for resources used by DAG processor.
- scheduler
Environment
Config Workloads Config Scheduler - Configuration for resources used by Airflow schedulers.
- triggerer
Environment
Config Workloads Config Triggerer - Configuration for resources used by Airflow triggerers.
- web
Server EnvironmentConfig Workloads Config Web Server - Configuration for resources used by Airflow web server.
- worker
Environment
Config Workloads Config Worker - Configuration for resources used by Airflow workers.
- dag_
processor EnvironmentConfig Workloads Config Dag Processor - Configuration for resources used by DAG processor.
- scheduler
Environment
Config Workloads Config Scheduler - Configuration for resources used by Airflow schedulers.
- triggerer
Environment
Config Workloads Config Triggerer - Configuration for resources used by Airflow triggerers.
- web_
server EnvironmentConfig Workloads Config Web Server - Configuration for resources used by Airflow web server.
- worker
Environment
Config Workloads Config Worker - Configuration for resources used by Airflow workers.
- dag
Processor Property Map - Configuration for resources used by DAG processor.
- scheduler Property Map
- Configuration for resources used by Airflow schedulers.
- triggerer Property Map
- Configuration for resources used by Airflow triggerers.
- web
Server Property Map - Configuration for resources used by Airflow web server.
- worker Property Map
- Configuration for resources used by Airflow workers.
EnvironmentConfigWorkloadsConfigDagProcessor, EnvironmentConfigWorkloadsConfigDagProcessorArgs
- count int
- Number of DAG processors.
- cpu float
- CPU request and limit for DAG processor.
- memory_
gb float - Memory (GB) request and limit for DAG processor.
- storage_
gb float - Storage (GB) request and limit for DAG processor.
EnvironmentConfigWorkloadsConfigScheduler, EnvironmentConfigWorkloadsConfigSchedulerArgs
- count int
- The number of schedulers.
- cpu float
- CPU request and limit for a single Airflow scheduler replica
- memory_
gb float - Memory (GB) request and limit for a single Airflow scheduler replica.
- storage_
gb float - Storage (GB) request and limit for a single Airflow scheduler replica.
EnvironmentConfigWorkloadsConfigTriggerer, EnvironmentConfigWorkloadsConfigTriggererArgs
EnvironmentConfigWorkloadsConfigWebServer, EnvironmentConfigWorkloadsConfigWebServerArgs
- cpu float
- CPU request and limit for Airflow web server.
- memory_
gb float - Memory (GB) request and limit for Airflow web server.
- storage_
gb float - Storage (GB) request and limit for Airflow web server.
EnvironmentConfigWorkloadsConfigWorker, EnvironmentConfigWorkloadsConfigWorkerArgs
- Cpu double
- CPU request and limit for a single Airflow worker replica.
- Max
Count int - Maximum number of workers for autoscaling.
- Memory
Gb double - Memory (GB) request and limit for a single Airflow worker replica.
- Min
Count int - Minimum number of workers for autoscaling.
- Storage
Gb double - Storage (GB) request and limit for a single Airflow worker replica.
- Cpu float64
- CPU request and limit for a single Airflow worker replica.
- Max
Count int - Maximum number of workers for autoscaling.
- Memory
Gb float64 - Memory (GB) request and limit for a single Airflow worker replica.
- Min
Count int - Minimum number of workers for autoscaling.
- Storage
Gb float64 - Storage (GB) request and limit for a single Airflow worker replica.
- cpu Double
- CPU request and limit for a single Airflow worker replica.
- max
Count Integer - Maximum number of workers for autoscaling.
- memory
Gb Double - Memory (GB) request and limit for a single Airflow worker replica.
- min
Count Integer - Minimum number of workers for autoscaling.
- storage
Gb Double - Storage (GB) request and limit for a single Airflow worker replica.
- cpu number
- CPU request and limit for a single Airflow worker replica.
- max
Count number - Maximum number of workers for autoscaling.
- memory
Gb number - Memory (GB) request and limit for a single Airflow worker replica.
- min
Count number - Minimum number of workers for autoscaling.
- storage
Gb number - Storage (GB) request and limit for a single Airflow worker replica.
- cpu float
- CPU request and limit for a single Airflow worker replica.
- max_
count int - Maximum number of workers for autoscaling.
- memory_
gb float - Memory (GB) request and limit for a single Airflow worker replica.
- min_
count int - Minimum number of workers for autoscaling.
- storage_
gb float - Storage (GB) request and limit for a single Airflow worker replica.
- cpu Number
- CPU request and limit for a single Airflow worker replica.
- max
Count Number - Maximum number of workers for autoscaling.
- memory
Gb Number - Memory (GB) request and limit for a single Airflow worker replica.
- min
Count Number - Minimum number of workers for autoscaling.
- storage
Gb Number - Storage (GB) request and limit for a single Airflow worker replica.
EnvironmentStorageConfig, EnvironmentStorageConfigArgs
- Bucket string
- Optional. Name of an existing Cloud Storage bucket to be used by the environment.
- Bucket string
- Optional. Name of an existing Cloud Storage bucket to be used by the environment.
- bucket String
- Optional. Name of an existing Cloud Storage bucket to be used by the environment.
- bucket string
- Optional. Name of an existing Cloud Storage bucket to be used by the environment.
- bucket str
- Optional. Name of an existing Cloud Storage bucket to be used by the environment.
- bucket String
- Optional. Name of an existing Cloud Storage bucket to be used by the environment.
Import
Environment can be imported using any of these accepted formats:
projects/{{project}}/locations/{{region}}/environments/{{name}}{{project}}/{{region}}/{{name}}{{name}}
When using the pulumi import command, Environment can be imported using one of the formats above. For example:
$ pulumi import gcp:composer/environment:Environment default projects/{{project}}/locations/{{region}}/environments/{{name}}
$ pulumi import gcp:composer/environment:Environment default {{project}}/{{region}}/{{name}}
$ pulumi import gcp:composer/environment:Environment default {{name}}
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 Wednesday, Apr 1, 2026 by Pulumi
