Skip to main content

networking.appvia.io/v2beta1

Package v2beta1 contains API Schema definitions for the networking v2beta1 API group

Exported Resource Types

AssignableNetwork

AssignableNetwork is the definition for an assignable network range

FieldDescription

apiVersion
string

networking.appvia.io/v2beta1

kind
string

AssignableNetwork
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
AssignableNetworkSpec
provider

string

Providers the provider the range is assigned

stages

[]string

Stages is deprecated, please use stage instead

stage

string

Stage is the stage this network is assignable to.

networks
[]AssignableNetworkRange

Networks is a collection of network assignment for a particular provider

status
AssignableNetworkStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

ClusterNetwork

ClusterNetwork is the schema for ClusterNetwork

FieldDescription

apiVersion
string

networking.appvia.io/v2beta1

kind
string

ClusterNetwork
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
ClusterNetworkSpec
layout
ClusterNetworkLayout

Layout refers to the layout of the network. It controls whether the various parts - subnets, routes, etc. - are set up manually (i.e. specified in the spec) or automatically (i.e. generated by the provider).

cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef is a reference to the cloud access configuration that should be used to create the network.

ipv4
ClusterNetworkIPv4

IPv4 contains the IPv4 configuration associated with the network.

location

string

Location is the region the network should be created in. [AWS] Region [GCP] The Default location for subnets (as GCP actual networks are global) [Azure] Region Required if this is used for a ClusterNetwork, optional on a ClusterNetworkPlan

cloudResourceName

string

CloudResourceName is used to identify the network object in the cloud provider [AWS] Names are not supported, so is a “Name” tag on the VPC [GCP] Name of the Network [Azure] Name of the Virtual Network (VNet)

plan

string

Plan refers to a “flavour” of network that donates the policy. For example, when .Spec.Layout.Mode="auto" and this is set to “my-network”, a network values will be added automatically from the plan, with minimal input from the caller.

provider

string

Provider refers to the cloud provider.

providerDetails
ProviderDetails

ProviderDetails defines cloud-specific network options

private
ClusterNetworkPrivateOptions

Private are options related to private networking

routes
[]ClusterNetworkRoute

Routes is the list of routes within the network. Mode must be set to “manual” for this field to be valid. if manual, will be populated from the spec.IPv4.CIDRBlock’s

stage

string

Stage is the name of the stage for the network. Required when used in a cluster network, optional when used in a cluster network plan.

subnets
[]ClusterNetworkSubnet

Subnets is the list of subnets within the network. Mode must be set to “manual” for this field to be valid.

tags

map[string]string

Tags is a collection of tags to apply to the resources associated with the network, if applicable.

status
ClusterNetworkStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

aws
ClusterNetworkStatusAWS

AWS contains the AWS-specific state for the network

azure
ClusterNetworkStatusAzure

Azure contains the Azure-specific state for the network

gcp
ClusterNetworkStatusGCP

GCP contains the GCP-specific state for the network

ClusterNetworkPlan

ClusterNetworkPlan is the Schema for the cluster plans API

FieldDescription

apiVersion
string

networking.appvia.io/v2beta1

kind
string

ClusterNetworkPlan
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
ClusterNetworkPlanSpec
summary

string

Summary provides a short title summary for the network plan It should describe a network in terms that are meaningful for developers: e.g. highest availability network expensive but resilient

planProviderDetails
PlanProviderDetails

PlanProviderDetails defines the parameters for cloud specific options specifically for a plan

assignableNetworks

[]string

AssignableNetworks provides a list of AssignableNetworks. The plan will use these dynamic IP ranges when this is set. Do not specify any .template.ipv4.cidrBlocks[].cidr fields if this is specified. The size of the network(s) required are taken from .template.ipv4.cidrBlocks[].size.

template
ClusterNetworkSpec

Template are the key+value pairs describing a network configuration

status
ClusterNetworkPlanStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

exampleNetwork
ClusterNetworkDetail

ExampleNetwork describes a cluster network that will be created from this plan

capacity
ClusterNetworkCapacities

Capacity describes the capacity to build a network from this plan

clusters
[]ClusterNetworkPlanClusters

Clusters describes which clusters are currently using the plan

FirewallRules

FieldDescription

apiVersion
string

networking.appvia.io/v2beta1

kind
string

FirewallRules
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
FirewallSpec
networkRef
Ownership

NetworkRef is a reference to the network associated with the firewall.

rules
[]FirewallRule

Rules is a list of firewall rules.

status
FirewallStatus

Peering

Peering is tracking resource which is used to create a connection between the source network and an external network

FieldDescription

apiVersion
string

networking.appvia.io/v2beta1

kind
string

Peering
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
PeeringSpec
cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef provides an optional reference to a cloud access config which details the permission to carry out the tasks required to fulfil peering or gateway attachments

connection
PeeringRuleConnection

Connection provides the policy details around how the peering should be achieved

networkRef
Ownership

NetworkRef is the network which we are creating a connection from

provider

string

Provider refers to the cloud provider.

status
PeeringStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

peeringID

string

PeeringID is the cloud agnostic peering identifier

PeeringRule

PeeringRule providing a policy definition for peering

FieldDescription

apiVersion
string

networking.appvia.io/v2beta1

kind
string

PeeringRule
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
PeeringRuleSpec
cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef provides an optional reference to a cloudaccount which has the permission to carry out the tasks required to fulfil peering or gateway attachments

connection
PeeringRuleConnection

Connection provides the policy details around how the peering should be achieved

filters
PeeringRuleFilters

Filters provides the ability to apply a collection of filters to whom the peering policy should apply to

provider

string

Provider refers to the cloud provider.

status
PeeringRuleStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

connectionID

string

ConnectionID is the ID of the peering or gateway attachment which has been created

Internal Resource Types

AssignableNetworkRange

(Appears on: AssignableNetworkSpec)

AssignableNetworkRange defines a assignable network range

FieldDescription
range

string

Range is the CIDR range of the network

type
AssignableNetworkType

Type is the network type being defined - i.e. pods, clusters, services or node

AssignableNetworkSpec

(Appears on: AssignableNetwork)

AssignableNetworkSpec define the definitions for network ranges

FieldDescription
provider

string

Providers the provider the range is assigned

stages

[]string

Stages is deprecated, please use stage instead

stage

string

Stage is the stage this network is assignable to.

networks
[]AssignableNetworkRange

Networks is a collection of network assignment for a particular provider

AssignableNetworkStatus

(Appears on: AssignableNetwork)

AssignableNetworkStatus defines the observed state of status on a policy

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

AssignableNetworkType

(string alias) (Appears on: AssignableNetworkRange, IPv4CIDRBlock)

AssignableNetworkType represents the network type of an assignable network

ValueDescription
"node"

NodeNetwork defines node network - the range provided to the pools

"pod"

PodsNetwork defines the range for pods

"service"

ServicesNetwork defines the service / cluster range

AzureRoute

(Appears on: ClusterNetworkRouteTarget)

FieldDescription
nextHopType

github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork.RouteNextHopType

NextHopType is the type of Azure networking device that the next hop should target (VirtualAppliance or VirtualNetworkGateway)

nextHopIP

string

NextHopIP is the IP address of the next network hop for addresses in the target range

AzureServiceEndpoint

(string alias) (Appears on: ProviderDetailsAzure)

ClusterNetworkCapacities

([]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/networking/v2beta1.ClusterNetworkCapacity alias) (Appears on: ClusterNetworkStatus, ClusterNetworkStatus, ClusterNetworkPlanStatus)

ClusterNetworkCapacity

FieldDescription
stage

string

Stage is the stage where there is capacity

hasCapacity

bool

HasCapacity is true if there is capacity

details

string

Details will contain details about the capacity if there is no capacity, will include details about why

ClusterNetworkDetail

(Appears on: ClusterNetworkStatus, ClusterNetworkStatus, ClusterNetworkPlanStatus)

FieldDescription
awsVPC
ClusterNetworkDetailsAWS

AWSVPC describes the next AWS VPC that would be created from this plan

azureVirtualNetwork
ClusterNetworkDetailsAzure

AzureVirtualNetwork describes the next Azure Virtual Network that would be created from this plan

gcpVPC
ClusterNetworkDetailsGCP

GCPVPC describes the next GCP VPC that would be created from this plan

ClusterNetworkDetailSubnet

(Appears on: ClusterNetworkDetailSubnetAWS, ClusterNetworkDetailsAzure, ClusterNetworkDetailsGCP)

FieldDescription
type
ClusterNetworkDetailSubnetTypes

Type is what the cidr block is used for

cidr
IPv4CIDR

CIDR is the cidr range in the A.B.C.D/N format

ClusterNetworkDetailSubnetAWS

(Appears on: ClusterNetworkDetailsAWS)

FieldDescription
ClusterNetworkDetailSubnet
ClusterNetworkDetailSubnet

(Members of ClusterNetworkDetailSubnet are embedded into this type.)

availabilityZone

string

AvailabilityZone is an AWS availability zone. - In an example it is just a number but in reality it will be the actual ID

natGateway

bool

NATGateway indicates whether a NAT gateway would be created for this subnet

ClusterNetworkDetailSubnetTypes

(string alias) (Appears on: ClusterNetworkDetailSubnet)

ClusterNetworkDetailSubnetTypes defines how the subnet maps to a provider It describes the subnet and what other fields are required

ValueDescription
"EKSPrivate"

DetailSubnetTypeAWSEKSPrivate is the type of subnet used for EKS private subnets

"EKSPublic"

DetailSubnetTypeAWSEKSPublic is the type of subnet used for EKS public subnets

"AKSInternalService"

DetailSubnetTypeAzureAKSInternalService represents a subnet that will be used by AKS services It would NOT be built but instead it is a logical, non-routeable network that AKS will create DEPRECATED: This will be removed in a later release (v2.6)

"SubnetNode"

DetailSubnetTypeAzureSubnetNode represents an Azure subnet (e.g. for nodes) It would be built as an Azure subnet within a Virtual Network

"SecondarySubnetGKEPod"

DetailSubnetTypeGCPSecondarySubnetGKEPod represents a subnet that will be used by GKE Pods It would be built as a GCP secondary subnet within a GCP VPC

"SecondarySubnetGKEService"

DetailSubnetTypeGCPSecondarySubnetGKEService represents a subnet that will be used by GKE services It would be built as a GCP secondary subnet within a GCP VPC

ClusterNetworkDetailsAWS

(Appears on: ClusterNetworkDetail)

ClusterNetworkDetailsAWS describes what can be known about a cluster Network on AWS before creation. This represents a suitable VPC as required for a cluster

FieldDescription
cidr
IPv4CIDR

CIDR is the cidr range in the A.B.C.D/N format

subnets
[]ClusterNetworkDetailSubnetAWS

Subnets are the list of subnets that would be used by EKS

ClusterNetworkDetailsAzure

(Appears on: ClusterNetworkDetail)

ClusterNetworkDetailsAzure describes what can be known about a cluster Network on Azure before creation This represents a suitable VPC as required for a cluster

FieldDescription
cidr
IPv4CIDR

CIDR is the cidr range in the A.B.C.D/N format

subnets
[]ClusterNetworkDetailSubnet

Subnets are the list of subnets that would be used by AKS Only one subnet specified: - one of type azureSubnetNode, created as an Azure subnet and used by the nodes

ClusterNetworkDetailsGCP

(Appears on: ClusterNetworkDetail)

ClusterNetworkDetailsGCP describes what can be known about a cluster Network on GCP before creation This represents a GCP VPC as required for a GKE cluster

FieldDescription
cidr
IPv4CIDR

CIDR is the cidr range in the A.B.C.D/N format

subnets
[]ClusterNetworkDetailSubnet

Subnets are the list of subnets that would be used by GKE Only two subnets are specified: - one of type gcpSubnetSecondaryService, created as a GCP secondary subnet in the GCP VPC - one of type gcpSubnetSecondaryPod, created as a GCP secondary subnet in the GCP VPC

ClusterNetworkGateway

(Appears on: ClusterNetworkPrivateOptions)

ClusterNetworkGateway are cloud agnostic settings for nat gateway

FieldDescription
associate
ClusterNetworkGatewayAssociation

Associate is the location of the gateway

ipv4
ClusterNetworkGatewayIPV4

IPv4 defines the ip allocation options of the gateway

nat
ClusterNetworkGatewayNATOptions

NAT provides cloud agnostic settings for the NAT gateway itself

ClusterNetworkGatewayAssociation

(Appears on: ClusterNetworkGateway)

ClusterNetworkGatewayAssociation is used to define where the gateway should reside

FieldDescription
subnet

string

Subnet is reference to the subnet the gateway should reside. Note the subnet must be defined in the subnets sections below. Note, GCP does not require this settings, CloudNAT is associated to a network

location

string

Location defines the regional the gateway should reside in. This is only required for GCP where cloud gateways are regional rather than designated to an availability zone

ClusterNetworkGatewayIPV4

(Appears on: ClusterNetworkGateway)

ClusterNetworkGatewayIPV4 are the options related to ipv4 settings on a nat gateway

FieldDescription
mode
ClusterNetworkGatewayIPV4Mode

Mode defines the mode of how to allocate external address or address pools to the NAT gateway

addresses

[]string

Addresses provides a collection of external addresses which should be associated to the nat gateway, assuming the mode is static. In AWS is the an EIP which has been allocated in the correct region and account. In GCP you can define multiple external addresses which the CloudNAT will manage

ClusterNetworkGatewayIPV4Mode

(string alias) (Appears on: ClusterNetworkGatewayIPV4)

ClusterNetworkGatewayIPV4Mode defines the mode for ipv4 allocation on the gateway

ClusterNetworkGatewayNATOptions

(Appears on: ClusterNetworkGateway)

ClusterNetworkGatewayNATOptions provides the ability to configure cloud agnostic settings on the gateway

FieldDescription
subnets

[]string

Subnet defines the subnets which should be associated and natted through the nat gateway. These must be defined in the subnets section within the cluster network spec.

ClusterNetworkIPv4

(Appears on: ClusterNetworkSpec)

ClusterNetworkIPv4 is a collection of network ipv4 ranges

FieldDescription
cidrBlocks
IPv4CIDRBlocks

CIDRBlocks is a list of CIDR blocks that are associated with the network. Includes useCase so a provider or client can decide what they are used for currently only supported use cases are: - “cluster” - “pods” - “services” [AWS] Multiple IP ranges. AWS only supports a single IP range is supported on creation, but can be updated afterwards to specify additional IP ranges. [GCP] Used as metadata for cluster creation. [Azure] Multiple IP ranges.

ClusterNetworkLayout

(Appears on: ClusterNetworkSpec)

ClusterNetworkLayout defines the options for wayfinder prescribed network topology

FieldDescription
mode
ClusterNetworkLayoutMode

Mode dictates whether the layout of the network should be set up manually or automatically. If automatic, no other fields should be specified. If manual, fields should be specified manually by the caller. Currently, only “auto” is supported. In future, “manual” will be implemented as required.

privateSubnets

int

PrivateSubnets is the number of private subnets that should be generated in the network. Mode must be set to “auto” for this field to be valid.

publicSubnets

int

PublicSubnets is the number of public subnets that should be generated in the network. Mode must be set to “auto” for this field to be valid.

ClusterNetworkLayoutMode

(string alias) (Appears on: ClusterNetworkLayout)

ClusterNetworkLayoutMode represents the cluster network layout mode

ValueDescription
"auto"

ClusterNetworkLayoutModeAuto is for cluster network layout mode auto

"manual"

ClusterNetworkLayoutModeManual is for cluster network layout mode manual

ClusterNetworkPlanClusters

(Appears on: ClusterNetworkPlanStatus)

FieldDescription
name

string

Name is the name of a cluster

workspace
WorkspaceKey

Workspace is the cluster’s workspace

ClusterNetworkPlanSpec

(Appears on: ClusterNetworkPlan, NetworkFabricPlan)

ClusterNetworkPlanSpec defines the desired state of Plan

FieldDescription
summary

string

Summary provides a short title summary for the network plan It should describe a network in terms that are meaningful for developers: e.g. highest availability network expensive but resilient

planProviderDetails
PlanProviderDetails

PlanProviderDetails defines the parameters for cloud specific options specifically for a plan

assignableNetworks

[]string

AssignableNetworks provides a list of AssignableNetworks. The plan will use these dynamic IP ranges when this is set. Do not specify any .template.ipv4.cidrBlocks[].cidr fields if this is specified. The size of the network(s) required are taken from .template.ipv4.cidrBlocks[].size.

template
ClusterNetworkSpec

Template are the key+value pairs describing a network configuration

ClusterNetworkPlanStatus

(Appears on: ClusterNetworkPlan, NetworkFabricPlan)

ClusterNetworkPlanStatus defines the observed state of Plan

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

exampleNetwork
ClusterNetworkDetail

ExampleNetwork describes a cluster network that will be created from this plan

capacity
ClusterNetworkCapacities

Capacity describes the capacity to build a network from this plan

clusters
[]ClusterNetworkPlanClusters

Clusters describes which clusters are currently using the plan

ClusterNetworkPrivateOptions

(Appears on: ClusterNetworkSpec)

ClusterNetworkPrivateOptions are options related to private networking

FieldDescription
enabled

bool

Enabled indicates we are expecting the predefined network layout to generate a private network.

gateways
[]ClusterNetworkGateway

Gateways provides the options around cloud NAT gateways

ClusterNetworkProviderType

(string alias) (Appears on: ProviderDetails)

ClusterNetworkProviderType represents the concrete type of a cluster network provider

ValueDescription
"aws"

ClusterNetworkProviderTypeAWS is for AWS network provider

"azure"

ClusterNetworkProviderTypeAzure is for Azure network provider

"gcp"

ClusterNetworkProviderTypeGCP is for GCP network provider

ClusterNetworkRoute

(Appears on: ClusterNetworkSpec)

ClusterNetworkRoute is a cloud agnostic definition for a route

FieldDescription
name

string

Name is the name of the route.

description

string

Description is an optional description of the route.

cidrBlock
IPv4CIDR

CIDRBlock represents the range of destination IP addresses that this route applies to.

target
ClusterNetworkRouteTarget

Target is the destination that the traffic bound for IP addresses within CIDRBlock range will be sent to. This target may be a gateway, network interface, or connection through which to send the destination traffic; for example, an internet gateway.

ClusterNetworkRouteTarget

(Appears on: ClusterNetworkRoute)

ClusterNetworkRouteTarget contains the information necessary to determine the destination that network traffic should be sent to.

FieldDescription
azure
AzureRoute

ClusterNetworkSpec

(Appears on: ClusterNetwork, ClusterNetworkPlanSpec, NetworkFabric)

ClusterNetworkSpec defines the desired state of a network

FieldDescription
layout
ClusterNetworkLayout

Layout refers to the layout of the network. It controls whether the various parts - subnets, routes, etc. - are set up manually (i.e. specified in the spec) or automatically (i.e. generated by the provider).

cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef is a reference to the cloud access configuration that should be used to create the network.

ipv4
ClusterNetworkIPv4

IPv4 contains the IPv4 configuration associated with the network.

location

string

Location is the region the network should be created in. [AWS] Region [GCP] The Default location for subnets (as GCP actual networks are global) [Azure] Region Required if this is used for a ClusterNetwork, optional on a ClusterNetworkPlan

cloudResourceName

string

CloudResourceName is used to identify the network object in the cloud provider [AWS] Names are not supported, so is a “Name” tag on the VPC [GCP] Name of the Network [Azure] Name of the Virtual Network (VNet)

plan

string

Plan refers to a “flavour” of network that donates the policy. For example, when .Spec.Layout.Mode="auto" and this is set to “my-network”, a network values will be added automatically from the plan, with minimal input from the caller.

provider

string

Provider refers to the cloud provider.

providerDetails
ProviderDetails

ProviderDetails defines cloud-specific network options

private
ClusterNetworkPrivateOptions

Private are options related to private networking

routes
[]ClusterNetworkRoute

Routes is the list of routes within the network. Mode must be set to “manual” for this field to be valid. if manual, will be populated from the spec.IPv4.CIDRBlock’s

stage

string

Stage is the name of the stage for the network. Required when used in a cluster network, optional when used in a cluster network plan.

subnets
[]ClusterNetworkSubnet

Subnets is the list of subnets within the network. Mode must be set to “manual” for this field to be valid.

tags

map[string]string

Tags is a collection of tags to apply to the resources associated with the network, if applicable.

ClusterNetworkStatus

(Appears on: ClusterNetwork, ClusterStatus, ClusterStatus, NetworkFabric)

ClusterNetworkStatus defines the observed state of a network

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

aws
ClusterNetworkStatusAWS

AWS contains the AWS-specific state for the network

azure
ClusterNetworkStatusAzure

Azure contains the Azure-specific state for the network

gcp
ClusterNetworkStatusGCP

GCP contains the GCP-specific state for the network

ClusterNetworkStatusAWS

(Appears on: ClusterNetworkStatus)

ClusterNetworkStatusAWS contains the AWS-specific attributes of the status block.

FieldDescription
accountID

string

AccoundID is the aws account id

availabilityZoneIDs

[]string

AvailabilityZoneIDs is the list of AZ ids

availabilityZoneNames

[]string

AvailabilityZoneIDs is the list of AZ names

privateIPV4Addresses

[]string

PrivateIPV4Addresses provides the list of private subnet addresses

privateSubnetIDs

[]string

PrivateSubnetIDs is a list of subnet IDs to use for the worker nodes

publicIPV4Addresses

[]string

PublicIPV4Addresses provides the list of public subnet addresses

ipv4EgressAddresses

[]string

PublicIPV4EgressAddresses provides the source addresses for traffic coming from the cluster

publicSubnetIDs

[]string

PublicSubnetIDs is a list of subnet IDs to use for resources that need a public IP (e.g. load balancers)

securityGroupIDs

[]string

SecurityGroupIDs is a list of security group IDs to use for a cluster

vpcID

string

VpcID is the identifier of the VPC

ClusterNetworkStatusAzure

(Appears on: ClusterNetworkStatus)

ClusterNetworkStatusAzure contains the Azure-specific attributes of the status block.

FieldDescription
virtualNetworkID

string

VirtualNetworkID is the identifier of the Virtual Network

subnetIDs

[]string

SubnetIDs are the list of subnet IDs in the Virtual Network

ClusterNetworkStatusGCP

(Appears on: ClusterNetworkStatus)

ClusterNetworkStatusGCP contains the GCP-specific attributes of the status block.

FieldDescription
name

string

Name is the name of the network in GCP

networkRef

string

NetworkRef is the cloud provider reference

gateways
[]ClusterNetworkStatusGCPGateway

Gateways provides a status on the gateways and any external addresses

ClusterNetworkStatusGCPGateway

(Appears on: ClusterNetworkStatusGCP)

ClusterNetworkStatusGCPGateway defines the status on the gateway

FieldDescription
name

string

Name is name of the gateway

location

string

Location is location of where it resides

addresses

[]string

Addresses is the external IP or self links references associated to the gateway

ClusterNetworkSubnet

(Appears on: ClusterNetworkSpec)

ClusterNetworkSubnet defines the options for a virtual subnet

FieldDescription
name

string

Name is the name of the subnet.

description

string

Description is an optional description of the subnet.

location

string

Location is the zone or region associated with the subnet. [AWS] Zone [GCP] Region [Azure] Region (same as the Virtual Network)

ipv4
ClusterNetworkSubnetIPv4

IPv4 is the Internet Protocol (version 4) configuration for the subnet.

ClusterNetworkSubnetIPv4

(Appears on: ClusterNetworkSubnet)

ClusterNetworkSubnetIPv4 defines the options for the subnet range

FieldDescription
cidrBlock
IPv4CIDR

CIDRBlock is the IP address range for the subnet.

ipVersion

uint16

IPVersion is the Internet Protocol version of the subnet.

type
ClusterNetworkSubnetType

Type determines whether VMs launched into this subnet should have public or private IP address. If nat is specified, this must be set to “private”.

providerDetails
ProviderDetailsSubnetIPv4

ProviderDetails is is the cloud specific configuration for the subnet.

ClusterNetworkSubnetType

(string alias) (Appears on: ClusterNetworkSubnetIPv4)

ClusterNetworkSubnetType represents the cluster network subnet type

ValueDescription
"private"

ClusterNetworkSubnetTypePrivate is for network subnet type private

"public"

ClusterNetworkSubnetTypePublic is for network subnet type public

ExternalNetworkPeer

(Appears on: PeeringRuleDirect)

ExternalNetworkPeer defines the definition when attached to the network to an external network

FieldDescription
account

string

Account is a cloud agnostic name of the account, subscription or project where the network we are peering to exists

location

string

Location is the region where the network exists. For AWS this might be eu-west-2, for GCP europe-west2 and so forth

identifier

string

Identifier is the full resource identity of the virtual network which we are peering to. This AWS and GCP this would be the virtual network name. For Azure this would be the resource group plus the virtual network name.

routes
IPv4CIDRs

Routes is a collection of network ranges which we want to expose to the peered networks. The route tables of the source networks are automatically amended to push these subnets down the peered connection

routeTableSelectors

map[string]string

RouteTableSelectors is required when enableAutoApproval is enabled. The field provides a collection of cloud tags which is used to filter on which routing tables in the external network need updating to include the source network routes. Note, this field is not required for GCP or Azure as the route propagation is performed automatically for you.

FirewallRule

(Appears on: FirewallSpec)

FirewallRule represents the various options associated with a firewall rule. Depending on the cloud, a single FirewallRule might be expanded to multiple individual firewall rules.

FieldDescription
name

string

Name is the name of the firewall rule.

description

string

Description is an optional description of the firewall rule.

action

string

Action dictates whether to allow or deny matching traffic.

cidrBlocks
[]IPv4CIDR

CIDRBlocks is the list of IP address ranges that this rule applies to.

direction

string

Direction dictates whether this rule applies to inbound or outbound traffic.

ipVersion

uint16

IPVersion is the version of the Internet Protocol for the firewall rule.

protocols

[]string

Ports is a list of protocols that this firewall rule applies to.

ports
[]Port

Ports is a list of port numbers that this firewall rule applies to. If omitted, the rule applies to all ports.

priority

uint16

Priority dictates the precedences of the firewall rule. Lower values indicate higher priorities.

FirewallSpec

(Appears on: FirewallRules)

FirewallSpec defines the desired state of a firewall

FieldDescription
networkRef
Ownership

NetworkRef is a reference to the network associated with the firewall.

rules
[]FirewallRule

Rules is a list of firewall rules.

FirewallStatus

(Appears on: FirewallRules)

FirewallStatus defines the observed state of a firewall

GCPSecondarySubnetIPRanges

(Appears on: ProviderDetailsSubnetIPv4GCP)

GCPSecondarySubnetIPRanges represents the secondary subnet ranges for GCP when running in private cluster mode

FieldDescription
cidrBlock
IPv4CIDR

CIDRBlock is the IP address range for the subnet.

type
GCPSubnetDefaultSubnetName

Type determines what type of secondary range ip address this is.

GCPSubnetDefaultSubnetName

(string alias) (Appears on: GCPSecondarySubnetIPRanges)

GCPSubnetDefaultSubnetName represents the default subnets names for GKE private clusters

ValueDescription
"pods"

GCPSubnetDefaultSubnetNamePods represents the default subnet name for GCP pods networks

"services"

GCPSubnetDefaultSubnetNameServices represents the default subnet name for GCP services networks

IPv4CIDR

(string alias) (Appears on: ClusterNetworkDetailSubnet, ClusterNetworkDetailsAWS, ClusterNetworkDetailsAzure, ClusterNetworkDetailsGCP, ClusterNetworkRoute, ClusterNetworkSubnetIPv4, FirewallRule, GCPSecondarySubnetIPRanges, IPv4CIDRBlock)

IPv4CIDR represents an IP range in the A.B.C.D/N format

IPv4CIDRBlock

CidrBlock represents an IPv4Cidr block and its use case

FieldDescription
type
AssignableNetworkType

Type is what the cidr block is used for

cidr
IPv4CIDR

CIDR is the cidr range in the A.B.C.D/N format

size

int

Size is the size of the CIDR range to be allocated if not specified

IPv4CIDRBlocks

([]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/networking/v2beta1.IPv4CIDRBlock alias) (Appears on: ClusterNetworkIPv4)

IPv4CIDRBlocks is a list of IPv4 addresses with a type

IPv4CIDRs

([]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/networking/v2beta1.IPv4CIDR alias) (Appears on: ExternalNetworkPeer, PeeringRuleGateway)

IPv4CIDRs is a list of IPv4 addresses

NetworkFabric

NetworkFabric is deprecated, use ClusterNetwork instead

FieldDescription
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
ClusterNetworkSpec
layout
ClusterNetworkLayout

Layout refers to the layout of the network. It controls whether the various parts - subnets, routes, etc. - are set up manually (i.e. specified in the spec) or automatically (i.e. generated by the provider).

cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef is a reference to the cloud access configuration that should be used to create the network.

ipv4
ClusterNetworkIPv4

IPv4 contains the IPv4 configuration associated with the network.

location

string

Location is the region the network should be created in. [AWS] Region [GCP] The Default location for subnets (as GCP actual networks are global) [Azure] Region Required if this is used for a ClusterNetwork, optional on a ClusterNetworkPlan

cloudResourceName

string

CloudResourceName is used to identify the network object in the cloud provider [AWS] Names are not supported, so is a “Name” tag on the VPC [GCP] Name of the Network [Azure] Name of the Virtual Network (VNet)

plan

string

Plan refers to a “flavour” of network that donates the policy. For example, when .Spec.Layout.Mode="auto" and this is set to “my-network”, a network values will be added automatically from the plan, with minimal input from the caller.

provider

string

Provider refers to the cloud provider.

providerDetails
ProviderDetails

ProviderDetails defines cloud-specific network options

private
ClusterNetworkPrivateOptions

Private are options related to private networking

routes
[]ClusterNetworkRoute

Routes is the list of routes within the network. Mode must be set to “manual” for this field to be valid. if manual, will be populated from the spec.IPv4.CIDRBlock’s

stage

string

Stage is the name of the stage for the network. Required when used in a cluster network, optional when used in a cluster network plan.

subnets
[]ClusterNetworkSubnet

Subnets is the list of subnets within the network. Mode must be set to “manual” for this field to be valid.

tags

map[string]string

Tags is a collection of tags to apply to the resources associated with the network, if applicable.

status
ClusterNetworkStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

aws
ClusterNetworkStatusAWS

AWS contains the AWS-specific state for the network

azure
ClusterNetworkStatusAzure

Azure contains the Azure-specific state for the network

gcp
ClusterNetworkStatusGCP

GCP contains the GCP-specific state for the network

NetworkFabricPlan

NetworkFabricPlan is deprecated use ClusterNetworkPlan instead

FieldDescription
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
ClusterNetworkPlanSpec
summary

string

Summary provides a short title summary for the network plan It should describe a network in terms that are meaningful for developers: e.g. highest availability network expensive but resilient

planProviderDetails
PlanProviderDetails

PlanProviderDetails defines the parameters for cloud specific options specifically for a plan

assignableNetworks

[]string

AssignableNetworks provides a list of AssignableNetworks. The plan will use these dynamic IP ranges when this is set. Do not specify any .template.ipv4.cidrBlocks[].cidr fields if this is specified. The size of the network(s) required are taken from .template.ipv4.cidrBlocks[].size.

template
ClusterNetworkSpec

Template are the key+value pairs describing a network configuration

status
ClusterNetworkPlanStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

exampleNetwork
ClusterNetworkDetail

ExampleNetwork describes a cluster network that will be created from this plan

capacity
ClusterNetworkCapacities

Capacity describes the capacity to build a network from this plan

clusters
[]ClusterNetworkPlanClusters

Clusters describes which clusters are currently using the plan

PeeringGatewayProviderDetails

(Appears on: PeeringRuleGateway)

PeeringGatewayProviderDetails provides a means configure cloud specific options around gateway attachments

FieldDescription
aws
PeeringGatewayProviderDetailsAWS

AWS defines the cloud specifics for gateway options

PeeringGatewayProviderDetailsAWS

(Appears on: PeeringGatewayProviderDetails)

PeeringGatewayProviderDetailsAWS are cloud specific options for AWS

FieldDescription
enableDNS

bool

EnableDNS indicates we should enable or disable dns support via the gateway. Note this defaults to true unless defined.

transitAssociations

string

TransitAssociations is an optional transit gateway routing table which attachments provisioned by this rule should be associated with.

transitPropagations

[]string

TransitPropagations is a collection of transit gateway route tables which this attachment should be propagated into. Note, for this feature to work, the cloudaccessconfig MUST be enabled, permissions associated and the enableAutoApproval must be set to true. The map here contains the tags which are used to filter the transit gateway route table/s within the account the cloudaccessconfig is associated with.

PeeringProviderDetails

(Appears on: PeeringRuleDirect)

PeeringProviderDetails provides a means configure cloud specific options around gateway attachments

FieldDescription
azure
PeeringProviderDetailsAzure

Azure defines the cloud specifics for gateway options

PeeringProviderDetailsAzure

(Appears on: PeeringProviderDetails)

PeeringProviderDetailsAzure are cloud specific options for Azure

FieldDescription
enableUseRemoteGateway

bool

EnableUseRemoteGateway indicates if cluster peering should use remote gateway. If set to true, local gateway will not be deployed and remote one configured to be used

PeeringRuleConnection

(Appears on: PeeringRuleSpec, PeeringSpec)

PeeringRuleConnection provides the definitions for the connection details related to peering

FieldDescription
type
PeeringRuleConnectionType

Type is the type of peering we are configuring

gateway
PeeringRuleGateway

Gateway provides the configuration for working with gateways and peering connections via a network backbone such as Transit Gateway.

peering
PeeringRuleDirect

Peering provides the configuration for direct peering between two networks. By default the peering assumes the management network, though this can be overridden if required

PeeringRuleConnectionType

(string alias) (Appears on: PeeringRuleConnection)

PeeringRuleConnectionType represents the concrete type for configuration

PeeringRuleDirect

(Appears on: PeeringRuleConnection)

PeeringRuleDirect defines the options around direct peering

FieldDescription
enableAutoApproval

bool

EnableAutoApproval indicates we should always accept the peering connection on the other end of the peer. This requires the user provides a cloud access config which the correct permissions to do so.

network
ExternalNetworkPeer

Network sets the network which the peering is created on.

subnets
PeeringSubnetFilter

Subnets provides a means to filter which on the subnets you want to push down the peering. By default we assume all the subnets attached to the virtual network should be routed down the peer

providerDetails
PeeringProviderDetails

ProviderDetails provides the cloud specific options when performing a gateway attachment

PeeringRuleFilters

(Appears on: PeeringRuleSpec)

PeeringRuleFilters is used to filter down whom the policy should apply

FieldDescription
allocation
ResourceAllocation

Allocation offers the ability to filter the peering policy down to a collection of workspaces only

selectors
Kubernetes meta/v1.LabelSelector

Selectors offers the option to filter down which networks the peering policy is applied based on the labels on the cluster network resource.

PeeringRuleGateway

(Appears on: PeeringRuleConnection)

PeeringRuleGateway defines the options for gateway attachments and peering.

FieldDescription
identifier

string

Identifier is the cloud specific identifier for the gateway - this could be a transit gateway id in AWS.

enableAutoApproval

bool

EnableAutoApproval indicates we should always accept the peering connection on the other end of the peer. This requires the user provides a cloud access config which the correct permissions to do so.

location

string

Location is the cloud region which where the transit gateway resides

routes
IPv4CIDRs

Routes is a collection of cidr blocks which we need to push down the transit gateway.

routeTableSelectors

map[string]string

RouteTableSelectors is required when enableAutoApproval is enabled. The field provides a collection of cloud tags which is used to filter on transit gateway route table the attachment should be propagated into. Note, this performs an a propagation only. Transit gateway associations must be handled outside of

providerDetails
PeeringGatewayProviderDetails

ProviderDetails provides the cloud specific options when performing a gateway attachment

PeeringRuleSpec

(Appears on: PeeringRule)

PeeringRuleSpec provides the definition for a peering rule. These are matched against one of more ClusterNetwork CRD and used to provision a Peer CRD which is used to connect up networks

FieldDescription
cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef provides an optional reference to a cloudaccount which has the permission to carry out the tasks required to fulfil peering or gateway attachments

connection
PeeringRuleConnection

Connection provides the policy details around how the peering should be achieved

filters
PeeringRuleFilters

Filters provides the ability to apply a collection of filters to whom the peering policy should apply to

provider

string

Provider refers to the cloud provider.

PeeringRuleStatus

(Appears on: PeeringRule)

PeeringRuleStatus defines the observed state of a peering setup

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

connectionID

string

ConnectionID is the ID of the peering or gateway attachment which has been created

PeeringSpec

(Appears on: Peering)

PeeringSpec defines the definition for the peering connection resource

FieldDescription
cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef provides an optional reference to a cloud access config which details the permission to carry out the tasks required to fulfil peering or gateway attachments

connection
PeeringRuleConnection

Connection provides the policy details around how the peering should be achieved

networkRef
Ownership

NetworkRef is the network which we are creating a connection from

provider

string

Provider refers to the cloud provider.

PeeringStatus

(Appears on: Peering)

PeeringStatus defines the observed state of a peering setup

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

peeringID

string

PeeringID is the cloud agnostic peering identifier

PeeringSubnetFilter

(map[string]string alias) (Appears on: PeeringRuleDirect)

PeeringSubnetFilter provides a means to filter down which subnets in the virtual network we are about to attach should be pushed down the peer. One example would be to only push internal subnets.

PlanProviderDetails

(Appears on: ClusterNetworkPlanSpec)

PlanProviderDetails defines the parameters for cloud specific options specifically for a plan

FieldDescription
aws
PlanProviderDetailsAWS

AWS is the provider specification for AWS networks

PlanProviderDetailsAWS

(Appears on: PlanProviderDetails)

PlanProviderDetailsAWS defines the AWS-specific ClusterNetwork plan only configuration

FieldDescription
availabilityZoneIDsByRegion

map[string][]string

AvailabilityZoneIDsByRegion is a map of region to availability zone IDs. Allows specifying which zones should be used across accounts when networks are created.

Port

(uint16 alias) (Appears on: FirewallRule)

Port is a network port.

ProviderDetails

(Appears on: ClusterNetworkSpec)

ProviderDetails defines the parameters for cloud specific options - i.e options which cannot be consolidated as they are too specific to the chosen cloud vendor

FieldDescription
type
ClusterNetworkProviderType

Type represents the cloud the ClusterNetwork belongs to

aws
ProviderDetailsAWS

AWS is the provider specification for AWS networks

azure
ProviderDetailsAzure

Azure is the provider specification for Azure networks

gcp
ProviderDetailsGCP

GCP is the provider specification for GCP networks

ProviderDetailsAWS

(Appears on: ProviderDetails)

ProviderDetailsAWS defines the AWS-specific ClusterNetwork configuration

FieldDescription
availabilityZoneIDs

[]string

AvailabilityZoneIDs is a list of availability zone ids to use for subnets, and NAT gateways this allows specific availability zones to be specified and matched across any accounts will be populated by the AvailabilityZoneIDsByRegion if not specified directly on the plan A single region must be specified when AvailabilityZoneIDs is used.

availabilityZones

int

AvailabilityZones is the number of availability zones used for the network. Must be 2 or 3 or not specified. If specified, must equal the number of privateSubnets. Each subnet (public or private) will be created in a different availability zone.

natGateways

int

NATGateways is the number of NAT gateways to create. Must be 1 or 2 or not specified. If specified, must equal the number of privateSubnets.

ProviderDetailsAzure

(Appears on: ProviderDetails)

ProviderDetailsAzure defines the Azure-specific ClusterNetwork configuration

FieldDescription
resourceGroup

string

ResourceGroup is the Azure resource group

dnsResolverIPAddresses

[]string

DNSResolverIPAddresses is a list of IPs to use for DNS resolution on the vNet it creates

serviceEndpoints
[]AzureServiceEndpoint

ServiceEndpoints is a list of Azure private service endpoints to make available in the cluster subnet. Entries must be valid, supported service endpoints as defined by Azure - see https://learn.microsoft.com/en-us/azure/virtual-network/virtual-network-service-endpoints-overview

ProviderDetailsGCP

(Appears on: ProviderDetails)

ProviderDetailsGCP defines the GCP-specific ClusterNetwork configuration

ProviderDetailsSubnetIPv4

(Appears on: ClusterNetworkSubnetIPv4)

ProviderDetailsSubnetIPv4 provides cloud provider specifics for the subnet

FieldDescription
gcp
ProviderDetailsSubnetIPv4GCP

GCP is the provider specification for GCP subnets

ProviderDetailsSubnetIPv4GCP

(Appears on: ProviderDetailsSubnetIPv4)

ProviderDetailsSubnetIPv4GCP provides secondary ranges for gcp

FieldDescription
secondaryIpRanges
[]GCPSecondarySubnetIPRanges