pub enum NetworkSettings {
UseDefault,
Create {
availability_zones: Option<i32>,
cidr: Option<String>,
},
ByoVpcAws {
private_subnet_ids: Vec<String>,
public_subnet_ids: Vec<String>,
security_group_ids: Vec<String>,
vpc_id: String,
},
ByoVpcGcp {
network_name: String,
region: String,
subnet_name: String,
},
ByoVnetAzure {
private_subnet_name: String,
public_subnet_name: String,
vnet_resource_id: String,
},
}Expand description
Network configuration for the stack.
Controls how VPC/VNet networking is provisioned. Users configure this in
StackSettings; the Network resource itself is auto-generated by preflights.
§Egress policy
Container cluster VMs are configured for egress based on the mode:
UseDefault→ VMs get ephemeral public IPs (no NAT is provisioned)Create→ VMs use private IPs; Alien provisions a NAT gateway for outbound accessByoVpc*/ByoVnet*→ no public IPs assigned; customer manages egress
For production workloads, use Create. For fast dev/test iteration, UseDefault is
sufficient. For environments with existing VPCs, use the appropriate ByoVpc* variant.
JSON schema
{
"description": "Network configuration for the stack.\n\nControls how VPC/VNet networking is provisioned. Users configure this in\n`StackSettings`; the Network resource itself is auto-generated by preflights.\n\n## Egress policy\n\nContainer cluster VMs are configured for egress based on the mode:\n\n- `UseDefault` → VMs get ephemeral public IPs (no NAT is provisioned)\n- `Create` → VMs use private IPs; Alien provisions a NAT gateway for outbound access\n- `ByoVpc*` / `ByoVnet*` → no public IPs assigned; customer manages egress\n\nFor production workloads, use `Create`. For fast dev/test iteration, `UseDefault` is\nsufficient. For environments with existing VPCs, use the appropriate `ByoVpc*` variant.",
"oneOf": [
{
"description": "Use the cloud provider's default VPC/network.\n\nDesigned for fast dev/test provisioning. No isolated VPC is created, so there\nis nothing to wait for or clean up. VMs receive ephemeral public IPs for internet\naccess — no NAT gateway is provisioned.\n\n- **AWS**: Discovers the account's default VPC. Subnets are public with auto-assigned IPs.\n- **GCP**: Discovers the project's `default` network and regional subnet. Instance\n templates include an `AccessConfig` to assign an ephemeral external IP.\n- **Azure**: Azure has no default VNet, so one is created along with a NAT Gateway.\n VMs stay private and use NAT for egress.\n\nNot recommended for production. Use `Create` instead.",
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"use-default"
]
}
}
},
{
"description": "Create a new isolated VPC/VNet with a managed NAT gateway.\n\nAll networking infrastructure is provisioned by Alien and cleaned up on delete.\nVMs use private IPs only; all outbound traffic routes through the NAT gateway.\n\nRecommended for production deployments.",
"type": "object",
"required": [
"type"
],
"properties": {
"availability_zones": {
"description": "Number of availability zones (default: 2).",
"type": "integer",
"format": "int32",
"minimum": 0.0
},
"cidr": {
"description": "VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\").",
"type": [
"string",
"null"
]
},
"type": {
"type": "string",
"enum": [
"create"
]
}
}
},
{
"description": "Use an existing VPC (AWS).\n\nAlien validates the references but creates no networking infrastructure.\nThe customer is responsible for routing and egress (NAT, proxy, VPN, etc.).",
"type": "object",
"required": [
"private_subnet_ids",
"public_subnet_ids",
"type",
"vpc_id"
],
"properties": {
"private_subnet_ids": {
"description": "IDs of private subnets",
"type": "array",
"items": {
"type": "string"
}
},
"public_subnet_ids": {
"description": "IDs of public subnets (required for public ingress)",
"type": "array",
"items": {
"type": "string"
}
},
"security_group_ids": {
"description": "Optional security group IDs to use",
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"type": "string",
"enum": [
"byo-vpc-aws"
]
},
"vpc_id": {
"description": "The ID of the existing VPC",
"type": "string"
}
}
},
{
"description": "Use an existing VPC (GCP).\n\nAlien validates the references but creates no networking infrastructure.\nThe customer is responsible for routing and egress (Cloud NAT, proxy, VPN, etc.).",
"type": "object",
"required": [
"network_name",
"region",
"subnet_name",
"type"
],
"properties": {
"network_name": {
"description": "The name of the existing VPC network",
"type": "string"
},
"region": {
"description": "The region of the subnet",
"type": "string"
},
"subnet_name": {
"description": "The name of the subnet to use",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"byo-vpc-gcp"
]
}
}
},
{
"description": "Use an existing VNet (Azure).\n\nAlien validates the references but creates no networking infrastructure.\nThe customer is responsible for routing and egress (NAT Gateway, proxy, VPN, etc.).",
"type": "object",
"required": [
"private_subnet_name",
"public_subnet_name",
"type",
"vnet_resource_id"
],
"properties": {
"private_subnet_name": {
"description": "Name of the private subnet within the VNet",
"type": "string"
},
"public_subnet_name": {
"description": "Name of the public subnet within the VNet",
"type": "string"
},
"type": {
"type": "string",
"enum": [
"byo-vnet-azure"
]
},
"vnet_resource_id": {
"description": "The full resource ID of the existing VNet",
"type": "string"
}
}
}
]
}Variants§
UseDefault
Create
Create a new isolated VPC/VNet with a managed NAT gateway.
All networking infrastructure is provisioned by Alien and cleaned up on delete. VMs use private IPs only; all outbound traffic routes through the NAT gateway.
Recommended for production deployments.
Fields
ByoVpcAws
Use an existing VPC (AWS).
Alien validates the references but creates no networking infrastructure. The customer is responsible for routing and egress (NAT, proxy, VPN, etc.).
Fields
ByoVpcGcp
Use an existing VPC (GCP).
Alien validates the references but creates no networking infrastructure. The customer is responsible for routing and egress (Cloud NAT, proxy, VPN, etc.).
Fields
ByoVnetAzure
Use an existing VNet (Azure).
Alien validates the references but creates no networking infrastructure. The customer is responsible for routing and egress (NAT Gateway, proxy, VPN, etc.).
Trait Implementations§
Source§impl Clone for NetworkSettings
impl Clone for NetworkSettings
Source§fn clone(&self) -> NetworkSettings
fn clone(&self) -> NetworkSettings
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more