published on Thursday, Mar 19, 2026 by Pulumi
published on Thursday, Mar 19, 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
producer_accept_lists 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}
Argument Reference - Cloud Composer 1
The following arguments are supported:
name- (Required) Name of the environmentconfig- (Optional) Configuration parameters for this environment Structure is documented below.labels- (Optional) 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.
pulumi_labels- The combination of labels configured directly on the resource and default labels configured on the provider.effective_labels- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.region- (Optional) The location or Compute Engine region for the environment.project- (Optional) The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
<a name=<span pulumi-lang-nodejs=““nestedConfigC1"” pulumi-lang-dotnet=““NestedConfigC1"” pulumi-lang-go=““nestedConfigC1"” pulumi-lang-python=““nested_config_c1"” pulumi-lang-yaml=““nestedConfigC1"” pulumi-lang-java=““nestedConfigC1"">“nested_config_c1”>The config block supports:
node_count- (Optional, Cloud Composer 1 only) The number of nodes in the Kubernetes Engine cluster of the environment.node_config- (Optional) The configuration used for the Kubernetes Engine cluster. Structure is documented below.software_config- (Optional) The configuration settings for software inside the environment. Structure is documented below.private_environment_config- (Optional) The configuration used for the Private IP Cloud Composer environment. Structure is documented below.web_server_network_access_control- The network-level access control policy for the Airflow web server. If unspecified, no network-level access restrictions are applied.database_config- (Optional, Cloud Composer 1 only) The configuration settings for Cloud SQL instance used internally by Apache Airflow software.web_server_config- (Optional, Cloud Composer 1 only) The configuration settings for the Airflow web server App Engine instance.encryption_config- (Optional) The encryption options for the Cloud Composer environment and its dependencies.maintenance_window- (Optional, Beta) The configuration settings for Cloud Composer maintenance windows.master_authorized_networks_config- (Optional) 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. Structure is documented below.
<a name=<span pulumi-lang-nodejs=““nestedNodeConfigC1"” pulumi-lang-dotnet=““NestedNodeConfigC1"” pulumi-lang-go=““nestedNodeConfigC1"” pulumi-lang-python=““nested_node_config_c1"” pulumi-lang-yaml=““nestedNodeConfigC1"” pulumi-lang-java=““nestedNodeConfigC1"">“nested_node_config_c1”>The node_config block supports:
zone- (Optional, Cloud Composer 1 only) 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.machine_type- (Optional, Cloud Composer 1 only) 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.network- (Optional) The Compute Engine network to be used for machine communications, specified as a self-link, relative resource name (for example “projects/{project}/global/networks/{network}”), by name.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.
subnetwork- (Optional) The Compute Engine subnetwork to be used for machine communications, specified as a self-link, relative resource name (for example, “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.disk_size_gb- (Optional, Cloud Composer 1 only) The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated.oauth_scopes- (Optional, Cloud Composer 1 only) 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"].service_account- (Optional) 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 haveroles/composer.workerfor any GCP resources created under the Cloud Composer Environment.tags- (Optional) 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.ip_allocation_policy- (Optional) Configuration for controlling how IPs are allocated in the GKE cluster. Structure is documented below. Cannot be updated.max_pods_per_node- (Optional, Beta, Cloud Composer 1 only) 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 if the environment is VPC-Native. The range of possible values is 8-110, and the default is 32. Cannot be updated.enable_ip_masq_agent- (Optional) 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 the documentation.
<a name=<span pulumi-lang-nodejs=““nestedSoftwareConfigC1"” pulumi-lang-dotnet=““NestedSoftwareConfigC1"” pulumi-lang-go=““nestedSoftwareConfigC1"” pulumi-lang-python=““nested_software_config_c1"” pulumi-lang-yaml=““nestedSoftwareConfigC1"” pulumi-lang-java=““nestedSoftwareConfigC1"">“nested_software_config_c1”>The software_config block supports:
airflow_config_overrides- (Optional) 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.
pypi_packages- (Optional) 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.env_variables- (Optional) 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 expressionAIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names:AIRFLOW_DATABASE_VERSION AIRFLOW_HOME AIRFLOW_SRC_DIR AIRFLOW_WEBSERVER AUTO_GKE CLOUDSDK_METRICS_ENVIRONMENT CLOUD_LOGGING_ONLY COMPOSER_ENVIRONMENT COMPOSER_GKE_LOCATION COMPOSER_GKE_NAME COMPOSER_GKE_ZONE COMPOSER_LOCATION COMPOSER_OPERATION_UUID COMPOSER_PYTHON_VERSION COMPOSER_VERSION CONTAINER_NAME C_FORCE_ROOT DAGS_FOLDER GCP_PROJECT GCP_TENANT_PROJECT GCSFUSE_EXTRACTED GCS_BUCKET GKE_CLUSTER_NAME GKE_IN_TENANT GOOGLE_APPLICATION_CREDENTIALS MAJOR_VERSION MINOR_VERSION PATH PIP_DISABLE_PIP_VERSION_CHECK PORT PROJECT_ID PYTHONPYCACHEPREFIX SQL_DATABASE SQL_HOST SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER
* <span pulumi-lang-nodejs="`imageVersion`" pulumi-lang-dotnet="`ImageVersion`" pulumi-lang-go="`imageVersion`" pulumi-lang-python="`image_version`" pulumi-lang-yaml="`imageVersion`" pulumi-lang-java="`imageVersion`">`image_version`</span> -
(Required) In Composer 1, use a specific Composer 1 version in this parameter. If omitted, the default is the latest version of Composer 2.
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.
For more information about Cloud Composer images, see
[Cloud Composer version list](https://cloud.google.com/composer/docs/concepts/versioning/composer-versions).
* <span pulumi-lang-nodejs="`pythonVersion`" pulumi-lang-dotnet="`PythonVersion`" pulumi-lang-go="`pythonVersion`" pulumi-lang-python="`python_version`" pulumi-lang-yaml="`pythonVersion`" pulumi-lang-java="`pythonVersion`">`python_version`</span> -
(Optional, Cloud Composer 1 only)
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 '3'.
* <span pulumi-lang-nodejs="`schedulerCount`" pulumi-lang-dotnet="`SchedulerCount`" pulumi-lang-go="`schedulerCount`" pulumi-lang-python="`scheduler_count`" pulumi-lang-yaml="`schedulerCount`" pulumi-lang-java="`schedulerCount`">`scheduler_count`</span> -
(Optional, Cloud Composer 1 with Airflow 2 only)
The number of schedulers for Airflow.
See [documentation](https://cloud.google.com/composer/docs/how-to/managing/configuring-private-ip) for setting up private environments. <a name=<span pulumi-lang-nodejs=""nestedPrivateEnvironmentConfigC1"" pulumi-lang-dotnet=""NestedPrivateEnvironmentConfigC1"" pulumi-lang-go=""nestedPrivateEnvironmentConfigC1"" pulumi-lang-python=""nested_private_environment_config_c1"" pulumi-lang-yaml=""nestedPrivateEnvironmentConfigC1"" pulumi-lang-java=""nestedPrivateEnvironmentConfigC1"">"nested_private_environment_config_c1"</span>></a>The <span pulumi-lang-nodejs="`privateEnvironmentConfig`" pulumi-lang-dotnet="`PrivateEnvironmentConfig`" pulumi-lang-go="`privateEnvironmentConfig`" pulumi-lang-python="`private_environment_config`" pulumi-lang-yaml="`privateEnvironmentConfig`" pulumi-lang-java="`privateEnvironmentConfig`">`private_environment_config`</span> block supports:
* <span pulumi-lang-nodejs="`enablePrivateEndpoint`" pulumi-lang-dotnet="`EnablePrivateEndpoint`" pulumi-lang-go="`enablePrivateEndpoint`" pulumi-lang-python="`enable_private_endpoint`" pulumi-lang-yaml="`enablePrivateEndpoint`" pulumi-lang-java="`enablePrivateEndpoint`">`enable_private_endpoint`</span> -
If true, access to the public endpoint of the GKE cluster is denied.
If this field is set to true, the `ip_allocation_policy.use_ip_aliases` field must
also be set to true for Cloud Composer 1 environments.
* <span pulumi-lang-nodejs="`masterIpv4CidrBlock`" pulumi-lang-dotnet="`MasterIpv4CidrBlock`" pulumi-lang-go="`masterIpv4CidrBlock`" pulumi-lang-python="`master_ipv4_cidr_block`" pulumi-lang-yaml="`masterIpv4CidrBlock`" pulumi-lang-java="`masterIpv4CidrBlock`">`master_ipv4_cidr_block`</span> -
(Optional)
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 is used. See [documentation](https://cloud.google.com/composer/docs/how-to/managing/configuring-private-ip#defaults) for default values per region.
* <span pulumi-lang-nodejs="`cloudSqlIpv4CidrBlock`" pulumi-lang-dotnet="`CloudSqlIpv4CidrBlock`" pulumi-lang-go="`cloudSqlIpv4CidrBlock`" pulumi-lang-python="`cloud_sql_ipv4_cidr_block`" pulumi-lang-yaml="`cloudSqlIpv4CidrBlock`" pulumi-lang-java="`cloudSqlIpv4CidrBlock`">`cloud_sql_ipv4_cidr_block`</span> -
(Optional)
The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from <span pulumi-lang-nodejs="`webServerIpv4CidrBlock`" pulumi-lang-dotnet="`WebServerIpv4CidrBlock`" pulumi-lang-go="`webServerIpv4CidrBlock`" pulumi-lang-python="`web_server_ipv4_cidr_block`" pulumi-lang-yaml="`webServerIpv4CidrBlock`" pulumi-lang-java="`webServerIpv4CidrBlock`">`web_server_ipv4_cidr_block`</span>
* <span pulumi-lang-nodejs="`webServerIpv4CidrBlock`" pulumi-lang-dotnet="`WebServerIpv4CidrBlock`" pulumi-lang-go="`webServerIpv4CidrBlock`" pulumi-lang-python="`web_server_ipv4_cidr_block`" pulumi-lang-yaml="`webServerIpv4CidrBlock`" pulumi-lang-java="`webServerIpv4CidrBlock`">`web_server_ipv4_cidr_block`</span> -
(Optional, Cloud Composer 1 only)
The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from <span pulumi-lang-nodejs="`masterIpv4CidrBlock`" pulumi-lang-dotnet="`MasterIpv4CidrBlock`" pulumi-lang-go="`masterIpv4CidrBlock`" pulumi-lang-python="`master_ipv4_cidr_block`" pulumi-lang-yaml="`masterIpv4CidrBlock`" pulumi-lang-java="`masterIpv4CidrBlock`">`master_ipv4_cidr_block`</span> and <span pulumi-lang-nodejs="`cloudSqlIpv4CidrBlock`" pulumi-lang-dotnet="`CloudSqlIpv4CidrBlock`" pulumi-lang-go="`cloudSqlIpv4CidrBlock`" pulumi-lang-python="`cloud_sql_ipv4_cidr_block`" pulumi-lang-yaml="`cloudSqlIpv4CidrBlock`" pulumi-lang-java="`cloudSqlIpv4CidrBlock`">`cloud_sql_ipv4_cidr_block`</span>.
* <span pulumi-lang-nodejs="`enablePrivatelyUsedPublicIps`" pulumi-lang-dotnet="`EnablePrivatelyUsedPublicIps`" pulumi-lang-go="`enablePrivatelyUsedPublicIps`" pulumi-lang-python="`enable_privately_used_public_ips`" pulumi-lang-yaml="`enablePrivatelyUsedPublicIps`" pulumi-lang-java="`enablePrivatelyUsedPublicIps`">`enable_privately_used_public_ips`</span> -
(Optional)
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`.
The <span pulumi-lang-nodejs="`webServerNetworkAccessControl`" pulumi-lang-dotnet="`WebServerNetworkAccessControl`" pulumi-lang-go="`webServerNetworkAccessControl`" pulumi-lang-python="`web_server_network_access_control`" pulumi-lang-yaml="`webServerNetworkAccessControl`" pulumi-lang-java="`webServerNetworkAccessControl`">`web_server_network_access_control`</span> supports:
* <span pulumi-lang-nodejs="`allowedIpRange`" pulumi-lang-dotnet="`AllowedIpRange`" pulumi-lang-go="`allowedIpRange`" pulumi-lang-python="`allowed_ip_range`" pulumi-lang-yaml="`allowedIpRange`" pulumi-lang-java="`allowedIpRange`">`allowed_ip_range`</span> -
A collection of allowed IP ranges with descriptions. Structure is documented below.
<a name=<span pulumi-lang-nodejs=""nestedAllowedIpRangeC1"" pulumi-lang-dotnet=""NestedAllowedIpRangeC1"" pulumi-lang-go=""nestedAllowedIpRangeC1"" pulumi-lang-python=""nested_allowed_ip_range_c1"" pulumi-lang-yaml=""nestedAllowedIpRangeC1"" pulumi-lang-java=""nestedAllowedIpRangeC1"">"nested_allowed_ip_range_c1"</span>></a>The <span pulumi-lang-nodejs="`allowedIpRange`" pulumi-lang-dotnet="`AllowedIpRange`" pulumi-lang-go="`allowedIpRange`" pulumi-lang-python="`allowed_ip_range`" pulumi-lang-yaml="`allowedIpRange`" pulumi-lang-java="`allowedIpRange`">`allowed_ip_range`</span> supports:
* <span pulumi-lang-nodejs="`value`" pulumi-lang-dotnet="`Value`" pulumi-lang-go="`value`" pulumi-lang-python="`value`" pulumi-lang-yaml="`value`" pulumi-lang-java="`value`">`value`</span> -
(Required)
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`.
* <span pulumi-lang-nodejs="`description`" pulumi-lang-dotnet="`Description`" pulumi-lang-go="`description`" pulumi-lang-python="`description`" pulumi-lang-yaml="`description`" pulumi-lang-java="`description`">`description`</span> -
(Optional)
A description of this ip range.
<a name=<span pulumi-lang-nodejs=""nestedIpAllocationPolicyC1"" pulumi-lang-dotnet=""NestedIpAllocationPolicyC1"" pulumi-lang-go=""nestedIpAllocationPolicyC1"" pulumi-lang-python=""nested_ip_allocation_policy_c1"" pulumi-lang-yaml=""nestedIpAllocationPolicyC1"" pulumi-lang-java=""nestedIpAllocationPolicyC1"">"nested_ip_allocation_policy_c1"</span>></a>The <span pulumi-lang-nodejs="`ipAllocationPolicy`" pulumi-lang-dotnet="`IpAllocationPolicy`" pulumi-lang-go="`ipAllocationPolicy`" pulumi-lang-python="`ip_allocation_policy`" pulumi-lang-yaml="`ipAllocationPolicy`" pulumi-lang-java="`ipAllocationPolicy`">`ip_allocation_policy`</span> block supports:
* <span pulumi-lang-nodejs="`useIpAliases`" pulumi-lang-dotnet="`UseIpAliases`" pulumi-lang-go="`useIpAliases`" pulumi-lang-python="`use_ip_aliases`" pulumi-lang-yaml="`useIpAliases`" pulumi-lang-java="`useIpAliases`">`use_ip_aliases`</span> -
(Optional, Cloud Composer 1 only)
Whether or not to enable Alias IPs in the GKE cluster. If true, a VPC-native cluster is created.
Defaults to true if the <span pulumi-lang-nodejs="`ipAllocationPolicy`" pulumi-lang-dotnet="`IpAllocationPolicy`" pulumi-lang-go="`ipAllocationPolicy`" pulumi-lang-python="`ip_allocation_policy`" pulumi-lang-yaml="`ipAllocationPolicy`" pulumi-lang-java="`ipAllocationPolicy`">`ip_allocation_policy`</span> block is present in config.
* <span pulumi-lang-nodejs="`clusterSecondaryRangeName`" pulumi-lang-dotnet="`ClusterSecondaryRangeName`" pulumi-lang-go="`clusterSecondaryRangeName`" pulumi-lang-python="`cluster_secondary_range_name`" pulumi-lang-yaml="`clusterSecondaryRangeName`" pulumi-lang-java="`clusterSecondaryRangeName`">`cluster_secondary_range_name`</span> -
(Optional)
The name of the cluster's secondary range used to allocate IP addresses to pods.
Specify either <span pulumi-lang-nodejs="`clusterSecondaryRangeName`" pulumi-lang-dotnet="`ClusterSecondaryRangeName`" pulumi-lang-go="`clusterSecondaryRangeName`" pulumi-lang-python="`cluster_secondary_range_name`" pulumi-lang-yaml="`clusterSecondaryRangeName`" pulumi-lang-java="`clusterSecondaryRangeName`">`cluster_secondary_range_name`</span> or <span pulumi-lang-nodejs="`clusterIpv4CidrBlock`" pulumi-lang-dotnet="`ClusterIpv4CidrBlock`" pulumi-lang-go="`clusterIpv4CidrBlock`" pulumi-lang-python="`cluster_ipv4_cidr_block`" pulumi-lang-yaml="`clusterIpv4CidrBlock`" pulumi-lang-java="`clusterIpv4CidrBlock`">`cluster_ipv4_cidr_block`</span> but not both.
For Cloud Composer 1 environments, this field is applicable only when <span pulumi-lang-nodejs="`useIpAliases`" pulumi-lang-dotnet="`UseIpAliases`" pulumi-lang-go="`useIpAliases`" pulumi-lang-python="`use_ip_aliases`" pulumi-lang-yaml="`useIpAliases`" pulumi-lang-java="`useIpAliases`">`use_ip_aliases`</span> is true.
* <span pulumi-lang-nodejs="`servicesSecondaryRangeName`" pulumi-lang-dotnet="`ServicesSecondaryRangeName`" pulumi-lang-go="`servicesSecondaryRangeName`" pulumi-lang-python="`services_secondary_range_name`" pulumi-lang-yaml="`servicesSecondaryRangeName`" pulumi-lang-java="`servicesSecondaryRangeName`">`services_secondary_range_name`</span> -
(Optional)
The name of the services' secondary range used to allocate IP addresses to the cluster.
Specify either <span pulumi-lang-nodejs="`servicesSecondaryRangeName`" pulumi-lang-dotnet="`ServicesSecondaryRangeName`" pulumi-lang-go="`servicesSecondaryRangeName`" pulumi-lang-python="`services_secondary_range_name`" pulumi-lang-yaml="`servicesSecondaryRangeName`" pulumi-lang-java="`servicesSecondaryRangeName`">`services_secondary_range_name`</span> or <span pulumi-lang-nodejs="`servicesIpv4CidrBlock`" pulumi-lang-dotnet="`ServicesIpv4CidrBlock`" pulumi-lang-go="`servicesIpv4CidrBlock`" pulumi-lang-python="`services_ipv4_cidr_block`" pulumi-lang-yaml="`servicesIpv4CidrBlock`" pulumi-lang-java="`servicesIpv4CidrBlock`">`services_ipv4_cidr_block`</span> but not both.
For Cloud Composer 1 environments, this field is applicable only when <span pulumi-lang-nodejs="`useIpAliases`" pulumi-lang-dotnet="`UseIpAliases`" pulumi-lang-go="`useIpAliases`" pulumi-lang-python="`use_ip_aliases`" pulumi-lang-yaml="`useIpAliases`" pulumi-lang-java="`useIpAliases`">`use_ip_aliases`</span> is true.
* <span pulumi-lang-nodejs="`clusterIpv4CidrBlock`" pulumi-lang-dotnet="`ClusterIpv4CidrBlock`" pulumi-lang-go="`clusterIpv4CidrBlock`" pulumi-lang-python="`cluster_ipv4_cidr_block`" pulumi-lang-yaml="`clusterIpv4CidrBlock`" pulumi-lang-java="`clusterIpv4CidrBlock`">`cluster_ipv4_cidr_block`</span> -
(Optional)
The IP address range used to allocate IP addresses to pods in the cluster.
For Cloud Composer 1 environments, this field is applicable only when <span pulumi-lang-nodejs="`useIpAliases`" pulumi-lang-dotnet="`UseIpAliases`" pulumi-lang-go="`useIpAliases`" pulumi-lang-python="`use_ip_aliases`" pulumi-lang-yaml="`useIpAliases`" pulumi-lang-java="`useIpAliases`">`use_ip_aliases`</span> 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 <span pulumi-lang-nodejs="`clusterSecondaryRangeName`" pulumi-lang-dotnet="`ClusterSecondaryRangeName`" pulumi-lang-go="`clusterSecondaryRangeName`" pulumi-lang-python="`cluster_secondary_range_name`" pulumi-lang-yaml="`clusterSecondaryRangeName`" pulumi-lang-java="`clusterSecondaryRangeName`">`cluster_secondary_range_name`</span> or <span pulumi-lang-nodejs="`clusterIpv4CidrBlock`" pulumi-lang-dotnet="`ClusterIpv4CidrBlock`" pulumi-lang-go="`clusterIpv4CidrBlock`" pulumi-lang-python="`cluster_ipv4_cidr_block`" pulumi-lang-yaml="`clusterIpv4CidrBlock`" pulumi-lang-java="`clusterIpv4CidrBlock`">`cluster_ipv4_cidr_block`</span> but not both.
* <span pulumi-lang-nodejs="`servicesIpv4CidrBlock`" pulumi-lang-dotnet="`ServicesIpv4CidrBlock`" pulumi-lang-go="`servicesIpv4CidrBlock`" pulumi-lang-python="`services_ipv4_cidr_block`" pulumi-lang-yaml="`servicesIpv4CidrBlock`" pulumi-lang-java="`servicesIpv4CidrBlock`">`services_ipv4_cidr_block`</span> -
(Optional)
The IP address range used to allocate IP addresses in this cluster.
For Cloud Composer 1 environments, this field is applicable only when <span pulumi-lang-nodejs="`useIpAliases`" pulumi-lang-dotnet="`UseIpAliases`" pulumi-lang-go="`useIpAliases`" pulumi-lang-python="`use_ip_aliases`" pulumi-lang-yaml="`useIpAliases`" pulumi-lang-java="`useIpAliases`">`use_ip_aliases`</span> 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 <span pulumi-lang-nodejs="`servicesSecondaryRangeName`" pulumi-lang-dotnet="`ServicesSecondaryRangeName`" pulumi-lang-go="`servicesSecondaryRangeName`" pulumi-lang-python="`services_secondary_range_name`" pulumi-lang-yaml="`servicesSecondaryRangeName`" pulumi-lang-java="`servicesSecondaryRangeName`">`services_secondary_range_name`</span> or <span pulumi-lang-nodejs="`servicesIpv4CidrBlock`" pulumi-lang-dotnet="`ServicesIpv4CidrBlock`" pulumi-lang-go="`servicesIpv4CidrBlock`" pulumi-lang-python="`services_ipv4_cidr_block`" pulumi-lang-yaml="`servicesIpv4CidrBlock`" pulumi-lang-java="`servicesIpv4CidrBlock`">`services_ipv4_cidr_block`</span> but not both.
<a name=<span pulumi-lang-nodejs=""nestedDatabaseConfigC1"" pulumi-lang-dotnet=""NestedDatabaseConfigC1"" pulumi-lang-go=""nestedDatabaseConfigC1"" pulumi-lang-python=""nested_database_config_c1"" pulumi-lang-yaml=""nestedDatabaseConfigC1"" pulumi-lang-java=""nestedDatabaseConfigC1"">"nested_database_config_c1"</span>></a>The <span pulumi-lang-nodejs="`databaseConfig`" pulumi-lang-dotnet="`DatabaseConfig`" pulumi-lang-go="`databaseConfig`" pulumi-lang-python="`database_config`" pulumi-lang-yaml="`databaseConfig`" pulumi-lang-java="`databaseConfig`">`database_config`</span> block supports:
* <span pulumi-lang-nodejs="`machineType`" pulumi-lang-dotnet="`MachineType`" pulumi-lang-go="`machineType`" pulumi-lang-python="`machine_type`" pulumi-lang-yaml="`machineType`" pulumi-lang-java="`machineType`">`machine_type`</span> -
(Optional)
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.
* `Zone` -
(Optional)
Preferred Cloud SQL database zone.
<a name=<span pulumi-lang-nodejs=""nestedWebServerConfigC1"" pulumi-lang-dotnet=""NestedWebServerConfigC1"" pulumi-lang-go=""nestedWebServerConfigC1"" pulumi-lang-python=""nested_web_server_config_c1"" pulumi-lang-yaml=""nestedWebServerConfigC1"" pulumi-lang-java=""nestedWebServerConfigC1"">"nested_web_server_config_c1"</span>></a>The <span pulumi-lang-nodejs="`webServerConfig`" pulumi-lang-dotnet="`WebServerConfig`" pulumi-lang-go="`webServerConfig`" pulumi-lang-python="`web_server_config`" pulumi-lang-yaml="`webServerConfig`" pulumi-lang-java="`webServerConfig`">`web_server_config`</span> block supports:
* <span pulumi-lang-nodejs="`machineType`" pulumi-lang-dotnet="`MachineType`" pulumi-lang-go="`machineType`" pulumi-lang-python="`machine_type`" pulumi-lang-yaml="`machineType`" pulumi-lang-java="`machineType`">`machine_type`</span> -
(Required)
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.
Value custom is returned only in response, if Airflow web server parameters were
manually changed to a non-standard values.
<a name=<span pulumi-lang-nodejs=""nestedEncryptionConfigC1"" pulumi-lang-dotnet=""NestedEncryptionConfigC1"" pulumi-lang-go=""nestedEncryptionConfigC1"" pulumi-lang-python=""nested_encryption_config_c1"" pulumi-lang-yaml=""nestedEncryptionConfigC1"" pulumi-lang-java=""nestedEncryptionConfigC1"">"nested_encryption_config_c1"</span>></a>The <span pulumi-lang-nodejs="`encryptionConfig`" pulumi-lang-dotnet="`EncryptionConfig`" pulumi-lang-go="`encryptionConfig`" pulumi-lang-python="`encryption_config`" pulumi-lang-yaml="`encryptionConfig`" pulumi-lang-java="`encryptionConfig`">`encryption_config`</span> block supports:
* <span pulumi-lang-nodejs="`kmsKeyName`" pulumi-lang-dotnet="`KmsKeyName`" pulumi-lang-go="`kmsKeyName`" pulumi-lang-python="`kms_key_name`" pulumi-lang-yaml="`kmsKeyName`" pulumi-lang-java="`kmsKeyName`">`kms_key_name`</span> -
(Required)
Customer-managed Encryption Key available through Google's Key Management Service. It must
be the fully qualified resource name,
i.e. projects/project-id/locations/location/keyRings/keyring/cryptoKeys/key. Cannot be updated.
<a name=<span pulumi-lang-nodejs=""nestedMaintenanceWindowC1"" pulumi-lang-dotnet=""NestedMaintenanceWindowC1"" pulumi-lang-go=""nestedMaintenanceWindowC1"" pulumi-lang-python=""nested_maintenance_window_c1"" pulumi-lang-yaml=""nestedMaintenanceWindowC1"" pulumi-lang-java=""nestedMaintenanceWindowC1"">"nested_maintenance_window_c1"</span>></a>The <span pulumi-lang-nodejs="`maintenanceWindow`" pulumi-lang-dotnet="`MaintenanceWindow`" pulumi-lang-go="`maintenanceWindow`" pulumi-lang-python="`maintenance_window`" pulumi-lang-yaml="`maintenanceWindow`" pulumi-lang-java="`maintenanceWindow`">`maintenance_window`</span> block supports:
* <span pulumi-lang-nodejs="`startTime`" pulumi-lang-dotnet="`StartTime`" pulumi-lang-go="`startTime`" pulumi-lang-python="`start_time`" pulumi-lang-yaml="`startTime`" pulumi-lang-java="`startTime`">`start_time`</span> -
(Required)
Start time of the first recurrence of the maintenance window.
* <span pulumi-lang-nodejs="`endTime`" pulumi-lang-dotnet="`EndTime`" pulumi-lang-go="`endTime`" pulumi-lang-python="`end_time`" pulumi-lang-yaml="`endTime`" pulumi-lang-java="`endTime`">`end_time`</span> -
(Required)
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'.
* <span pulumi-lang-nodejs="`recurrence`" pulumi-lang-dotnet="`Recurrence`" pulumi-lang-go="`recurrence`" pulumi-lang-python="`recurrence`" pulumi-lang-yaml="`recurrence`" pulumi-lang-java="`recurrence`">`recurrence`</span> -
(Required)
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'.
<a name=<span pulumi-lang-nodejs=""nestedMasterAuthorizedNetworksConfigC1"" pulumi-lang-dotnet=""NestedMasterAuthorizedNetworksConfigC1"" pulumi-lang-go=""nestedMasterAuthorizedNetworksConfigC1"" pulumi-lang-python=""nested_master_authorized_networks_config_c1"" pulumi-lang-yaml=""nestedMasterAuthorizedNetworksConfigC1"" pulumi-lang-java=""nestedMasterAuthorizedNetworksConfigC1"">"nested_master_authorized_networks_config_c1"</span>></a>The <span pulumi-lang-nodejs="`masterAuthorizedNetworksConfig`" pulumi-lang-dotnet="`MasterAuthorizedNetworksConfig`" pulumi-lang-go="`masterAuthorizedNetworksConfig`" pulumi-lang-python="`master_authorized_networks_config`" pulumi-lang-yaml="`masterAuthorizedNetworksConfig`" pulumi-lang-java="`masterAuthorizedNetworksConfig`">`master_authorized_networks_config`</span> block supports:
* <span pulumi-lang-nodejs="`enabled`" pulumi-lang-dotnet="`Enabled`" pulumi-lang-go="`enabled`" pulumi-lang-python="`enabled`" pulumi-lang-yaml="`enabled`" pulumi-lang-java="`enabled`">`enabled`</span> -
(Required)
Whether or not master authorized networks is enabled.
* <span pulumi-lang-nodejs="`cidrBlocks`" pulumi-lang-dotnet="`CidrBlocks`" pulumi-lang-go="`cidrBlocks`" pulumi-lang-python="`cidr_blocks`" pulumi-lang-yaml="`cidrBlocks`" pulumi-lang-java="`cidrBlocks`">`cidr_blocks`</span> -
<span pulumi-lang-nodejs="`cidrBlocks " pulumi-lang-dotnet="`CidrBlocks " pulumi-lang-go="`cidrBlocks " pulumi-lang-python="`cidr_blocks " pulumi-lang-yaml="`cidrBlocks " pulumi-lang-java="`cidrBlocks ">`cidr_blocks </span>`define up to 50 external networks that could access Kubernetes master through HTTPS. Structure is documented below.
<a name=<span pulumi-lang-nodejs=""nestedCidrBlocksC1"" pulumi-lang-dotnet=""NestedCidrBlocksC1"" pulumi-lang-go=""nestedCidrBlocksC1"" pulumi-lang-python=""nested_cidr_blocks_c1"" pulumi-lang-yaml=""nestedCidrBlocksC1"" pulumi-lang-java=""nestedCidrBlocksC1"">"nested_cidr_blocks_c1"</span>></a>The <span pulumi-lang-nodejs="`cidrBlocks`" pulumi-lang-dotnet="`CidrBlocks`" pulumi-lang-go="`cidrBlocks`" pulumi-lang-python="`cidr_blocks`" pulumi-lang-yaml="`cidrBlocks`" pulumi-lang-java="`cidrBlocks`">`cidr_blocks`</span> supports:
* <span pulumi-lang-nodejs="`displayName`" pulumi-lang-dotnet="`DisplayName`" pulumi-lang-go="`displayName`" pulumi-lang-python="`display_name`" pulumi-lang-yaml="`displayName`" pulumi-lang-java="`displayName`">`display_name`</span> -
(Optional)
<span pulumi-lang-nodejs="`displayName`" pulumi-lang-dotnet="`DisplayName`" pulumi-lang-go="`displayName`" pulumi-lang-python="`display_name`" pulumi-lang-yaml="`displayName`" pulumi-lang-java="`displayName`">`display_name`</span> is a field for users to identify CIDR blocks.
* <span pulumi-lang-nodejs="`cidrBlock`" pulumi-lang-dotnet="`CidrBlock`" pulumi-lang-go="`cidrBlock`" pulumi-lang-python="`cidr_block`" pulumi-lang-yaml="`cidrBlock`" pulumi-lang-java="`cidrBlock`">`cidr_block`</span> -
(Required)
<span pulumi-lang-nodejs="`cidrBlock`" pulumi-lang-dotnet="`CidrBlock`" pulumi-lang-go="`cidrBlock`" pulumi-lang-python="`cidr_block`" pulumi-lang-yaml="`cidrBlock`" pulumi-lang-java="`cidrBlock`">`cidr_block`</span> must be specified in CIDR notation.
## Argument Reference - Cloud Composer 2
The following arguments are supported:
* <span pulumi-lang-nodejs="`name`" pulumi-lang-dotnet="`Name`" pulumi-lang-go="`name`" pulumi-lang-python="`name`" pulumi-lang-yaml="`name`" pulumi-lang-java="`name`">`name`</span> -
(Required)
Name of the environment
* <span pulumi-lang-nodejs="`config`" pulumi-lang-dotnet="`Config`" pulumi-lang-go="`config`" pulumi-lang-python="`config`" pulumi-lang-yaml="`config`" pulumi-lang-java="`config`">`config`</span> -
(Optional)
Configuration parameters for this environment. Structure is documented below.
* <span pulumi-lang-nodejs="`labels`" pulumi-lang-dotnet="`Labels`" pulumi-lang-go="`labels`" pulumi-lang-python="`labels`" pulumi-lang-yaml="`labels`" pulumi-lang-java="`labels`">`labels`</span> -
(Optional)
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.
* <span pulumi-lang-nodejs="`region`" pulumi-lang-dotnet="`Region`" pulumi-lang-go="`region`" pulumi-lang-python="`region`" pulumi-lang-yaml="`region`" pulumi-lang-java="`region`">`region`</span> -
(Optional)
The location or Compute Engine region for the environment.
* <span pulumi-lang-nodejs="`project`" pulumi-lang-dotnet="`Project`" pulumi-lang-go="`project`" pulumi-lang-python="`project`" pulumi-lang-yaml="`project`" pulumi-lang-java="`project`">`project`</span> -
(Optional) The ID of the project in which the resource belongs.
If it is not provided, the provider project is used.
* <span pulumi-lang-nodejs="`storageConfig`" pulumi-lang-dotnet="`StorageConfig`" pulumi-lang-go="`storageConfig`" pulumi-lang-python="`storage_config`" pulumi-lang-yaml="`storageConfig`" pulumi-lang-java="`storageConfig`">`storage_config`</span> -
(Optional)
Configuration options for storage used by Composer environment. Structure is documented below.
<a name=<span pulumi-lang-nodejs=""nestedConfigC2"" pulumi-lang-dotnet=""NestedConfigC2"" pulumi-lang-go=""nestedConfigC2"" pulumi-lang-python=""nested_config_c2"" pulumi-lang-yaml=""nestedConfigC2"" pulumi-lang-java=""nestedConfigC2"">"nested_config_c2"</span>></a>The <span pulumi-lang-nodejs="`config`" pulumi-lang-dotnet="`Config`" pulumi-lang-go="`config`" pulumi-lang-python="`config`" pulumi-lang-yaml="`config`" pulumi-lang-java="`config`">`config`</span> block supports:
* <span pulumi-lang-nodejs="`nodeConfig`" pulumi-lang-dotnet="`NodeConfig`" pulumi-lang-go="`nodeConfig`" pulumi-lang-python="`node_config`" pulumi-lang-yaml="`nodeConfig`" pulumi-lang-java="`nodeConfig`">`node_config`</span> -
(Optional)
The configuration used for the Kubernetes Engine cluster. Structure is documented below.
* <span pulumi-lang-nodejs="`recoveryConfig`" pulumi-lang-dotnet="`RecoveryConfig`" pulumi-lang-go="`recoveryConfig`" pulumi-lang-python="`recovery_config`" pulumi-lang-yaml="`recoveryConfig`" pulumi-lang-java="`recoveryConfig`">`recovery_config`</span> -
(Optional, Cloud Composer 2 only)
The configuration settings for recovery. Structure is documented below.
* <span pulumi-lang-nodejs="`softwareConfig`" pulumi-lang-dotnet="`SoftwareConfig`" pulumi-lang-go="`softwareConfig`" pulumi-lang-python="`software_config`" pulumi-lang-yaml="`softwareConfig`" pulumi-lang-java="`softwareConfig`">`software_config`</span> -
(Optional)
The configuration settings for software (Airflow) inside the environment. Structure is
documented below.
* <span pulumi-lang-nodejs="`privateEnvironmentConfig`" pulumi-lang-dotnet="`PrivateEnvironmentConfig`" pulumi-lang-go="`privateEnvironmentConfig`" pulumi-lang-python="`private_environment_config`" pulumi-lang-yaml="`privateEnvironmentConfig`" pulumi-lang-java="`privateEnvironmentConfig`">`private_environment_config`</span> -
(Optional)
The configuration used for the Private IP Cloud Composer environment. Structure is documented below.
* <span pulumi-lang-nodejs="`encryptionConfig`" pulumi-lang-dotnet="`EncryptionConfig`" pulumi-lang-go="`encryptionConfig`" pulumi-lang-python="`encryption_config`" pulumi-lang-yaml="`encryptionConfig`" pulumi-lang-java="`encryptionConfig`">`encryption_config`</span> -
(Optional)
The encryption options for the Cloud Composer environment and its
dependencies.
* <span pulumi-lang-nodejs="`maintenanceWindow`" pulumi-lang-dotnet="`MaintenanceWindow`" pulumi-lang-go="`maintenanceWindow`" pulumi-lang-python="`maintenance_window`" pulumi-lang-yaml="`maintenanceWindow`" pulumi-lang-java="`maintenanceWindow`">`maintenance_window`</span> -
(Optional)
The configuration settings for Cloud Composer maintenance windows.
* <span pulumi-lang-nodejs="`workloadsConfig`" pulumi-lang-dotnet="`WorkloadsConfig`" pulumi-lang-go="`workloadsConfig`" pulumi-lang-python="`workloads_config`" pulumi-lang-yaml="`workloadsConfig`" pulumi-lang-java="`workloadsConfig`">`workloads_config`</span> -
(Optional)
The Kubernetes workloads configuration for GKE cluster associated with the
Cloud Composer environment.
* <span pulumi-lang-nodejs="`environmentSize`" pulumi-lang-dotnet="`EnvironmentSize`" pulumi-lang-go="`environmentSize`" pulumi-lang-python="`environment_size`" pulumi-lang-yaml="`environmentSize`" pulumi-lang-java="`environmentSize`">`environment_size`</span> -
(Optional)
The environment size controls the performance parameters of the managed
Cloud Composer infrastructure that includes the Airflow database. Values for
environment size are `ENVIRONMENT_SIZE_SMALL`, `ENVIRONMENT_SIZE_MEDIUM`,
and `ENVIRONMENT_SIZE_LARGE`.
* <span pulumi-lang-nodejs="`resilienceMode`" pulumi-lang-dotnet="`ResilienceMode`" pulumi-lang-go="`resilienceMode`" pulumi-lang-python="`resilience_mode`" pulumi-lang-yaml="`resilienceMode`" pulumi-lang-java="`resilienceMode`">`resilience_mode`</span> -
(Optional, Cloud Composer 2.1.15 or newer only)
The resilience mode states whether high resilience is enabled for
the environment or not. Values for resilience mode are `HIGH_RESILIENCE`
for high resilience and `STANDARD_RESILIENCE` for standard
resilience.
* <span pulumi-lang-nodejs="`dataRetentionConfig`" pulumi-lang-dotnet="`DataRetentionConfig`" pulumi-lang-go="`dataRetentionConfig`" pulumi-lang-python="`data_retention_config`" pulumi-lang-yaml="`dataRetentionConfig`" pulumi-lang-java="`dataRetentionConfig`">`data_retention_config`</span> -
(Optional, Cloud Composer 2.0.23 or newer only)
Configuration setting for airflow data rentention mechanism. Structure is
documented below.
<a name=<span pulumi-lang-nodejs=""nestedDataRetentionConfigC2"" pulumi-lang-dotnet=""NestedDataRetentionConfigC2"" pulumi-lang-go=""nestedDataRetentionConfigC2"" pulumi-lang-python=""nested_data_retention_config_c2"" pulumi-lang-yaml=""nestedDataRetentionConfigC2"" pulumi-lang-java=""nestedDataRetentionConfigC2"">"nested_data_retention_config_c2"</span>></a>The <span pulumi-lang-nodejs="`dataRetentionConfig`" pulumi-lang-dotnet="`DataRetentionConfig`" pulumi-lang-go="`dataRetentionConfig`" pulumi-lang-python="`data_retention_config`" pulumi-lang-yaml="`dataRetentionConfig`" pulumi-lang-java="`dataRetentionConfig`">`data_retention_config`</span> block supports:
* <span pulumi-lang-nodejs="`taskLogsRetentionConfig`" pulumi-lang-dotnet="`TaskLogsRetentionConfig`" pulumi-lang-go="`taskLogsRetentionConfig`" pulumi-lang-python="`task_logs_retention_config`" pulumi-lang-yaml="`taskLogsRetentionConfig`" pulumi-lang-java="`taskLogsRetentionConfig`">`task_logs_retention_config`</span> -
(Optional)
The configuration setting for Task Logs. Structure is
documented below.
<a name=<span pulumi-lang-nodejs=""nestedTaskLogsRetentionConfigC2"" pulumi-lang-dotnet=""NestedTaskLogsRetentionConfigC2"" pulumi-lang-go=""nestedTaskLogsRetentionConfigC2"" pulumi-lang-python=""nested_task_logs_retention_config_c2"" pulumi-lang-yaml=""nestedTaskLogsRetentionConfigC2"" pulumi-lang-java=""nestedTaskLogsRetentionConfigC2"">"nested_task_logs_retention_config_c2"</span>></a>The <span pulumi-lang-nodejs="`taskLogsRetentionConfig`" pulumi-lang-dotnet="`TaskLogsRetentionConfig`" pulumi-lang-go="`taskLogsRetentionConfig`" pulumi-lang-python="`task_logs_retention_config`" pulumi-lang-yaml="`taskLogsRetentionConfig`" pulumi-lang-java="`taskLogsRetentionConfig`">`task_logs_retention_config`</span> block supports:
* <span pulumi-lang-nodejs="`storageMode`" pulumi-lang-dotnet="`StorageMode`" pulumi-lang-go="`storageMode`" pulumi-lang-python="`storage_mode`" pulumi-lang-yaml="`storageMode`" pulumi-lang-java="`storageMode`">`storage_mode`</span> -
(Optional)
The mode of storage for Airflow workers task logs. Values for storage mode are
`CLOUD_LOGGING_ONLY` to only store logs in cloud logging and
`CLOUD_LOGGING_AND_CLOUD_STORAGE` to store logs in cloud logging and cloud storage.
* <span pulumi-lang-nodejs="`masterAuthorizedNetworksConfig`" pulumi-lang-dotnet="`MasterAuthorizedNetworksConfig`" pulumi-lang-go="`masterAuthorizedNetworksConfig`" pulumi-lang-python="`master_authorized_networks_config`" pulumi-lang-yaml="`masterAuthorizedNetworksConfig`" pulumi-lang-java="`masterAuthorizedNetworksConfig`">`master_authorized_networks_config`</span> -
(Optional)
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. Structure is
documented below.
<a name=<span pulumi-lang-nodejs=""nestedMasterAuthorizedNetworksConfigC2"" pulumi-lang-dotnet=""NestedMasterAuthorizedNetworksConfigC2"" pulumi-lang-go=""nestedMasterAuthorizedNetworksConfigC2"" pulumi-lang-python=""nested_master_authorized_networks_config_c2"" pulumi-lang-yaml=""nestedMasterAuthorizedNetworksConfigC2"" pulumi-lang-java=""nestedMasterAuthorizedNetworksConfigC2"">"nested_master_authorized_networks_config_c2"</span>></a>The <span pulumi-lang-nodejs="`masterAuthorizedNetworksConfig`" pulumi-lang-dotnet="`MasterAuthorizedNetworksConfig`" pulumi-lang-go="`masterAuthorizedNetworksConfig`" pulumi-lang-python="`master_authorized_networks_config`" pulumi-lang-yaml="`masterAuthorizedNetworksConfig`" pulumi-lang-java="`masterAuthorizedNetworksConfig`">`master_authorized_networks_config`</span> block supports:
* <span pulumi-lang-nodejs="`enabled`" pulumi-lang-dotnet="`Enabled`" pulumi-lang-go="`enabled`" pulumi-lang-python="`enabled`" pulumi-lang-yaml="`enabled`" pulumi-lang-java="`enabled`">`enabled`</span> -
(Required)
Whether or not master authorized networks is enabled.
* <span pulumi-lang-nodejs="`cidrBlocks`" pulumi-lang-dotnet="`CidrBlocks`" pulumi-lang-go="`cidrBlocks`" pulumi-lang-python="`cidr_blocks`" pulumi-lang-yaml="`cidrBlocks`" pulumi-lang-java="`cidrBlocks`">`cidr_blocks`</span> -
<span pulumi-lang-nodejs="`cidrBlocks " pulumi-lang-dotnet="`CidrBlocks " pulumi-lang-go="`cidrBlocks " pulumi-lang-python="`cidr_blocks " pulumi-lang-yaml="`cidrBlocks " pulumi-lang-java="`cidrBlocks ">`cidr_blocks </span>`define up to 50 external networks that could access Kubernetes master through HTTPS. Structure is documented below.
<a name=<span pulumi-lang-nodejs=""nestedCidrBlocksC2"" pulumi-lang-dotnet=""NestedCidrBlocksC2"" pulumi-lang-go=""nestedCidrBlocksC2"" pulumi-lang-python=""nested_cidr_blocks_c2"" pulumi-lang-yaml=""nestedCidrBlocksC2"" pulumi-lang-java=""nestedCidrBlocksC2"">"nested_cidr_blocks_c2"</span>></a>The <span pulumi-lang-nodejs="`cidrBlocks`" pulumi-lang-dotnet="`CidrBlocks`" pulumi-lang-go="`cidrBlocks`" pulumi-lang-python="`cidr_blocks`" pulumi-lang-yaml="`cidrBlocks`" pulumi-lang-java="`cidrBlocks`">`cidr_blocks`</span> supports:
* <span pulumi-lang-nodejs="`displayName`" pulumi-lang-dotnet="`DisplayName`" pulumi-lang-go="`displayName`" pulumi-lang-python="`display_name`" pulumi-lang-yaml="`displayName`" pulumi-lang-java="`displayName`">`display_name`</span> -
(Optional)
<span pulumi-lang-nodejs="`displayName`" pulumi-lang-dotnet="`DisplayName`" pulumi-lang-go="`displayName`" pulumi-lang-python="`display_name`" pulumi-lang-yaml="`displayName`" pulumi-lang-java="`displayName`">`display_name`</span> is a field for users to identify CIDR blocks.
* <span pulumi-lang-nodejs="`cidrBlock`" pulumi-lang-dotnet="`CidrBlock`" pulumi-lang-go="`cidrBlock`" pulumi-lang-python="`cidr_block`" pulumi-lang-yaml="`cidrBlock`" pulumi-lang-java="`cidrBlock`">`cidr_block`</span> -
(Required)
<span pulumi-lang-nodejs="`cidrBlock`" pulumi-lang-dotnet="`CidrBlock`" pulumi-lang-go="`cidrBlock`" pulumi-lang-python="`cidr_block`" pulumi-lang-yaml="`cidrBlock`" pulumi-lang-java="`cidrBlock`">`cidr_block`</span> must be specified in CIDR notation.
<a name=<span pulumi-lang-nodejs=""nestedStorageConfigC2"" pulumi-lang-dotnet=""NestedStorageConfigC2"" pulumi-lang-go=""nestedStorageConfigC2"" pulumi-lang-python=""nested_storage_config_c2"" pulumi-lang-yaml=""nestedStorageConfigC2"" pulumi-lang-java=""nestedStorageConfigC2"">"nested_storage_config_c2"</span>></a>The <span pulumi-lang-nodejs="`storageConfig`" pulumi-lang-dotnet="`StorageConfig`" pulumi-lang-go="`storageConfig`" pulumi-lang-python="`storage_config`" pulumi-lang-yaml="`storageConfig`" pulumi-lang-java="`storageConfig`">`storage_config`</span> block supports:
* <span pulumi-lang-nodejs="`bucket`" pulumi-lang-dotnet="`Bucket`" pulumi-lang-go="`bucket`" pulumi-lang-python="`bucket`" pulumi-lang-yaml="`bucket`" pulumi-lang-java="`bucket`">`bucket`</span> -
(Required)
Name of an existing Cloud Storage bucket to be used by the environment.
<a name=<span pulumi-lang-nodejs=""nestedNodeConfigC2"" pulumi-lang-dotnet=""NestedNodeConfigC2"" pulumi-lang-go=""nestedNodeConfigC2"" pulumi-lang-python=""nested_node_config_c2"" pulumi-lang-yaml=""nestedNodeConfigC2"" pulumi-lang-java=""nestedNodeConfigC2"">"nested_node_config_c2"</span>></a>The <span pulumi-lang-nodejs="`nodeConfig`" pulumi-lang-dotnet="`NodeConfig`" pulumi-lang-go="`nodeConfig`" pulumi-lang-python="`node_config`" pulumi-lang-yaml="`nodeConfig`" pulumi-lang-java="`nodeConfig`">`node_config`</span> block supports:
* <span pulumi-lang-nodejs="`network`" pulumi-lang-dotnet="`Network`" pulumi-lang-go="`network`" pulumi-lang-python="`network`" pulumi-lang-yaml="`network`" pulumi-lang-java="`network`">`network`</span> -
(Optional)
The Compute Engine network to be used for machine
communications, specified as a self-link, relative resource name
(for example "projects/{project}/global/networks/{network}"), by name.
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.
* <span pulumi-lang-nodejs="`subnetwork`" pulumi-lang-dotnet="`Subnetwork`" pulumi-lang-go="`subnetwork`" pulumi-lang-python="`subnetwork`" pulumi-lang-yaml="`subnetwork`" pulumi-lang-java="`subnetwork`">`subnetwork`</span> -
(Optional)
The Compute Engine subnetwork to be used for machine
communications, specified as a self-link, relative resource name (for example,
"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.
* <span pulumi-lang-nodejs="`serviceAccount`" pulumi-lang-dotnet="`ServiceAccount`" pulumi-lang-go="`serviceAccount`" pulumi-lang-python="`service_account`" pulumi-lang-yaml="`serviceAccount`" pulumi-lang-java="`serviceAccount`">`service_account`</span> -
(Optional)
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.
* <span pulumi-lang-nodejs="`tags`" pulumi-lang-dotnet="`Tags`" pulumi-lang-go="`tags`" pulumi-lang-python="`tags`" pulumi-lang-yaml="`tags`" pulumi-lang-java="`tags`">`tags`</span> -
(Optional)
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.
* <span pulumi-lang-nodejs="`ipAllocationPolicy`" pulumi-lang-dotnet="`IpAllocationPolicy`" pulumi-lang-go="`ipAllocationPolicy`" pulumi-lang-python="`ip_allocation_policy`" pulumi-lang-yaml="`ipAllocationPolicy`" pulumi-lang-java="`ipAllocationPolicy`">`ip_allocation_policy`</span> -
(Optional)
Configuration for controlling how IPs are allocated in the GKE cluster.
Structure is documented below.
Cannot be updated.
* <span pulumi-lang-nodejs="`enableIpMasqAgent`" pulumi-lang-dotnet="`EnableIpMasqAgent`" pulumi-lang-go="`enableIpMasqAgent`" pulumi-lang-python="`enable_ip_masq_agent`" pulumi-lang-yaml="`enableIpMasqAgent`" pulumi-lang-java="`enableIpMasqAgent`">`enable_ip_masq_agent`</span> -
(Optional)
IP Masq Agent translates Pod IP addresses to node IP addresses, so that
destinations and services targeted from Airflow DAGs and tasks only receive
packets from node IP addresses instead of Pod IP addresses
See the [documentation](https://cloud.google.com/composer/docs/enable-ip-masquerade-agent).
<a name=<span pulumi-lang-nodejs=""nestedSoftwareConfigC2"" pulumi-lang-dotnet=""NestedSoftwareConfigC2"" pulumi-lang-go=""nestedSoftwareConfigC2"" pulumi-lang-python=""nested_software_config_c2"" pulumi-lang-yaml=""nestedSoftwareConfigC2"" pulumi-lang-java=""nestedSoftwareConfigC2"">"nested_software_config_c2"</span>></a>The <span pulumi-lang-nodejs="`softwareConfig`" pulumi-lang-dotnet="`SoftwareConfig`" pulumi-lang-go="`softwareConfig`" pulumi-lang-python="`software_config`" pulumi-lang-yaml="`softwareConfig`" pulumi-lang-java="`softwareConfig`">`software_config`</span> block supports:
* <span pulumi-lang-nodejs="`airflowConfigOverrides`" pulumi-lang-dotnet="`AirflowConfigOverrides`" pulumi-lang-go="`airflowConfigOverrides`" pulumi-lang-python="`airflow_config_overrides`" pulumi-lang-yaml="`airflowConfigOverrides`" pulumi-lang-java="`airflowConfigOverrides`">`airflow_config_overrides`</span> -
(Optional) 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](https://cloud.google.com/composer/docs/concepts/airflow-configurations#airflow_configuration_blacklists),
and cannot be overridden.
* <span pulumi-lang-nodejs="`pypiPackages`" pulumi-lang-dotnet="`PypiPackages`" pulumi-lang-go="`pypiPackages`" pulumi-lang-python="`pypi_packages`" pulumi-lang-yaml="`pypiPackages`" pulumi-lang-java="`pypiPackages`">`pypi_packages`</span> -
(Optional)
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.
* <span pulumi-lang-nodejs="`envVariables`" pulumi-lang-dotnet="`EnvVariables`" pulumi-lang-go="`envVariables`" pulumi-lang-python="`env_variables`" pulumi-lang-yaml="`envVariables`" pulumi-lang-java="`envVariables`">`env_variables`</span> -
(Optional)
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
* <span pulumi-lang-nodejs="`imageVersion`" pulumi-lang-dotnet="`ImageVersion`" pulumi-lang-go="`imageVersion`" pulumi-lang-python="`image_version`" pulumi-lang-yaml="`imageVersion`" pulumi-lang-java="`imageVersion`">`image_version`</span> -
(Optional) If omitted, the default is the latest version of Composer 2.
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.
**Important**: In-place upgrade is only available between minor or
patch versions of Cloud Composer or Apache Airflow. For example, you can upgrade your environment from
`composer-1.16.x` to `composer-1.17.x`, or from `airflow-2.1.x` to `airflow-2.2.x`. You cannot upgrade between
major Cloud Composer or Apache Airflow versions (from `1.x.x` to `2.x.x`). To do so, create a new environment.
* <span pulumi-lang-nodejs="`cloudDataLineageIntegration`" pulumi-lang-dotnet="`CloudDataLineageIntegration`" pulumi-lang-go="`cloudDataLineageIntegration`" pulumi-lang-python="`cloud_data_lineage_integration`" pulumi-lang-yaml="`cloudDataLineageIntegration`" pulumi-lang-java="`cloudDataLineageIntegration`">`cloud_data_lineage_integration`</span> -
(Optional, Cloud Composer environments in versions composer-2.1.2-airflow-*.*.* and newer)
The configuration for Cloud Data Lineage integration. Structure is
documented below.
<a name=<span pulumi-lang-nodejs=""nestedCloudDataLineageIntegrationC2"" pulumi-lang-dotnet=""NestedCloudDataLineageIntegrationC2"" pulumi-lang-go=""nestedCloudDataLineageIntegrationC2"" pulumi-lang-python=""nested_cloud_data_lineage_integration_c2"" pulumi-lang-yaml=""nestedCloudDataLineageIntegrationC2"" pulumi-lang-java=""nestedCloudDataLineageIntegrationC2"">"nested_cloud_data_lineage_integration_c2"</span>></a>The <span pulumi-lang-nodejs="`cloudDataLineageIntegration`" pulumi-lang-dotnet="`CloudDataLineageIntegration`" pulumi-lang-go="`cloudDataLineageIntegration`" pulumi-lang-python="`cloud_data_lineage_integration`" pulumi-lang-yaml="`cloudDataLineageIntegration`" pulumi-lang-java="`cloudDataLineageIntegration`">`cloud_data_lineage_integration`</span> block supports:
* <span pulumi-lang-nodejs="`enabled`" pulumi-lang-dotnet="`Enabled`" pulumi-lang-go="`enabled`" pulumi-lang-python="`enabled`" pulumi-lang-yaml="`enabled`" pulumi-lang-java="`enabled`">`enabled`</span> -
(Required)
Whether or not Cloud Data Lineage integration is enabled.
<a name=<span pulumi-lang-nodejs=""nestedPrivateEnvironmentConfigC2"" pulumi-lang-dotnet=""NestedPrivateEnvironmentConfigC2"" pulumi-lang-go=""nestedPrivateEnvironmentConfigC2"" pulumi-lang-python=""nested_private_environment_config_c2"" pulumi-lang-yaml=""nestedPrivateEnvironmentConfigC2"" pulumi-lang-java=""nestedPrivateEnvironmentConfigC2"">"nested_private_environment_config_c2"</span>></a>See [documentation](https://cloud.google.com/composer/docs/how-to/managing/configuring-private-ip) for setting up private environments. The <span pulumi-lang-nodejs="`privateEnvironmentConfig`" pulumi-lang-dotnet="`PrivateEnvironmentConfig`" pulumi-lang-go="`privateEnvironmentConfig`" pulumi-lang-python="`private_environment_config`" pulumi-lang-yaml="`privateEnvironmentConfig`" pulumi-lang-java="`privateEnvironmentConfig`">`private_environment_config`</span> block supports:
* <span pulumi-lang-nodejs="`connectionType`" pulumi-lang-dotnet="`ConnectionType`" pulumi-lang-go="`connectionType`" pulumi-lang-python="`connection_type`" pulumi-lang-yaml="`connectionType`" pulumi-lang-java="`connectionType`">`connection_type`</span> -
(Optional, Cloud Composer 2 only)
Mode of internal communication within the Composer environment. Must be one
of `"VPC_PEERING"` or `"PRIVATE_SERVICE_CONNECT"`.
* <span pulumi-lang-nodejs="`enablePrivateEndpoint`" pulumi-lang-dotnet="`EnablePrivateEndpoint`" pulumi-lang-go="`enablePrivateEndpoint`" pulumi-lang-python="`enable_private_endpoint`" pulumi-lang-yaml="`enablePrivateEndpoint`" pulumi-lang-java="`enablePrivateEndpoint`">`enable_private_endpoint`</span> -
If true, access to the public endpoint of the GKE cluster is denied.
* <span pulumi-lang-nodejs="`masterIpv4CidrBlock`" pulumi-lang-dotnet="`MasterIpv4CidrBlock`" pulumi-lang-go="`masterIpv4CidrBlock`" pulumi-lang-python="`master_ipv4_cidr_block`" pulumi-lang-yaml="`masterIpv4CidrBlock`" pulumi-lang-java="`masterIpv4CidrBlock`">`master_ipv4_cidr_block`</span> -
(Optional)
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 is used. See [documentation](https://cloud.google.com/composer/docs/how-to/managing/configuring-private-ip#defaults) for default values per region.
* <span pulumi-lang-nodejs="`cloudSqlIpv4CidrBlock`" pulumi-lang-dotnet="`CloudSqlIpv4CidrBlock`" pulumi-lang-go="`cloudSqlIpv4CidrBlock`" pulumi-lang-python="`cloud_sql_ipv4_cidr_block`" pulumi-lang-yaml="`cloudSqlIpv4CidrBlock`" pulumi-lang-java="`cloudSqlIpv4CidrBlock`">`cloud_sql_ipv4_cidr_block`</span> -
(Optional)
The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from <span pulumi-lang-nodejs="`webServerIpv4CidrBlock`" pulumi-lang-dotnet="`WebServerIpv4CidrBlock`" pulumi-lang-go="`webServerIpv4CidrBlock`" pulumi-lang-python="`web_server_ipv4_cidr_block`" pulumi-lang-yaml="`webServerIpv4CidrBlock`" pulumi-lang-java="`webServerIpv4CidrBlock`">`web_server_ipv4_cidr_block`</span>
* <span pulumi-lang-nodejs="`cloudComposerNetworkIpv4CidrBlock"" pulumi-lang-dotnet="`CloudComposerNetworkIpv4CidrBlock"" pulumi-lang-go="`cloudComposerNetworkIpv4CidrBlock"" pulumi-lang-python="`cloud_composer_network_ipv4_cidr_block"" pulumi-lang-yaml="`cloudComposerNetworkIpv4CidrBlock"" pulumi-lang-java="`cloudComposerNetworkIpv4CidrBlock"">`cloud_composer_network_ipv4_cidr_block"</span>` -
(Optional, Cloud Composer 2 only)
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.
* <span pulumi-lang-nodejs="`enablePrivatelyUsedPublicIps`" pulumi-lang-dotnet="`EnablePrivatelyUsedPublicIps`" pulumi-lang-go="`enablePrivatelyUsedPublicIps`" pulumi-lang-python="`enable_privately_used_public_ips`" pulumi-lang-yaml="`enablePrivatelyUsedPublicIps`" pulumi-lang-java="`enablePrivatelyUsedPublicIps`">`enable_privately_used_public_ips`</span> -
(Optional)
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`.
* <span pulumi-lang-nodejs="`cloudComposerConnectionSubnetwork`" pulumi-lang-dotnet="`CloudComposerConnectionSubnetwork`" pulumi-lang-go="`cloudComposerConnectionSubnetwork`" pulumi-lang-python="`cloud_composer_connection_subnetwork`" pulumi-lang-yaml="`cloudComposerConnectionSubnetwork`" pulumi-lang-java="`cloudComposerConnectionSubnetwork`">`cloud_composer_connection_subnetwork`</span> -
(Optional)
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.
<a name=<span pulumi-lang-nodejs=""nestedIpAllocationPolicyC2"" pulumi-lang-dotnet=""NestedIpAllocationPolicyC2"" pulumi-lang-go=""nestedIpAllocationPolicyC2"" pulumi-lang-python=""nested_ip_allocation_policy_c2"" pulumi-lang-yaml=""nestedIpAllocationPolicyC2"" pulumi-lang-java=""nestedIpAllocationPolicyC2"">"nested_ip_allocation_policy_c2"</span>></a>The <span pulumi-lang-nodejs="`ipAllocationPolicy`" pulumi-lang-dotnet="`IpAllocationPolicy`" pulumi-lang-go="`ipAllocationPolicy`" pulumi-lang-python="`ip_allocation_policy`" pulumi-lang-yaml="`ipAllocationPolicy`" pulumi-lang-java="`ipAllocationPolicy`">`ip_allocation_policy`</span> block supports:
* <span pulumi-lang-nodejs="`clusterSecondaryRangeName`" pulumi-lang-dotnet="`ClusterSecondaryRangeName`" pulumi-lang-go="`clusterSecondaryRangeName`" pulumi-lang-python="`cluster_secondary_range_name`" pulumi-lang-yaml="`clusterSecondaryRangeName`" pulumi-lang-java="`clusterSecondaryRangeName`">`cluster_secondary_range_name`</span> -
(Optional)
The name of the cluster's secondary range used to allocate IP addresses to pods.
Specify either <span pulumi-lang-nodejs="`clusterSecondaryRangeName`" pulumi-lang-dotnet="`ClusterSecondaryRangeName`" pulumi-lang-go="`clusterSecondaryRangeName`" pulumi-lang-python="`cluster_secondary_range_name`" pulumi-lang-yaml="`clusterSecondaryRangeName`" pulumi-lang-java="`clusterSecondaryRangeName`">`cluster_secondary_range_name`</span> or <span pulumi-lang-nodejs="`clusterIpv4CidrBlock`" pulumi-lang-dotnet="`ClusterIpv4CidrBlock`" pulumi-lang-go="`clusterIpv4CidrBlock`" pulumi-lang-python="`cluster_ipv4_cidr_block`" pulumi-lang-yaml="`clusterIpv4CidrBlock`" pulumi-lang-java="`clusterIpv4CidrBlock`">`cluster_ipv4_cidr_block`</span> but not both.
* <span pulumi-lang-nodejs="`servicesSecondaryRangeName`" pulumi-lang-dotnet="`ServicesSecondaryRangeName`" pulumi-lang-go="`servicesSecondaryRangeName`" pulumi-lang-python="`services_secondary_range_name`" pulumi-lang-yaml="`servicesSecondaryRangeName`" pulumi-lang-java="`servicesSecondaryRangeName`">`services_secondary_range_name`</span> -
(Optional)
The name of the services' secondary range used to allocate IP addresses to the cluster.
Specify either <span pulumi-lang-nodejs="`servicesSecondaryRangeName`" pulumi-lang-dotnet="`ServicesSecondaryRangeName`" pulumi-lang-go="`servicesSecondaryRangeName`" pulumi-lang-python="`services_secondary_range_name`" pulumi-lang-yaml="`servicesSecondaryRangeName`" pulumi-lang-java="`servicesSecondaryRangeName`">`services_secondary_range_name`</span> or <span pulumi-lang-nodejs="`servicesIpv4CidrBlock`" pulumi-lang-dotnet="`ServicesIpv4CidrBlock`" pulumi-lang-go="`servicesIpv4CidrBlock`" pulumi-lang-python="`services_ipv4_cidr_block`" pulumi-lang-yaml="`servicesIpv4CidrBlock`" pulumi-lang-java="`servicesIpv4CidrBlock`">`services_ipv4_cidr_block`</span> but not both.
* <span pulumi-lang-nodejs="`clusterIpv4CidrBlock`" pulumi-lang-dotnet="`ClusterIpv4CidrBlock`" pulumi-lang-go="`clusterIpv4CidrBlock`" pulumi-lang-python="`cluster_ipv4_cidr_block`" pulumi-lang-yaml="`clusterIpv4CidrBlock`" pulumi-lang-java="`clusterIpv4CidrBlock`">`cluster_ipv4_cidr_block`</span> -
(Optional)
The IP address range used to allocate IP addresses to pods in the cluster.
For Cloud Composer 1 environments, this field is applicable only when <span pulumi-lang-nodejs="`useIpAliases`" pulumi-lang-dotnet="`UseIpAliases`" pulumi-lang-go="`useIpAliases`" pulumi-lang-python="`use_ip_aliases`" pulumi-lang-yaml="`useIpAliases`" pulumi-lang-java="`useIpAliases`">`use_ip_aliases`</span> 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 <span pulumi-lang-nodejs="`clusterSecondaryRangeName`" pulumi-lang-dotnet="`ClusterSecondaryRangeName`" pulumi-lang-go="`clusterSecondaryRangeName`" pulumi-lang-python="`cluster_secondary_range_name`" pulumi-lang-yaml="`clusterSecondaryRangeName`" pulumi-lang-java="`clusterSecondaryRangeName`">`cluster_secondary_range_name`</span> or <span pulumi-lang-nodejs="`clusterIpv4CidrBlock`" pulumi-lang-dotnet="`ClusterIpv4CidrBlock`" pulumi-lang-go="`clusterIpv4CidrBlock`" pulumi-lang-python="`cluster_ipv4_cidr_block`" pulumi-lang-yaml="`clusterIpv4CidrBlock`" pulumi-lang-java="`clusterIpv4CidrBlock`">`cluster_ipv4_cidr_block`</span> but not both.
* <span pulumi-lang-nodejs="`servicesIpv4CidrBlock`" pulumi-lang-dotnet="`ServicesIpv4CidrBlock`" pulumi-lang-go="`servicesIpv4CidrBlock`" pulumi-lang-python="`services_ipv4_cidr_block`" pulumi-lang-yaml="`servicesIpv4CidrBlock`" pulumi-lang-java="`servicesIpv4CidrBlock`">`services_ipv4_cidr_block`</span> -
(Optional)
The IP address range used to allocate IP addresses in this cluster.
For Cloud Composer 1 environments, this field is applicable only when <span pulumi-lang-nodejs="`useIpAliases`" pulumi-lang-dotnet="`UseIpAliases`" pulumi-lang-go="`useIpAliases`" pulumi-lang-python="`use_ip_aliases`" pulumi-lang-yaml="`useIpAliases`" pulumi-lang-java="`useIpAliases`">`use_ip_aliases`</span> 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 <span pulumi-lang-nodejs="`servicesSecondaryRangeName`" pulumi-lang-dotnet="`ServicesSecondaryRangeName`" pulumi-lang-go="`servicesSecondaryRangeName`" pulumi-lang-python="`services_secondary_range_name`" pulumi-lang-yaml="`servicesSecondaryRangeName`" pulumi-lang-java="`servicesSecondaryRangeName`">`services_secondary_range_name`</span> or <span pulumi-lang-nodejs="`servicesIpv4CidrBlock`" pulumi-lang-dotnet="`ServicesIpv4CidrBlock`" pulumi-lang-go="`servicesIpv4CidrBlock`" pulumi-lang-python="`services_ipv4_cidr_block`" pulumi-lang-yaml="`servicesIpv4CidrBlock`" pulumi-lang-java="`servicesIpv4CidrBlock`">`services_ipv4_cidr_block`</span> but not both.
<a name=<span pulumi-lang-nodejs=""nestedEncryptionConfigComp2"" pulumi-lang-dotnet=""NestedEncryptionConfigComp2"" pulumi-lang-go=""nestedEncryptionConfigComp2"" pulumi-lang-python=""nested_encryption_config_comp_2"" pulumi-lang-yaml=""nestedEncryptionConfigComp2"" pulumi-lang-java=""nestedEncryptionConfigComp2"">"nested_encryption_config_comp_2"</span>></a>The <span pulumi-lang-nodejs="`encryptionConfig`" pulumi-lang-dotnet="`EncryptionConfig`" pulumi-lang-go="`encryptionConfig`" pulumi-lang-python="`encryption_config`" pulumi-lang-yaml="`encryptionConfig`" pulumi-lang-java="`encryptionConfig`">`encryption_config`</span> block supports:
* <span pulumi-lang-nodejs="`kmsKeyName`" pulumi-lang-dotnet="`KmsKeyName`" pulumi-lang-go="`kmsKeyName`" pulumi-lang-python="`kms_key_name`" pulumi-lang-yaml="`kmsKeyName`" pulumi-lang-java="`kmsKeyName`">`kms_key_name`</span> -
(Required)
Customer-managed Encryption Key available through Google's Key Management Service. It must
be the fully qualified resource name,
i.e. projects/project-id/locations/location/keyRings/keyring/cryptoKeys/key. Cannot be updated.
<a name=<span pulumi-lang-nodejs=""nestedMaintenanceWindowComp2"" pulumi-lang-dotnet=""NestedMaintenanceWindowComp2"" pulumi-lang-go=""nestedMaintenanceWindowComp2"" pulumi-lang-python=""nested_maintenance_window_comp_2"" pulumi-lang-yaml=""nestedMaintenanceWindowComp2"" pulumi-lang-java=""nestedMaintenanceWindowComp2"">"nested_maintenance_window_comp_2"</span>></a>The <span pulumi-lang-nodejs="`maintenanceWindow`" pulumi-lang-dotnet="`MaintenanceWindow`" pulumi-lang-go="`maintenanceWindow`" pulumi-lang-python="`maintenance_window`" pulumi-lang-yaml="`maintenanceWindow`" pulumi-lang-java="`maintenanceWindow`">`maintenance_window`</span> block supports:
* <span pulumi-lang-nodejs="`startTime`" pulumi-lang-dotnet="`StartTime`" pulumi-lang-go="`startTime`" pulumi-lang-python="`start_time`" pulumi-lang-yaml="`startTime`" pulumi-lang-java="`startTime`">`start_time`</span> -
(Required)
Start time of the first recurrence of the maintenance window.
* <span pulumi-lang-nodejs="`endTime`" pulumi-lang-dotnet="`EndTime`" pulumi-lang-go="`endTime`" pulumi-lang-python="`end_time`" pulumi-lang-yaml="`endTime`" pulumi-lang-java="`endTime`">`end_time`</span> -
(Required)
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'.
* <span pulumi-lang-nodejs="`recurrence`" pulumi-lang-dotnet="`Recurrence`" pulumi-lang-go="`recurrence`" pulumi-lang-python="`recurrence`" pulumi-lang-yaml="`recurrence`" pulumi-lang-java="`recurrence`">`recurrence`</span> -
(Required)
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'.
<a name=<span pulumi-lang-nodejs=""nestedRecoveryConfigC2"" pulumi-lang-dotnet=""NestedRecoveryConfigC2"" pulumi-lang-go=""nestedRecoveryConfigC2"" pulumi-lang-python=""nested_recovery_config_c2"" pulumi-lang-yaml=""nestedRecoveryConfigC2"" pulumi-lang-java=""nestedRecoveryConfigC2"">"nested_recovery_config_c2"</span>></a>The <span pulumi-lang-nodejs="`recoveryConfig`" pulumi-lang-dotnet="`RecoveryConfig`" pulumi-lang-go="`recoveryConfig`" pulumi-lang-python="`recovery_config`" pulumi-lang-yaml="`recoveryConfig`" pulumi-lang-java="`recoveryConfig`">`recovery_config`</span> block supports:
* <span pulumi-lang-nodejs="`scheduledSnapshotsConfig`" pulumi-lang-dotnet="`ScheduledSnapshotsConfig`" pulumi-lang-go="`scheduledSnapshotsConfig`" pulumi-lang-python="`scheduled_snapshots_config`" pulumi-lang-yaml="`scheduledSnapshotsConfig`" pulumi-lang-java="`scheduledSnapshotsConfig`">`scheduled_snapshots_config`</span> -
(Optional)
The recovery configuration settings for the Cloud Composer environment.
The <span pulumi-lang-nodejs="`scheduledSnapshotsConfig`" pulumi-lang-dotnet="`ScheduledSnapshotsConfig`" pulumi-lang-go="`scheduledSnapshotsConfig`" pulumi-lang-python="`scheduled_snapshots_config`" pulumi-lang-yaml="`scheduledSnapshotsConfig`" pulumi-lang-java="`scheduledSnapshotsConfig`">`scheduled_snapshots_config`</span> block supports:
* <span pulumi-lang-nodejs="`enabled`" pulumi-lang-dotnet="`Enabled`" pulumi-lang-go="`enabled`" pulumi-lang-python="`enabled`" pulumi-lang-yaml="`enabled`" pulumi-lang-java="`enabled`">`enabled`</span> -
(Optional)
When enabled, Cloud Composer periodically saves snapshots of your environment to a Cloud Storage bucket.
* <span pulumi-lang-nodejs="`snapshotLocation`" pulumi-lang-dotnet="`SnapshotLocation`" pulumi-lang-go="`snapshotLocation`" pulumi-lang-python="`snapshot_location`" pulumi-lang-yaml="`snapshotLocation`" pulumi-lang-java="`snapshotLocation`">`snapshot_location`</span> -
(Optional)
The URI of a bucket folder where to save the snapshot.
* <span pulumi-lang-nodejs="`snapshotCreationSchedule`" pulumi-lang-dotnet="`SnapshotCreationSchedule`" pulumi-lang-go="`snapshotCreationSchedule`" pulumi-lang-python="`snapshot_creation_schedule`" pulumi-lang-yaml="`snapshotCreationSchedule`" pulumi-lang-java="`snapshotCreationSchedule`">`snapshot_creation_schedule`</span> -
(Optional)
Snapshot schedule, in the unix-cron format.
* <span pulumi-lang-nodejs="`timeZone`" pulumi-lang-dotnet="`TimeZone`" pulumi-lang-go="`timeZone`" pulumi-lang-python="`time_zone`" pulumi-lang-yaml="`timeZone`" pulumi-lang-java="`timeZone`">`time_zone`</span> -
(Optional)
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.
The <span pulumi-lang-nodejs="`workloadsConfig`" pulumi-lang-dotnet="`WorkloadsConfig`" pulumi-lang-go="`workloadsConfig`" pulumi-lang-python="`workloads_config`" pulumi-lang-yaml="`workloadsConfig`" pulumi-lang-java="`workloadsConfig`">`workloads_config`</span> block supports:
* <span pulumi-lang-nodejs="`scheduler`" pulumi-lang-dotnet="`Scheduler`" pulumi-lang-go="`scheduler`" pulumi-lang-python="`scheduler`" pulumi-lang-yaml="`scheduler`" pulumi-lang-java="`scheduler`">`scheduler`</span> -
(Optional)
Configuration for resources used by Airflow schedulers.
* <span pulumi-lang-nodejs="`triggerer`" pulumi-lang-dotnet="`Triggerer`" pulumi-lang-go="`triggerer`" pulumi-lang-python="`triggerer`" pulumi-lang-yaml="`triggerer`" pulumi-lang-java="`triggerer`">`triggerer`</span> -
(Optional)
Configuration for resources used by Airflow triggerer.
* <span pulumi-lang-nodejs="`webServer`" pulumi-lang-dotnet="`WebServer`" pulumi-lang-go="`webServer`" pulumi-lang-python="`web_server`" pulumi-lang-yaml="`webServer`" pulumi-lang-java="`webServer`">`web_server`</span> -
(Optional)
Configuration for resources used by Airflow web server.
* <span pulumi-lang-nodejs="`worker`" pulumi-lang-dotnet="`Worker`" pulumi-lang-go="`worker`" pulumi-lang-python="`worker`" pulumi-lang-yaml="`worker`" pulumi-lang-java="`worker`">`worker`</span> -
(Optional)
Configuration for resources used by Airflow workers.
The <span pulumi-lang-nodejs="`scheduler`" pulumi-lang-dotnet="`Scheduler`" pulumi-lang-go="`scheduler`" pulumi-lang-python="`scheduler`" pulumi-lang-yaml="`scheduler`" pulumi-lang-java="`scheduler`">`scheduler`</span> block supports:
* <span pulumi-lang-nodejs="`cpu`" pulumi-lang-dotnet="`Cpu`" pulumi-lang-go="`cpu`" pulumi-lang-python="`cpu`" pulumi-lang-yaml="`cpu`" pulumi-lang-java="`cpu`">`cpu`</span> -
(Optional)
The number of CPUs for a single Airflow scheduler.
* <span pulumi-lang-nodejs="`memoryGb`" pulumi-lang-dotnet="`MemoryGb`" pulumi-lang-go="`memoryGb`" pulumi-lang-python="`memory_gb`" pulumi-lang-yaml="`memoryGb`" pulumi-lang-java="`memoryGb`">`memory_gb`</span> -
(Optional)
The amount of memory (GB) for a single Airflow scheduler.
* <span pulumi-lang-nodejs="`storageGb`" pulumi-lang-dotnet="`StorageGb`" pulumi-lang-go="`storageGb`" pulumi-lang-python="`storage_gb`" pulumi-lang-yaml="`storageGb`" pulumi-lang-java="`storageGb`">`storage_gb`</span> -
(Optional)
The amount of storage (GB) for a single Airflow scheduler.
* <span pulumi-lang-nodejs="`count`" pulumi-lang-dotnet="`Count`" pulumi-lang-go="`count`" pulumi-lang-python="`count`" pulumi-lang-yaml="`count`" pulumi-lang-java="`count`">`count`</span> -
(Optional)
The number of schedulers.
The <span pulumi-lang-nodejs="`triggerer`" pulumi-lang-dotnet="`Triggerer`" pulumi-lang-go="`triggerer`" pulumi-lang-python="`triggerer`" pulumi-lang-yaml="`triggerer`" pulumi-lang-java="`triggerer`">`triggerer`</span> block supports:
* <span pulumi-lang-nodejs="`cpu`" pulumi-lang-dotnet="`Cpu`" pulumi-lang-go="`cpu`" pulumi-lang-python="`cpu`" pulumi-lang-yaml="`cpu`" pulumi-lang-java="`cpu`">`cpu`</span> -
(Required)
The number of CPUs for a single Airflow triggerer.
* <span pulumi-lang-nodejs="`memoryGb`" pulumi-lang-dotnet="`MemoryGb`" pulumi-lang-go="`memoryGb`" pulumi-lang-python="`memory_gb`" pulumi-lang-yaml="`memoryGb`" pulumi-lang-java="`memoryGb`">`memory_gb`</span> -
(Required)
The amount of memory (GB) for a single Airflow triggerer.
* <span pulumi-lang-nodejs="`count`" pulumi-lang-dotnet="`Count`" pulumi-lang-go="`count`" pulumi-lang-python="`count`" pulumi-lang-yaml="`count`" pulumi-lang-java="`count`">`count`</span> -
(Required)
The number of Airflow triggerers.
The <span pulumi-lang-nodejs="`webServer`" pulumi-lang-dotnet="`WebServer`" pulumi-lang-go="`webServer`" pulumi-lang-python="`web_server`" pulumi-lang-yaml="`webServer`" pulumi-lang-java="`webServer`">`web_server`</span> block supports:
* <span pulumi-lang-nodejs="`cpu`" pulumi-lang-dotnet="`Cpu`" pulumi-lang-go="`cpu`" pulumi-lang-python="`cpu`" pulumi-lang-yaml="`cpu`" pulumi-lang-java="`cpu`">`cpu`</span> -
(Optional)
The number of CPUs for the Airflow web server.
* <span pulumi-lang-nodejs="`memoryGb`" pulumi-lang-dotnet="`MemoryGb`" pulumi-lang-go="`memoryGb`" pulumi-lang-python="`memory_gb`" pulumi-lang-yaml="`memoryGb`" pulumi-lang-java="`memoryGb`">`memory_gb`</span> -
(Optional)
The amount of memory (GB) for the Airflow web server.
* <span pulumi-lang-nodejs="`storageGb`" pulumi-lang-dotnet="`StorageGb`" pulumi-lang-go="`storageGb`" pulumi-lang-python="`storage_gb`" pulumi-lang-yaml="`storageGb`" pulumi-lang-java="`storageGb`">`storage_gb`</span> -
(Optional)
The amount of storage (GB) for the Airflow web server.
The <span pulumi-lang-nodejs="`worker`" pulumi-lang-dotnet="`Worker`" pulumi-lang-go="`worker`" pulumi-lang-python="`worker`" pulumi-lang-yaml="`worker`" pulumi-lang-java="`worker`">`worker`</span> block supports:
* <span pulumi-lang-nodejs="`cpu`" pulumi-lang-dotnet="`Cpu`" pulumi-lang-go="`cpu`" pulumi-lang-python="`cpu`" pulumi-lang-yaml="`cpu`" pulumi-lang-java="`cpu`">`cpu`</span> -
(Optional)
The number of CPUs for a single Airflow worker.
* <span pulumi-lang-nodejs="`memoryGb`" pulumi-lang-dotnet="`MemoryGb`" pulumi-lang-go="`memoryGb`" pulumi-lang-python="`memory_gb`" pulumi-lang-yaml="`memoryGb`" pulumi-lang-java="`memoryGb`">`memory_gb`</span> -
(Optional)
The amount of memory (GB) for a single Airflow worker.
* <span pulumi-lang-nodejs="`storageGb`" pulumi-lang-dotnet="`StorageGb`" pulumi-lang-go="`storageGb`" pulumi-lang-python="`storage_gb`" pulumi-lang-yaml="`storageGb`" pulumi-lang-java="`storageGb`">`storage_gb`</span>
(Optional)
The amount of storage (GB) for a single Airflow worker.
* <span pulumi-lang-nodejs="`minCount`" pulumi-lang-dotnet="`MinCount`" pulumi-lang-go="`minCount`" pulumi-lang-python="`min_count`" pulumi-lang-yaml="`minCount`" pulumi-lang-java="`minCount`">`min_count`</span> -
(Optional)
The minimum number of Airflow workers that the environment can run. The number of workers in the
environment does not go below this number, even if a lower number of workers can handle the load.
* <span pulumi-lang-nodejs="`maxCount`" pulumi-lang-dotnet="`MaxCount`" pulumi-lang-go="`maxCount`" pulumi-lang-python="`max_count`" pulumi-lang-yaml="`maxCount`" pulumi-lang-java="`maxCount`">`max_count`</span> -
(Optional)
The maximum number of Airflow workers that the environment can run. The number of workers in the
environment does not go above this number, even if a higher number of workers is required to
handle the load.
## Argument Reference - Cloud Composer 3
The following arguments are supported:
* <span pulumi-lang-nodejs="`name`" pulumi-lang-dotnet="`Name`" pulumi-lang-go="`name`" pulumi-lang-python="`name`" pulumi-lang-yaml="`name`" pulumi-lang-java="`name`">`name`</span> -
(Required)
Name of the environment
* <span pulumi-lang-nodejs="`config`" pulumi-lang-dotnet="`Config`" pulumi-lang-go="`config`" pulumi-lang-python="`config`" pulumi-lang-yaml="`config`" pulumi-lang-java="`config`">`config`</span> -
(Optional)
Configuration parameters for this environment. Structure is documented below.
* <span pulumi-lang-nodejs="`labels`" pulumi-lang-dotnet="`Labels`" pulumi-lang-go="`labels`" pulumi-lang-python="`labels`" pulumi-lang-yaml="`labels`" pulumi-lang-java="`labels`">`labels`</span> -
(Optional)
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.
* <span pulumi-lang-nodejs="`region`" pulumi-lang-dotnet="`Region`" pulumi-lang-go="`region`" pulumi-lang-python="`region`" pulumi-lang-yaml="`region`" pulumi-lang-java="`region`">`region`</span> -
(Optional)
The location or Compute Engine region for the environment.
* <span pulumi-lang-nodejs="`project`" pulumi-lang-dotnet="`Project`" pulumi-lang-go="`project`" pulumi-lang-python="`project`" pulumi-lang-yaml="`project`" pulumi-lang-java="`project`">`project`</span> -
(Optional) The ID of the project in which the resource belongs.
If it is not provided, the provider project is used.
* <span pulumi-lang-nodejs="`storageConfig`" pulumi-lang-dotnet="`StorageConfig`" pulumi-lang-go="`storageConfig`" pulumi-lang-python="`storage_config`" pulumi-lang-yaml="`storageConfig`" pulumi-lang-java="`storageConfig`">`storage_config`</span> -
(Optional)
Configuration options for storage used by Composer environment. Structure is documented below.
<a name=<span pulumi-lang-nodejs=""nestedConfigC3"" pulumi-lang-dotnet=""NestedConfigC3"" pulumi-lang-go=""nestedConfigC3"" pulumi-lang-python=""nested_config_c3"" pulumi-lang-yaml=""nestedConfigC3"" pulumi-lang-java=""nestedConfigC3"">"nested_config_c3"</span>></a>The <span pulumi-lang-nodejs="`config`" pulumi-lang-dotnet="`Config`" pulumi-lang-go="`config`" pulumi-lang-python="`config`" pulumi-lang-yaml="`config`" pulumi-lang-java="`config`">`config`</span> block supports:
* <span pulumi-lang-nodejs="`nodeConfig`" pulumi-lang-dotnet="`NodeConfig`" pulumi-lang-go="`nodeConfig`" pulumi-lang-python="`node_config`" pulumi-lang-yaml="`nodeConfig`" pulumi-lang-java="`nodeConfig`">`node_config`</span> -
(Optional)
The configuration used for the Kubernetes Engine cluster. Structure is documented below.
* <span pulumi-lang-nodejs="`softwareConfig`" pulumi-lang-dotnet="`SoftwareConfig`" pulumi-lang-go="`softwareConfig`" pulumi-lang-python="`software_config`" pulumi-lang-yaml="`softwareConfig`" pulumi-lang-java="`softwareConfig`">`software_config`</span> -
(Optional)
The configuration settings for software (Airflow) inside the environment. Structure is documented below.
* <span pulumi-lang-nodejs="`enablePrivateEnvironment`" pulumi-lang-dotnet="`EnablePrivateEnvironment`" pulumi-lang-go="`enablePrivateEnvironment`" pulumi-lang-python="`enable_private_environment`" pulumi-lang-yaml="`enablePrivateEnvironment`" pulumi-lang-java="`enablePrivateEnvironment`">`enable_private_environment`</span> -
(Optional, Cloud Composer 3 only)
If true, a private Composer environment will be created.
* <span pulumi-lang-nodejs="`enablePrivateBuildsOnly`" pulumi-lang-dotnet="`EnablePrivateBuildsOnly`" pulumi-lang-go="`enablePrivateBuildsOnly`" pulumi-lang-python="`enable_private_builds_only`" pulumi-lang-yaml="`enablePrivateBuildsOnly`" pulumi-lang-java="`enablePrivateBuildsOnly`">`enable_private_builds_only`</span> -
(Optional, Cloud Composer 3 only)
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.
* <span pulumi-lang-nodejs="`encryptionConfig`" pulumi-lang-dotnet="`EncryptionConfig`" pulumi-lang-go="`encryptionConfig`" pulumi-lang-python="`encryption_config`" pulumi-lang-yaml="`encryptionConfig`" pulumi-lang-java="`encryptionConfig`">`encryption_config`</span> -
(Optional)
The encryption options for the Cloud Composer environment and its
dependencies.
* <span pulumi-lang-nodejs="`maintenanceWindow`" pulumi-lang-dotnet="`MaintenanceWindow`" pulumi-lang-go="`maintenanceWindow`" pulumi-lang-python="`maintenance_window`" pulumi-lang-yaml="`maintenanceWindow`" pulumi-lang-java="`maintenanceWindow`">`maintenance_window`</span> -
(Optional)
The configuration settings for Cloud Composer maintenance windows.
* <span pulumi-lang-nodejs="`workloadsConfig`" pulumi-lang-dotnet="`WorkloadsConfig`" pulumi-lang-go="`workloadsConfig`" pulumi-lang-python="`workloads_config`" pulumi-lang-yaml="`workloadsConfig`" pulumi-lang-java="`workloadsConfig`">`workloads_config`</span> -
(Optional)
The Kubernetes workloads configuration for GKE cluster associated with the
Cloud Composer environment.
* <span pulumi-lang-nodejs="`environmentSize`" pulumi-lang-dotnet="`EnvironmentSize`" pulumi-lang-go="`environmentSize`" pulumi-lang-python="`environment_size`" pulumi-lang-yaml="`environmentSize`" pulumi-lang-java="`environmentSize`">`environment_size`</span> -
(Optional)
The environment size controls the performance parameters of the managed
Cloud Composer infrastructure that includes the Airflow database. Values for
environment size are `ENVIRONMENT_SIZE_SMALL`, `ENVIRONMENT_SIZE_MEDIUM`,
and `ENVIRONMENT_SIZE_LARGE`.
* <span pulumi-lang-nodejs="`dataRetentionConfig`" pulumi-lang-dotnet="`DataRetentionConfig`" pulumi-lang-go="`dataRetentionConfig`" pulumi-lang-python="`data_retention_config`" pulumi-lang-yaml="`dataRetentionConfig`" pulumi-lang-java="`dataRetentionConfig`">`data_retention_config`</span> -
(Optional)
Configuration setting for Airflow database retention mechanism. Structure is
documented below.
<a name=<span pulumi-lang-nodejs=""nestedDataRetentionConfigC3"" pulumi-lang-dotnet=""NestedDataRetentionConfigC3"" pulumi-lang-go=""nestedDataRetentionConfigC3"" pulumi-lang-python=""nested_data_retention_config_c3"" pulumi-lang-yaml=""nestedDataRetentionConfigC3"" pulumi-lang-java=""nestedDataRetentionConfigC3"">"nested_data_retention_config_c3"</span>></a>The <span pulumi-lang-nodejs="`dataRetentionConfig`" pulumi-lang-dotnet="`DataRetentionConfig`" pulumi-lang-go="`dataRetentionConfig`" pulumi-lang-python="`data_retention_config`" pulumi-lang-yaml="`dataRetentionConfig`" pulumi-lang-java="`dataRetentionConfig`">`data_retention_config`</span> block supports:
* <span pulumi-lang-nodejs="`airflowMetadataRetentionConfig`" pulumi-lang-dotnet="`AirflowMetadataRetentionConfig`" pulumi-lang-go="`airflowMetadataRetentionConfig`" pulumi-lang-python="`airflow_metadata_retention_config`" pulumi-lang-yaml="`airflowMetadataRetentionConfig`" pulumi-lang-java="`airflowMetadataRetentionConfig`">`airflow_metadata_retention_config`</span> -
(Optional)
The retention policy for airflow metadata database. Structure is
documented below.
<a name=<span pulumi-lang-nodejs=""nestedAirflowMetadataRetentionConfigC3"" pulumi-lang-dotnet=""NestedAirflowMetadataRetentionConfigC3"" pulumi-lang-go=""nestedAirflowMetadataRetentionConfigC3"" pulumi-lang-python=""nested_airflow_metadata_retention_config_c3"" pulumi-lang-yaml=""nestedAirflowMetadataRetentionConfigC3"" pulumi-lang-java=""nestedAirflowMetadataRetentionConfigC3"">"nested_airflow_metadata_retention_config_c3"</span>></a>The <span pulumi-lang-nodejs="`airflowMetadataRetentionConfig`" pulumi-lang-dotnet="`AirflowMetadataRetentionConfig`" pulumi-lang-go="`airflowMetadataRetentionConfig`" pulumi-lang-python="`airflow_metadata_retention_config`" pulumi-lang-yaml="`airflowMetadataRetentionConfig`" pulumi-lang-java="`airflowMetadataRetentionConfig`">`airflow_metadata_retention_config`</span> block supports:
* <span pulumi-lang-nodejs="`retentionMode`" pulumi-lang-dotnet="`RetentionMode`" pulumi-lang-go="`retentionMode`" pulumi-lang-python="`retention_mode`" pulumi-lang-yaml="`retentionMode`" pulumi-lang-java="`retentionMode`">`retention_mode`</span> -
(Optional)
Retention can be either enabled or disabled. Values for<span pulumi-lang-nodejs=" retentionMode " pulumi-lang-dotnet=" RetentionMode " pulumi-lang-go=" retentionMode " pulumi-lang-python=" retention_mode " pulumi-lang-yaml=" retentionMode " pulumi-lang-java=" retentionMode "> retention_mode </span>are
`RETENTION_MODE_ENABLED` to enable retention and `RETENTION_MODE_DISABLED`
to disable retention.
* <span pulumi-lang-nodejs="`retentionDays`" pulumi-lang-dotnet="`RetentionDays`" pulumi-lang-go="`retentionDays`" pulumi-lang-python="`retention_days`" pulumi-lang-yaml="`retentionDays`" pulumi-lang-java="`retentionDays`">`retention_days`</span> -
(Optional)
How many days data should be retained for.
<a name=<span pulumi-lang-nodejs=""nestedStorageConfigC3"" pulumi-lang-dotnet=""NestedStorageConfigC3"" pulumi-lang-go=""nestedStorageConfigC3"" pulumi-lang-python=""nested_storage_config_c3"" pulumi-lang-yaml=""nestedStorageConfigC3"" pulumi-lang-java=""nestedStorageConfigC3"">"nested_storage_config_c3"</span>></a>The <span pulumi-lang-nodejs="`storageConfig`" pulumi-lang-dotnet="`StorageConfig`" pulumi-lang-go="`storageConfig`" pulumi-lang-python="`storage_config`" pulumi-lang-yaml="`storageConfig`" pulumi-lang-java="`storageConfig`">`storage_config`</span> block supports:
* <span pulumi-lang-nodejs="`bucket`" pulumi-lang-dotnet="`Bucket`" pulumi-lang-go="`bucket`" pulumi-lang-python="`bucket`" pulumi-lang-yaml="`bucket`" pulumi-lang-java="`bucket`">`bucket`</span> -
(Required)
Name of an existing Cloud Storage bucket to be used by the environment.
<a name=<span pulumi-lang-nodejs=""nestedNodeConfigC3"" pulumi-lang-dotnet=""NestedNodeConfigC3"" pulumi-lang-go=""nestedNodeConfigC3"" pulumi-lang-python=""nested_node_config_c3"" pulumi-lang-yaml=""nestedNodeConfigC3"" pulumi-lang-java=""nestedNodeConfigC3"">"nested_node_config_c3"</span>></a>The <span pulumi-lang-nodejs="`nodeConfig`" pulumi-lang-dotnet="`NodeConfig`" pulumi-lang-go="`nodeConfig`" pulumi-lang-python="`node_config`" pulumi-lang-yaml="`nodeConfig`" pulumi-lang-java="`nodeConfig`">`node_config`</span> block supports:
* <span pulumi-lang-nodejs="`network`" pulumi-lang-dotnet="`Network`" pulumi-lang-go="`network`" pulumi-lang-python="`network`" pulumi-lang-yaml="`network`" pulumi-lang-java="`network`">`network`</span> -
(Optional)
The Compute Engine network to be used for machine
communications, specified as a self-link, relative resource name
(for example "projects/{project}/global/networks/{network}"), by name.
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.
* <span pulumi-lang-nodejs="`subnetwork`" pulumi-lang-dotnet="`Subnetwork`" pulumi-lang-go="`subnetwork`" pulumi-lang-python="`subnetwork`" pulumi-lang-yaml="`subnetwork`" pulumi-lang-java="`subnetwork`">`subnetwork`</span> -
(Optional)
The Compute Engine subnetwork to be used for machine
communications, specified as a self-link, relative resource name (for example,
"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.
* <span pulumi-lang-nodejs="`composerNetworkAttachment`" pulumi-lang-dotnet="`ComposerNetworkAttachment`" pulumi-lang-go="`composerNetworkAttachment`" pulumi-lang-python="`composer_network_attachment`" pulumi-lang-yaml="`composerNetworkAttachment`" pulumi-lang-java="`composerNetworkAttachment`">`composer_network_attachment`</span> -
(Optional, Cloud Composer 3 only)
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.
* <span pulumi-lang-nodejs="`serviceAccount`" pulumi-lang-dotnet="`ServiceAccount`" pulumi-lang-go="`serviceAccount`" pulumi-lang-python="`service_account`" pulumi-lang-yaml="`serviceAccount`" pulumi-lang-java="`serviceAccount`">`service_account`</span> -
(Optional)
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.
This field is required for newly created environments.
* <span pulumi-lang-nodejs="`tags`" pulumi-lang-dotnet="`Tags`" pulumi-lang-go="`tags`" pulumi-lang-python="`tags`" pulumi-lang-yaml="`tags`" pulumi-lang-java="`tags`">`tags`</span> -
(Optional)
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.
* <span pulumi-lang-nodejs="`composerInternalIpv4CidrBlock`" pulumi-lang-dotnet="`ComposerInternalIpv4CidrBlock`" pulumi-lang-go="`composerInternalIpv4CidrBlock`" pulumi-lang-python="`composer_internal_ipv4_cidr_block`" pulumi-lang-yaml="`composerInternalIpv4CidrBlock`" pulumi-lang-java="`composerInternalIpv4CidrBlock`">`composer_internal_ipv4_cidr_block`</span> -
(Optional, Cloud Composer 3 only)
/20 IPv4 cidr range that will be used by Composer internal components.
Cannot be updated.
<a name=<span pulumi-lang-nodejs=""nestedSoftwareConfigC3"" pulumi-lang-dotnet=""NestedSoftwareConfigC3"" pulumi-lang-go=""nestedSoftwareConfigC3"" pulumi-lang-python=""nested_software_config_c3"" pulumi-lang-yaml=""nestedSoftwareConfigC3"" pulumi-lang-java=""nestedSoftwareConfigC3"">"nested_software_config_c3"</span>></a>The <span pulumi-lang-nodejs="`softwareConfig`" pulumi-lang-dotnet="`SoftwareConfig`" pulumi-lang-go="`softwareConfig`" pulumi-lang-python="`software_config`" pulumi-lang-yaml="`softwareConfig`" pulumi-lang-java="`softwareConfig`">`software_config`</span> block supports:
* <span pulumi-lang-nodejs="`airflowConfigOverrides`" pulumi-lang-dotnet="`AirflowConfigOverrides`" pulumi-lang-go="`airflowConfigOverrides`" pulumi-lang-python="`airflow_config_overrides`" pulumi-lang-yaml="`airflowConfigOverrides`" pulumi-lang-java="`airflowConfigOverrides`">`airflow_config_overrides`</span> -
(Optional) 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](https://cloud.google.com/composer/docs/concepts/airflow-configurations#airflow_configuration_blacklists),
and cannot be overridden.
* <span pulumi-lang-nodejs="`pypiPackages`" pulumi-lang-dotnet="`PypiPackages`" pulumi-lang-go="`pypiPackages`" pulumi-lang-python="`pypi_packages`" pulumi-lang-yaml="`pypiPackages`" pulumi-lang-java="`pypiPackages`">`pypi_packages`</span> -
(Optional)
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.
* <span pulumi-lang-nodejs="`envVariables`" pulumi-lang-dotnet="`EnvVariables`" pulumi-lang-go="`envVariables`" pulumi-lang-python="`env_variables`" pulumi-lang-yaml="`envVariables`" pulumi-lang-java="`envVariables`">`env_variables`</span> -
(Optional)
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
* <span pulumi-lang-nodejs="`imageVersion`" pulumi-lang-dotnet="`ImageVersion`" pulumi-lang-go="`imageVersion`" pulumi-lang-python="`image_version`" pulumi-lang-yaml="`imageVersion`" pulumi-lang-java="`imageVersion`">`image_version`</span> -
(Required) If omitted, the default is the latest version of Composer 2.
In Cloud Composer 3, you can only specify 3 in the Cloud Composer portion of the image version. Example: composer-3-airflow-x.y.z-build.t.
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, major.minor or major.minor.patch versions specified.
Like in Composer 1 and 2, a given Airflow version is released multiple times in Composer, with different patches
and versions of dependencies. To distinguish between these versions in Composer 3, you can optionally specify a
build number to pin to a specific Airflow release.
Example: composer-3-airflow-2.6.3-build.4.
The image version in Composer 3 must match the regular expression:
`composer-(([0-9]+)(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-(([0-9]+)((\.[0-9]+)(\.[0-9]+)?)?(-build\.[0-9]+)?)`
Example: composer-3-airflow-2.6.3-build.4
**Important**: In-place upgrade in Composer 3 is only available between minor or patch versions of Apache Airflow.
You can also upgrade to a different Airflow build within the same version by specifying the build number.
For example, you can upgrade your environment from composer-3-airflow-2.6.x to composer-3-airflow-2.9.x,
or from composer-3-airflow-2.9.3-build.4 to composer-3-airflow-2.9.3-build.5.
* <span pulumi-lang-nodejs="`cloudDataLineageIntegration`" pulumi-lang-dotnet="`CloudDataLineageIntegration`" pulumi-lang-go="`cloudDataLineageIntegration`" pulumi-lang-python="`cloud_data_lineage_integration`" pulumi-lang-yaml="`cloudDataLineageIntegration`" pulumi-lang-java="`cloudDataLineageIntegration`">`cloud_data_lineage_integration`</span> -
(Optional, Cloud Composer environments in versions composer-2.1.2-airflow-*.*.* and later)
The configuration for Cloud Data Lineage integration. Structure is
documented below.
* <span pulumi-lang-nodejs="`webServerPluginsMode`" pulumi-lang-dotnet="`WebServerPluginsMode`" pulumi-lang-go="`webServerPluginsMode`" pulumi-lang-python="`web_server_plugins_mode`" pulumi-lang-yaml="`webServerPluginsMode`" pulumi-lang-java="`webServerPluginsMode`">`web_server_plugins_mode`</span> -
(Optional, Cloud Composer 3 only)
Web server plugins configuration. Can be either 'ENABLED' or 'DISABLED'. Defaults to 'ENABLED'.
<a name=<span pulumi-lang-nodejs=""nestedCloudDataLineageIntegrationC3"" pulumi-lang-dotnet=""NestedCloudDataLineageIntegrationC3"" pulumi-lang-go=""nestedCloudDataLineageIntegrationC3"" pulumi-lang-python=""nested_cloud_data_lineage_integration_c3"" pulumi-lang-yaml=""nestedCloudDataLineageIntegrationC3"" pulumi-lang-java=""nestedCloudDataLineageIntegrationC3"">"nested_cloud_data_lineage_integration_c3"</span>></a>The <span pulumi-lang-nodejs="`cloudDataLineageIntegration`" pulumi-lang-dotnet="`CloudDataLineageIntegration`" pulumi-lang-go="`cloudDataLineageIntegration`" pulumi-lang-python="`cloud_data_lineage_integration`" pulumi-lang-yaml="`cloudDataLineageIntegration`" pulumi-lang-java="`cloudDataLineageIntegration`">`cloud_data_lineage_integration`</span> block supports:
* <span pulumi-lang-nodejs="`enabled`" pulumi-lang-dotnet="`Enabled`" pulumi-lang-go="`enabled`" pulumi-lang-python="`enabled`" pulumi-lang-yaml="`enabled`" pulumi-lang-java="`enabled`">`enabled`</span> -
(Required)
Whether or not Cloud Data Lineage integration is enabled.
<a name=<span pulumi-lang-nodejs=""nestedEncryptionConfigComp2"" pulumi-lang-dotnet=""NestedEncryptionConfigComp2"" pulumi-lang-go=""nestedEncryptionConfigComp2"" pulumi-lang-python=""nested_encryption_config_comp_2"" pulumi-lang-yaml=""nestedEncryptionConfigComp2"" pulumi-lang-java=""nestedEncryptionConfigComp2"">"nested_encryption_config_comp_2"</span>></a>The <span pulumi-lang-nodejs="`encryptionConfig`" pulumi-lang-dotnet="`EncryptionConfig`" pulumi-lang-go="`encryptionConfig`" pulumi-lang-python="`encryption_config`" pulumi-lang-yaml="`encryptionConfig`" pulumi-lang-java="`encryptionConfig`">`encryption_config`</span> block supports:
* <span pulumi-lang-nodejs="`kmsKeyName`" pulumi-lang-dotnet="`KmsKeyName`" pulumi-lang-go="`kmsKeyName`" pulumi-lang-python="`kms_key_name`" pulumi-lang-yaml="`kmsKeyName`" pulumi-lang-java="`kmsKeyName`">`kms_key_name`</span> -
(Required)
Customer-managed Encryption Key available through Google's Key Management Service. It must
be the fully qualified resource name,
i.e. projects/project-id/locations/location/keyRings/keyring/cryptoKeys/key. Cannot be updated.
<a name=<span pulumi-lang-nodejs=""nestedMaintenanceWindowComp2"" pulumi-lang-dotnet=""NestedMaintenanceWindowComp2"" pulumi-lang-go=""nestedMaintenanceWindowComp2"" pulumi-lang-python=""nested_maintenance_window_comp_2"" pulumi-lang-yaml=""nestedMaintenanceWindowComp2"" pulumi-lang-java=""nestedMaintenanceWindowComp2"">"nested_maintenance_window_comp_2"</span>></a>The <span pulumi-lang-nodejs="`maintenanceWindow`" pulumi-lang-dotnet="`MaintenanceWindow`" pulumi-lang-go="`maintenanceWindow`" pulumi-lang-python="`maintenance_window`" pulumi-lang-yaml="`maintenanceWindow`" pulumi-lang-java="`maintenanceWindow`">`maintenance_window`</span> block supports:
* <span pulumi-lang-nodejs="`startTime`" pulumi-lang-dotnet="`StartTime`" pulumi-lang-go="`startTime`" pulumi-lang-python="`start_time`" pulumi-lang-yaml="`startTime`" pulumi-lang-java="`startTime`">`start_time`</span> -
(Required)
Start time of the first recurrence of the maintenance window.
* <span pulumi-lang-nodejs="`endTime`" pulumi-lang-dotnet="`EndTime`" pulumi-lang-go="`endTime`" pulumi-lang-python="`end_time`" pulumi-lang-yaml="`endTime`" pulumi-lang-java="`endTime`">`end_time`</span> -
(Required)
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'.
* <span pulumi-lang-nodejs="`recurrence`" pulumi-lang-dotnet="`Recurrence`" pulumi-lang-go="`recurrence`" pulumi-lang-python="`recurrence`" pulumi-lang-yaml="`recurrence`" pulumi-lang-java="`recurrence`">`recurrence`</span> -
(Required)
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'.
The <span pulumi-lang-nodejs="`workloadsConfig`" pulumi-lang-dotnet="`WorkloadsConfig`" pulumi-lang-go="`workloadsConfig`" pulumi-lang-python="`workloads_config`" pulumi-lang-yaml="`workloadsConfig`" pulumi-lang-java="`workloadsConfig`">`workloads_config`</span> block supports:
* <span pulumi-lang-nodejs="`scheduler`" pulumi-lang-dotnet="`Scheduler`" pulumi-lang-go="`scheduler`" pulumi-lang-python="`scheduler`" pulumi-lang-yaml="`scheduler`" pulumi-lang-java="`scheduler`">`scheduler`</span> -
(Optional)
Configuration for resources used by Airflow scheduler.
* <span pulumi-lang-nodejs="`triggerer`" pulumi-lang-dotnet="`Triggerer`" pulumi-lang-go="`triggerer`" pulumi-lang-python="`triggerer`" pulumi-lang-yaml="`triggerer`" pulumi-lang-java="`triggerer`">`triggerer`</span> -
(Optional)
Configuration for resources used by Airflow triggerer.
* <span pulumi-lang-nodejs="`webServer`" pulumi-lang-dotnet="`WebServer`" pulumi-lang-go="`webServer`" pulumi-lang-python="`web_server`" pulumi-lang-yaml="`webServer`" pulumi-lang-java="`webServer`">`web_server`</span> -
(Optional)
Configuration for resources used by Airflow web server.
* <span pulumi-lang-nodejs="`worker`" pulumi-lang-dotnet="`Worker`" pulumi-lang-go="`worker`" pulumi-lang-python="`worker`" pulumi-lang-yaml="`worker`" pulumi-lang-java="`worker`">`worker`</span> -
(Optional)
Configuration for resources used by Airflow workers.
* <span pulumi-lang-nodejs="`dagProcessor`" pulumi-lang-dotnet="`DagProcessor`" pulumi-lang-go="`dagProcessor`" pulumi-lang-python="`dag_processor`" pulumi-lang-yaml="`dagProcessor`" pulumi-lang-java="`dagProcessor`">`dag_processor`</span> -
(Optional, Cloud Composer 3 only)
Configuration for resources used by DAG processor.
The <span pulumi-lang-nodejs="`scheduler`" pulumi-lang-dotnet="`Scheduler`" pulumi-lang-go="`scheduler`" pulumi-lang-python="`scheduler`" pulumi-lang-yaml="`scheduler`" pulumi-lang-java="`scheduler`">`scheduler`</span> block supports:
* <span pulumi-lang-nodejs="`cpu`" pulumi-lang-dotnet="`Cpu`" pulumi-lang-go="`cpu`" pulumi-lang-python="`cpu`" pulumi-lang-yaml="`cpu`" pulumi-lang-java="`cpu`">`cpu`</span> -
(Optional)
The number of CPUs for a single Airflow scheduler.
* <span pulumi-lang-nodejs="`memoryGb`" pulumi-lang-dotnet="`MemoryGb`" pulumi-lang-go="`memoryGb`" pulumi-lang-python="`memory_gb`" pulumi-lang-yaml="`memoryGb`" pulumi-lang-java="`memoryGb`">`memory_gb`</span> -
(Optional)
The amount of memory (GB) for a single Airflow scheduler.
* <span pulumi-lang-nodejs="`storageGb`" pulumi-lang-dotnet="`StorageGb`" pulumi-lang-go="`storageGb`" pulumi-lang-python="`storage_gb`" pulumi-lang-yaml="`storageGb`" pulumi-lang-java="`storageGb`">`storage_gb`</span> -
(Optional)
The amount of storage (GB) for a single Airflow scheduler.
* <span pulumi-lang-nodejs="`count`" pulumi-lang-dotnet="`Count`" pulumi-lang-go="`count`" pulumi-lang-python="`count`" pulumi-lang-yaml="`count`" pulumi-lang-java="`count`">`count`</span> -
(Optional)
The number of schedulers.
The <span pulumi-lang-nodejs="`triggerer`" pulumi-lang-dotnet="`Triggerer`" pulumi-lang-go="`triggerer`" pulumi-lang-python="`triggerer`" pulumi-lang-yaml="`triggerer`" pulumi-lang-java="`triggerer`">`triggerer`</span> block supports:
* <span pulumi-lang-nodejs="`cpu`" pulumi-lang-dotnet="`Cpu`" pulumi-lang-go="`cpu`" pulumi-lang-python="`cpu`" pulumi-lang-yaml="`cpu`" pulumi-lang-java="`cpu`">`cpu`</span> -
(Required)
The number of CPUs for a single Airflow triggerer.
* <span pulumi-lang-nodejs="`memoryGb`" pulumi-lang-dotnet="`MemoryGb`" pulumi-lang-go="`memoryGb`" pulumi-lang-python="`memory_gb`" pulumi-lang-yaml="`memoryGb`" pulumi-lang-java="`memoryGb`">`memory_gb`</span> -
(Required)
The amount of memory (GB) for a single Airflow triggerer.
* <span pulumi-lang-nodejs="`count`" pulumi-lang-dotnet="`Count`" pulumi-lang-go="`count`" pulumi-lang-python="`count`" pulumi-lang-yaml="`count`" pulumi-lang-java="`count`">`count`</span> -
(Required)
The number of Airflow triggerers.
The <span pulumi-lang-nodejs="`webServer`" pulumi-lang-dotnet="`WebServer`" pulumi-lang-go="`webServer`" pulumi-lang-python="`web_server`" pulumi-lang-yaml="`webServer`" pulumi-lang-java="`webServer`">`web_server`</span> block supports:
* <span pulumi-lang-nodejs="`cpu`" pulumi-lang-dotnet="`Cpu`" pulumi-lang-go="`cpu`" pulumi-lang-python="`cpu`" pulumi-lang-yaml="`cpu`" pulumi-lang-java="`cpu`">`cpu`</span> -
(Optional)
The number of CPUs for the Airflow web server.
* <span pulumi-lang-nodejs="`memoryGb`" pulumi-lang-dotnet="`MemoryGb`" pulumi-lang-go="`memoryGb`" pulumi-lang-python="`memory_gb`" pulumi-lang-yaml="`memoryGb`" pulumi-lang-java="`memoryGb`">`memory_gb`</span> -
(Optional)
The amount of memory (GB) for the Airflow web server.
* <span pulumi-lang-nodejs="`storageGb`" pulumi-lang-dotnet="`StorageGb`" pulumi-lang-go="`storageGb`" pulumi-lang-python="`storage_gb`" pulumi-lang-yaml="`storageGb`" pulumi-lang-java="`storageGb`">`storage_gb`</span> -
(Optional)
The amount of storage (GB) for the Airflow web server.
The <span pulumi-lang-nodejs="`worker`" pulumi-lang-dotnet="`Worker`" pulumi-lang-go="`worker`" pulumi-lang-python="`worker`" pulumi-lang-yaml="`worker`" pulumi-lang-java="`worker`">`worker`</span> block supports:
* <span pulumi-lang-nodejs="`cpu`" pulumi-lang-dotnet="`Cpu`" pulumi-lang-go="`cpu`" pulumi-lang-python="`cpu`" pulumi-lang-yaml="`cpu`" pulumi-lang-java="`cpu`">`cpu`</span> -
(Optional)
The number of CPUs for a single Airflow worker.
* <span pulumi-lang-nodejs="`memoryGb`" pulumi-lang-dotnet="`MemoryGb`" pulumi-lang-go="`memoryGb`" pulumi-lang-python="`memory_gb`" pulumi-lang-yaml="`memoryGb`" pulumi-lang-java="`memoryGb`">`memory_gb`</span> -
(Optional)
The amount of memory (GB) for a single Airflow worker.
* <span pulumi-lang-nodejs="`storageGb`" pulumi-lang-dotnet="`StorageGb`" pulumi-lang-go="`storageGb`" pulumi-lang-python="`storage_gb`" pulumi-lang-yaml="`storageGb`" pulumi-lang-java="`storageGb`">`storage_gb`</span>
(Optional)
The amount of storage (GB) for a single Airflow worker.
* <span pulumi-lang-nodejs="`minCount`" pulumi-lang-dotnet="`MinCount`" pulumi-lang-go="`minCount`" pulumi-lang-python="`min_count`" pulumi-lang-yaml="`minCount`" pulumi-lang-java="`minCount`">`min_count`</span> -
(Optional)
The minimum number of Airflow workers that the environment can run. The number of workers in the
environment does not go below this number, even if a lower number of workers can handle the load.
* <span pulumi-lang-nodejs="`maxCount`" pulumi-lang-dotnet="`MaxCount`" pulumi-lang-go="`maxCount`" pulumi-lang-python="`max_count`" pulumi-lang-yaml="`maxCount`" pulumi-lang-java="`maxCount`">`max_count`</span> -
(Optional)
The maximum number of Airflow workers that the environment can run. The number of workers in the
environment does not go above this number, even if a higher number of workers is required to
handle the load.
The <span pulumi-lang-nodejs="`dagProcessor`" pulumi-lang-dotnet="`DagProcessor`" pulumi-lang-go="`dagProcessor`" pulumi-lang-python="`dag_processor`" pulumi-lang-yaml="`dagProcessor`" pulumi-lang-java="`dagProcessor`">`dag_processor`</span> block supports:
* <span pulumi-lang-nodejs="`cpu`" pulumi-lang-dotnet="`Cpu`" pulumi-lang-go="`cpu`" pulumi-lang-python="`cpu`" pulumi-lang-yaml="`cpu`" pulumi-lang-java="`cpu`">`cpu`</span> -
(Optional)
CPU request and limit for DAG processor.
* <span pulumi-lang-nodejs="`memoryGb`" pulumi-lang-dotnet="`MemoryGb`" pulumi-lang-go="`memoryGb`" pulumi-lang-python="`memory_gb`" pulumi-lang-yaml="`memoryGb`" pulumi-lang-java="`memoryGb`">`memory_gb`</span> -
(Optional)
Memory (GB) request and limit for DAG processor.
* <span pulumi-lang-nodejs="`storageGb`" pulumi-lang-dotnet="`StorageGb`" pulumi-lang-go="`storageGb`" pulumi-lang-python="`storage_gb`" pulumi-lang-yaml="`storageGb`" pulumi-lang-java="`storageGb`">`storage_gb`</span>
(Optional)
Storage (GB) request and limit for DAG processor.
* <span pulumi-lang-nodejs="`count`" pulumi-lang-dotnet="`Count`" pulumi-lang-go="`count`" pulumi-lang-python="`count`" pulumi-lang-yaml="`count`" pulumi-lang-java="`count`">`count`</span> -
(Required)
The number of Airflow DAG processors.
## Create Environment Resource {#create}
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see [Resources](/docs/concepts/resources/).
### Constructor syntax
<div>
<pulumi-chooser type="language" options="csharp,go,typescript,python,yaml,java"></pulumi-chooser>
</div>
<div>
<pulumi-choosable type="language" values="javascript,typescript">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-typescript" data-lang="typescript"><span class="k">new </span><span class="nx">Environment</span><span class="p">(</span><span class="nx">name</span><span class="p">:</span> <span class="nx">string</span><span class="p">,</span> <span class="nx">args</span><span class="p">?:</span> <span class="nx"><a href="#inputs">EnvironmentArgs</a></span><span class="p">,</span> <span class="nx">opts</span><span class="p">?:</span> <span class="nx"><a href="/docs/reference/pkg/nodejs/pulumi/pulumi/#CustomResourceOptions">CustomResourceOptions</a></span><span class="p">);</span></code></pre></div>
</div></pulumi-choosable>
</div>
<div>
<pulumi-choosable type="language" values="python">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-python" data-lang="python"><span class=nd>@overload</span>
<span class="k">def </span><span class="nx">Environment</span><span class="p">(</span><span class="nx">resource_name</span><span class="p">:</span> <span class="nx">str</span><span class="p">,</span>
<span class="nx">args</span><span class="p">:</span> <span class="nx"><a href="#inputs">Optional[EnvironmentArgs]</a></span> = None<span class="p">,</span>
<span class="nx">opts</span><span class="p">:</span> <span class="nx"><a href="/docs/reference/pkg/python/pulumi/#pulumi.ResourceOptions">Optional[ResourceOptions]</a></span> = None<span class="p">)</span>
<span></span>
<span class=nd>@overload</span>
<span class="k">def </span><span class="nx">Environment</span><span class="p">(</span><span class="nx">resource_name</span><span class="p">:</span> <span class="nx">str</span><span class="p">,</span>
<span class="nx">opts</span><span class="p">:</span> <span class="nx"><a href="/docs/reference/pkg/python/pulumi/#pulumi.ResourceOptions">Optional[ResourceOptions]</a></span> = None<span class="p">,</span>
<span class="nx">config</span><span class="p">:</span> <span class="nx">Optional[EnvironmentConfigArgs]</span> = None<span class="p">,</span>
<span class="nx">labels</span><span class="p">:</span> <span class="nx">Optional[Mapping[str, str]]</span> = None<span class="p">,</span>
<span class="nx">name</span><span class="p">:</span> <span class="nx">Optional[str]</span> = None<span class="p">,</span>
<span class="nx">project</span><span class="p">:</span> <span class="nx">Optional[str]</span> = None<span class="p">,</span>
<span class="nx">region</span><span class="p">:</span> <span class="nx">Optional[str]</span> = None<span class="p">,</span>
<span class="nx">storage_config</span><span class="p">:</span> <span class="nx">Optional[EnvironmentStorageConfigArgs]</span> = None<span class="p">)</span></code></pre></div>
</div></pulumi-choosable>
</div>
<div>
<pulumi-choosable type="language" values="go">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-go" data-lang="go"><span class="k">func </span><span class="nx">NewEnvironment</span><span class="p">(</span><span class="nx">ctx</span><span class="p"> *</span><span class="nx"><a href="https://pkg.go.dev/github.com/pulumi/pulumi/sdk/v3/go/pulumi?tab=doc#Context">Context</a></span><span class="p">,</span> <span class="nx">name</span><span class="p"> </span><span class="nx">string</span><span class="p">,</span> <span class="nx">args</span><span class="p"> *</span><span class="nx"><a href="#inputs">EnvironmentArgs</a></span><span class="p">,</span> <span class="nx">opts</span><span class="p"> ...</span><span class="nx"><a href="https://pkg.go.dev/github.com/pulumi/pulumi/sdk/v3/go/pulumi?tab=doc#ResourceOption">ResourceOption</a></span><span class="p">) (*<span class="nx">Environment</span>, error)</span></code></pre></div>
</div></pulumi-choosable>
</div>
<div>
<pulumi-choosable type="language" values="csharp">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-csharp" data-lang="csharp"><span class="k">public </span><span class="nx">Environment</span><span class="p">(</span><span class="nx">string</span><span class="p"> </span><span class="nx">name<span class="p">,</span> <span class="nx"><a href="#inputs">EnvironmentArgs</a></span><span class="p">? </span><span class="nx">args = null<span class="p">,</span> <span class="nx"><a href="/docs/reference/pkg/dotnet/Pulumi/Pulumi.CustomResourceOptions.html">CustomResourceOptions</a></span><span class="p">? </span><span class="nx">opts = null<span class="p">)</span></code></pre></div>
</div></pulumi-choosable>
</div>
<div>
<pulumi-choosable type="language" values="java">
<div class="no-copy"><div class="highlight"><pre class="chroma">
<code class="language-java" data-lang="java"><span class="k">public </span><span class="nx">Environment</span><span class="p">(</span><span class="nx">String</span><span class="p"> </span><span class="nx">name<span class="p">,</span> <span class="nx"><a href="#inputs">EnvironmentArgs</a></span><span class="p"> </span><span class="nx">args<span class="p">)</span>
<span class="k">public </span><span class="nx">Environment</span><span class="p">(</span><span class="nx">String</span><span class="p"> </span><span class="nx">name<span class="p">,</span> <span class="nx"><a href="#inputs">EnvironmentArgs</a></span><span class="p"> </span><span class="nx">args<span class="p">,</span> <span class="nx">CustomResourceOptions</span><span class="p"> </span><span class="nx">options<span class="p">)</span>
</code></pre></div></div>
</pulumi-choosable>
</div>
<div>
<pulumi-choosable type="language" values="yaml">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-yaml" data-lang="yaml">type: <span class="nx">gcp:composer:Environment</span><span class="p"></span>
<span class="p">properties</span><span class="p">: </span><span class="c"># The arguments to resource properties.</span>
<span class="p"></span><span class="p">options</span><span class="p">: </span><span class="c"># Bag of options to control resource's behavior.</span>
<span class="p"></span>
</code></pre></div></div>
</pulumi-choosable>
</div>
#### Parameters
<div>
<pulumi-choosable type="language" values="javascript,typescript">
<dl class="resources-properties"><dt
class="property-required" title="Required">
<span>name</span>
<span class="property-indicator"></span>
<span class="property-type">string</span>
</dt>
<dd>The unique name of the resource.</dd><dt
class="property-optional" title="Optional">
<span>args</span>
<span class="property-indicator"></span>
<span class="property-type"><a href="#inputs">EnvironmentArgs</a></span>
</dt>
<dd>The arguments to resource properties.</dd><dt
class="property-optional" title="Optional">
<span>opts</span>
<span class="property-indicator"></span>
<span class="property-type"><a href="/docs/reference/pkg/nodejs/pulumi/pulumi/#CustomResourceOptions">CustomResourceOptions</a></span>
</dt>
<dd>Bag of options to control resource's behavior.</dd></dl>
</pulumi-choosable>
</div>
<div>
<pulumi-choosable type="language" values="python">
<dl class="resources-properties"><dt
class="property-required" title="Required">
<span>resource_name</span>
<span class="property-indicator"></span>
<span class="property-type">str</span>
</dt>
<dd>The unique name of the resource.</dd><dt
class="property-optional" title="Optional">
<span>args</span>
<span class="property-indicator"></span>
<span class="property-type"><a href="#inputs">EnvironmentArgs</a></span>
</dt>
<dd>The arguments to resource properties.</dd><dt
class="property-optional" title="Optional">
<span>opts</span>
<span class="property-indicator"></span>
<span class="property-type"><a href="/docs/reference/pkg/python/pulumi/#pulumi.ResourceOptions">ResourceOptions</a></span>
</dt>
<dd>Bag of options to control resource's behavior.</dd></dl>
</pulumi-choosable>
</div>
<div>
<pulumi-choosable type="language" values="go">
<dl class="resources-properties"><dt
class="property-optional" title="Optional">
<span>ctx</span>
<span class="property-indicator"></span>
<span class="property-type"><a href="https://pkg.go.dev/github.com/pulumi/pulumi/sdk/v3/go/pulumi?tab=doc#Context">Context</a></span>
</dt>
<dd>Context object for the current deployment.</dd><dt
class="property-required" title="Required">
<span>name</span>
<span class="property-indicator"></span>
<span class="property-type">string</span>
</dt>
<dd>The unique name of the resource.</dd><dt
class="property-optional" title="Optional">
<span>args</span>
<span class="property-indicator"></span>
<span class="property-type"><a href="#inputs">EnvironmentArgs</a></span>
</dt>
<dd>The arguments to resource properties.</dd><dt
class="property-optional" title="Optional">
<span>opts</span>
<span class="property-indicator"></span>
<span class="property-type"><a href="https://pkg.go.dev/github.com/pulumi/pulumi/sdk/v3/go/pulumi?tab=doc#ResourceOption">ResourceOption</a></span>
</dt>
<dd>Bag of options to control resource's behavior.</dd></dl>
</pulumi-choosable>
</div>
<div>
<pulumi-choosable type="language" values="csharp">
<dl class="resources-properties"><dt
class="property-required" title="Required">
<span>name</span>
<span class="property-indicator"></span>
<span class="property-type">string</span>
</dt>
<dd>The unique name of the resource.</dd><dt
class="property-optional" title="Optional">
<span>args</span>
<span class="property-indicator"></span>
<span class="property-type"><a href="#inputs">EnvironmentArgs</a></span>
</dt>
<dd>The arguments to resource properties.</dd><dt
class="property-optional" title="Optional">
<span>opts</span>
<span class="property-indicator"></span>
<span class="property-type"><a href="/docs/reference/pkg/dotnet/Pulumi/Pulumi.CustomResourceOptions.html">CustomResourceOptions</a></span>
</dt>
<dd>Bag of options to control resource's behavior.</dd></dl>
</pulumi-choosable>
</div>
<div>
<pulumi-choosable type="language" values="java">
<dl class="resources-properties"><dt
class="property-required" title="Required">
<span>name</span>
<span class="property-indicator"></span>
<span class="property-type">String</span>
</dt>
<dd>The unique name of the resource.</dd><dt
class="property-required" title="Required">
<span>args</span>
<span class="property-indicator"></span>
<span class="property-type"><a href="#inputs">EnvironmentArgs</a></span>
</dt>
<dd>The arguments to resource properties.</dd><dt
class="property-optional" title="Optional">
<span>options</span>
<span class="property-indicator"></span>
<span class="property-type">CustomResourceOptions</span>
</dt>
<dd>Bag of options to control resource's behavior.</dd></dl>
</pulumi-choosable>
</div>
### Constructor example
The following reference example uses placeholder values for all [input properties](#inputs).
<div>
<pulumi-chooser type="language" options="csharp,go,typescript,python,yaml,java"></pulumi-chooser>
</div>
<div>
<pulumi-choosable type="language" values="csharp">
```csharp
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 use_ip_aliases 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 cluster_secondary_range_name or cluster_ipv4_cidr_block but not both.
- Cluster
Secondary stringRange Name - The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either cluster_secondary_range_name or cluster_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when use_ip_aliases 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 use_ip_aliases 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 services_secondary_range_name or services_ipv4_cidr_block but not both.
- Services
Secondary stringRange Name - The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either services_secondary_range_name or services_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when use_ip_aliases 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 ip_allocation_policy 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 use_ip_aliases 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 cluster_secondary_range_name or cluster_ipv4_cidr_block but not both.
- Cluster
Secondary stringRange Name - The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either cluster_secondary_range_name or cluster_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when use_ip_aliases 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 use_ip_aliases 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 services_secondary_range_name or services_ipv4_cidr_block but not both.
- Services
Secondary stringRange Name - The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either services_secondary_range_name or services_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when use_ip_aliases 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 ip_allocation_policy 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 use_ip_aliases 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 cluster_secondary_range_name or cluster_ipv4_cidr_block but not both.
- cluster
Secondary StringRange Name - The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either cluster_secondary_range_name or cluster_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when use_ip_aliases 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 use_ip_aliases 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 services_secondary_range_name or services_ipv4_cidr_block but not both.
- services
Secondary StringRange Name - The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either services_secondary_range_name or services_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when use_ip_aliases 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 ip_allocation_policy 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 use_ip_aliases 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 cluster_secondary_range_name or cluster_ipv4_cidr_block but not both.
- cluster
Secondary stringRange Name - The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either cluster_secondary_range_name or cluster_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when use_ip_aliases 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 use_ip_aliases 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 services_secondary_range_name or services_ipv4_cidr_block but not both.
- services
Secondary stringRange Name - The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either services_secondary_range_name or services_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when use_ip_aliases 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 ip_allocation_policy 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 use_ip_aliases 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 cluster_secondary_range_name or cluster_ipv4_cidr_block but not both.
- cluster_
secondary_ strrange_ name - The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either cluster_secondary_range_name or cluster_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when use_ip_aliases 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 use_ip_aliases 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 services_secondary_range_name or services_ipv4_cidr_block but not both.
- services_
secondary_ strrange_ name - The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either services_secondary_range_name or services_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when use_ip_aliases 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 ip_allocation_policy 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 use_ip_aliases 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 cluster_secondary_range_name or cluster_ipv4_cidr_block but not both.
- cluster
Secondary StringRange Name - The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either cluster_secondary_range_name or cluster_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when use_ip_aliases 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 use_ip_aliases 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 services_secondary_range_name or services_ipv4_cidr_block but not both.
- services
Secondary StringRange Name - The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either services_secondary_range_name or services_ipv4_cidr_block but not both. For Cloud Composer environments in versions composer-1..-airflow-..*, this field is applicable only when use_ip_aliases 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 ip_allocation_policy 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 master_ipv4_cidr_block 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 master_ipv4_cidr_block 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 master_ipv4_cidr_block 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 master_ipv4_cidr_block 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 master_ipv4_cidr_block 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 master_ipv4_cidr_block 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.
