pub enum NetworkSettings {
UseDefault,
Create {
cidr: Option<String>,
availability_zones: u8,
},
ByoVpcAws {
vpc_id: String,
public_subnet_ids: Vec<String>,
private_subnet_ids: Vec<String>,
security_group_ids: Vec<String>,
},
ByoVpcGcp {
network_name: String,
subnet_name: String,
region: String,
},
ByoVnetAzure {
vnet_resource_id: String,
public_subnet_name: String,
private_subnet_name: 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.
Variants§
UseDefault
Use the cloud provider’s default VPC/network.
Designed for fast dev/test provisioning. No isolated VPC is created, so there is nothing to wait for or clean up. VMs receive ephemeral public IPs for internet access — no NAT gateway is provisioned.
- AWS: Discovers the account’s default VPC. Subnets are public with auto-assigned IPs.
- GCP: Discovers the project’s
defaultnetwork and regional subnet. Instance templates include anAccessConfigto assign an ephemeral external IP. - Azure: Azure has no default VNet, so one is created along with a NAT Gateway. VMs stay private and use NAT for egress.
Not recommended for production. Use Create instead.
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 moreSource§impl Debug for NetworkSettings
impl Debug for NetworkSettings
Source§impl<'de> Deserialize<'de> for NetworkSettings
impl<'de> Deserialize<'de> for NetworkSettings
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for NetworkSettings
impl PartialEq for NetworkSettings
Source§impl Serialize for NetworkSettings
impl Serialize for NetworkSettings
impl Eq for NetworkSettings
impl StructuralPartialEq for NetworkSettings
Auto Trait Implementations§
impl Freeze for NetworkSettings
impl RefUnwindSafe for NetworkSettings
impl Send for NetworkSettings
impl Sync for NetworkSettings
impl Unpin for NetworkSettings
impl UnsafeUnpin for NetworkSettings
impl UnwindSafe for NetworkSettings
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.