v1alpha1

package
v0.0.0-...-aa4d7d5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 25, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

v1alpha1 contains API types that extend the Crossplane API. +kubebuilder:object:generate=true +groupName=xnetworks.crossplane.giantswarm.io +versionName=v1alpha1

Index

Constants

View Source
const (
	XRDGroup   = "xnetworks.crossplane.giantswarm.io"
	XRDVersion = "v1alpha1"
)

Package type metadata.

Variables

View Source
var (
	DiscoveryKind      = "Discovery"
	DiscoveryGroupKind = schema.GroupKind{
		Group: XRDGroup,
		Kind:  DiscoveryKind,
	}.String()
	DiscoveryKindAPIVersion   = DiscoveryKind + "." + GroupVersion.String()
	DiscoveryGroupVersionKind = GroupVersion.WithKind(DiscoveryKind)
)

Repository type metadata.

View Source
var (
	// GroupVersion is the API Group Version used to register the objects
	GroupVersion = schema.GroupVersion{Group: XRDGroup, Version: XRDVersion}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	ManagedPrefixListKind      = "ManagedPrefixList"
	ManagedPrefixListGroupKind = schema.GroupKind{
		Group: XRDGroup,
		Kind:  ManagedPrefixListKind,
	}.String()
	ManagedPrefixListKindAPIVersion   = ManagedPrefixListKind + "." + GroupVersion.String()
	ManagedPrefixListGroupVersionKind = GroupVersion.WithKind(ManagedPrefixListKind)
)

Repository type metadata.

View Source
var (
	PeeredVpcNetworkKind      = "PeeredVpcNetwork"
	PeeredVpcNetworkGroupKind = schema.GroupKind{
		Group: XRDGroup,
		Kind:  PeeredVpcNetworkKind,
	}.String()
	PeeredVpcNetworkKindAPIVersion   = PeeredVpcNetworkKind + "." + GroupVersion.String()
	PeeredVpcNetworkGroupVersionKind = GroupVersion.WithKind(PeeredVpcNetworkKind)
)

Repository type metadata.

View Source
var (
	PeeringKind      = "Peering"
	PeeringGroupKind = schema.GroupKind{
		Group: XRDGroup,
		Kind:  PeeringKind,
	}.String()
	PeeringKindAPIVersion   = PeeringKind + "." + GroupVersion.String()
	PeeringGroupVersionKind = GroupVersion.WithKind(PeeringKind)
)

Repository type metadata.

View Source
var (
	SubnetSetKind             = "SubnetSet"
	SubnetSetGroupKind        = schema.GroupKind{Group: XRDGroup, Kind: SubnetSetKind}.String()
	SubnetSetKindAPIVersion   = SubnetSetKind + "." + GroupVersion.String()
	SubnetSetGroupVersionKind = GroupVersion.WithKind(SubnetSetKind)
)

Repository type metadata.

View Source
var (
	TransitGatewayKind      = "TransitGateway"
	TransitGatewayGroupKind = schema.GroupKind{
		Group: XRDGroup,
		Kind:  TransitGatewayKind,
	}.String()
	TransitGatewayKindAPIVersion   = TransitGatewayKind + "." + GroupVersion.String()
	TransitGatewayGroupVersionKind = GroupVersion.WithKind(TransitGatewayKind)
)

Repository type metadata.

Functions

This section is empty.

Types

type AvailabilityZone

type AvailabilityZone string

AvailabilityZone is a string type that represents the availability zone for a subnet.

+kubebuilder:validation:Type=string +kubebuilder:validation:Pattern="^[a-z]{2}-[a-z]+-[0-9]+[a-z]$"

type Cidr

type Cidr string

Cidr is a string type that represents a CIDR block.

+kubebuilder:validation:Pattern="^([0-9]{1,3}.){3}[0-9]{1,3}/[0-9]{1,2}$" +kubebuilder:validation:Type=string

type Discovery

type Discovery struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   DiscoverySpec   `json:"spec"`
	Status DiscoveryStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +genclient +genclient:nonNamespaced

+kubebuilder:resource:scope=Cluster,categories=crossplane;network +kubebuilder:subresource:status +kubebuilder:resource:shortName=dscvr +crossbuilder:generate:xrd:claimNames:kind=DiscoveryClaim,plural=discoveryclaims +crossbuilder:generate:xrd:defaultCompositionRef:name=network-discovery +crossbuilder:generate:xrd:enforcedCompositionRef:name=network-discovery

func (*Discovery) DeepCopy

func (in *Discovery) DeepCopy() *Discovery

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Discovery.

func (*Discovery) DeepCopyInto

func (in *Discovery) DeepCopyInto(out *Discovery)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Discovery) DeepCopyObject

func (in *Discovery) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DiscoveryList

type DiscoveryList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Discovery `json:"items"`
}

+kubebuilder:object:root=true

func (*DiscoveryList) DeepCopy

func (in *DiscoveryList) DeepCopy() *DiscoveryList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiscoveryList.

func (*DiscoveryList) DeepCopyInto

func (in *DiscoveryList) DeepCopyInto(out *DiscoveryList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DiscoveryList) DeepCopyObject

func (in *DiscoveryList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DiscoverySpec

type DiscoverySpec struct {
	xpv1.ResourceSpec `json:",inline"`

	// Whether this discovery is enabled.
	//
	// +optional
	// +default=true
	Enabled bool `json:"enabled"`

	// A tag that can be referenced to group subnets and route tables
	// into subnetsets.
	//
	// The tag must have an integer value
	//
	// +optional
	// +default="giantswarm.io/subnetset"
	GroupBy string `json:"groupBy"`

	// The name of the provider config to use for creating kubernetes resources.
	//
	// +required
	KubernetesProviderConfigRef xpv1.Reference `json:"kubernetesProviderConfigRef"`

	// The name of the provider config to use for looking up remote VPCs.
	//
	// +required
	ProviderType string `json:"providerType"`

	// The default region to look in.
	//
	// +required
	Region string `json:"region"`

	// Details about the remove VPCs to look up.
	//
	// +required
	RemoteVpcs []VpcPeer `json:"remoteVpcs"`
}

func (*DiscoverySpec) DeepCopy

func (in *DiscoverySpec) DeepCopy() *DiscoverySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiscoverySpec.

func (*DiscoverySpec) DeepCopyInto

func (in *DiscoverySpec) DeepCopyInto(out *DiscoverySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DiscoveryStatus

type DiscoveryStatus struct {
	xpv1.ConditionedStatus `json:",inline"`

	// The VPCs that have been discovered.
	//
	// +optional
	Vpcs map[string]nd.AwsVpc `json:"vpcs,omitempty"`
}

func (*DiscoveryStatus) DeepCopy

func (in *DiscoveryStatus) DeepCopy() *DiscoveryStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiscoveryStatus.

func (*DiscoveryStatus) DeepCopyInto

func (in *DiscoveryStatus) DeepCopyInto(out *DiscoveryStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManagedPrefixList

type ManagedPrefixList struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ManagedPrefixListSpec   `json:"spec"`
	Status ManagedPrefixListStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +genclient +genclient:nonNamespaced

+kubebuilder:resource:scope=Cluster,categories=crossplane +kubebuilder:subresource:status +kubebuilder:resource:shortName=mpl +crossbuilder:generate:xrd:claimNames:kind=ManagedPrefixListClaim,plural=managedprefixlistclaims +crossbuilder:generate:xrd:defaultCompositionRef:name=managed-prefix-list +crossbuilder:generate:xrd:enforcedCompositionRef:name=managed-prefix-list

func (*ManagedPrefixList) DeepCopy

func (in *ManagedPrefixList) DeepCopy() *ManagedPrefixList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedPrefixList.

func (*ManagedPrefixList) DeepCopyInto

func (in *ManagedPrefixList) DeepCopyInto(out *ManagedPrefixList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ManagedPrefixList) DeepCopyObject

func (in *ManagedPrefixList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ManagedPrefixListEntry

type ManagedPrefixListEntry struct {
	// The CIDR block for the prefix list entry.
	//
	// +optional
	Cidr *Cidr `json:"cidr,omitempty"`

	// The description for the prefix list entry.
	//
	// +optional
	Description *string `json:"description,omitempty"`
}

func (*ManagedPrefixListEntry) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedPrefixListEntry.

func (*ManagedPrefixListEntry) DeepCopyInto

func (in *ManagedPrefixListEntry) DeepCopyInto(out *ManagedPrefixListEntry)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManagedPrefixListList

type ManagedPrefixListList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []ManagedPrefixList `json:"items"`
}

+kubebuilder:object:root=true

func (*ManagedPrefixListList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedPrefixListList.

func (*ManagedPrefixListList) DeepCopyInto

func (in *ManagedPrefixListList) DeepCopyInto(out *ManagedPrefixListList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ManagedPrefixListList) DeepCopyObject

func (in *ManagedPrefixListList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ManagedPrefixListParameters

type ManagedPrefixListParameters struct {
	ManagedPrefixListSubParameters `json:",inline"`

	// The name of the prefix list.
	//
	// +required
	Name *string `json:"name,omitempty"`

	// The region for the prefix list.
	//
	// +required
	Region *string `json:"region,omitempty"`

	// The tags for the prefix list.
	//
	// +optional
	// +kubebuilder:validation:MaxProperties=50
	Tags map[string]string `json:"tags,omitempty"`
}

func (*ManagedPrefixListParameters) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedPrefixListParameters.

func (*ManagedPrefixListParameters) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManagedPrefixListSpec

type ManagedPrefixListSpec struct {
	xpv1.ResourceSpec `json:",inline"`

	ManagedPrefixListParameters `json:",inline"`
}

func (*ManagedPrefixListSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedPrefixListSpec.

func (*ManagedPrefixListSpec) DeepCopyInto

func (in *ManagedPrefixListSpec) DeepCopyInto(out *ManagedPrefixListSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManagedPrefixListStatus

type ManagedPrefixListStatus struct {
	xpv1.ConditionedStatus `json:",inline"`

	// The ARN of the prefix list.
	//
	// +optional
	Arn *string `json:"arn,omitempty"`

	// The ID of the prefix list.
	//
	// +optional
	ID *string `json:"id,omitempty"`

	// Is the prefix list ready
	//
	// +optional
	Ready bool `json:"ready,omitempty"`
}

func (*ManagedPrefixListStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedPrefixListStatus.

func (*ManagedPrefixListStatus) DeepCopyInto

func (in *ManagedPrefixListStatus) DeepCopyInto(out *ManagedPrefixListStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ManagedPrefixListSubParameters

type ManagedPrefixListSubParameters struct {
	// The address family (ipv4 or ipv6) for the prefix list.
	//
	// +optional
	// +kubebuilder:validation:Enum=IPv4;IPv6
	// +kubebuilder:default=IPv4
	AddressFamily *string `json:"addressFamily,omitempty"`

	// The prefix list entries.
	//
	// +optional
	Entries []ManagedPrefixListEntry `json:"entries,omitempty"`

	// The maximum number of entries for the prefix list.
	//
	// +optional
	MaxEntries *int64 `json:"maxEntries,omitempty"`
}

ManagedPrefixListSubParameters

func (*ManagedPrefixListSubParameters) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedPrefixListSubParameters.

func (*ManagedPrefixListSubParameters) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeredSubnetBuilder

type PeeredSubnetBuilder struct {
	// A list of cluster names that may add load balancers in the tagged subnet
	// set. Each entry will result in the tag
	// `kubernetes.io/cluster/$CLUSTER_NAME shared` being added to the subnets
	// in this set.
	//
	// See [public.lbSetIndex](#specsubnetsetscidrspubliclbsetindex) and
	// [private.lbSetIndex](#specsubnetsetscidrsprivatelbsetindex) for deciding
	// which subnetset gets these tags.
	//
	// +optional
	// +listType=atomic
	ClusterNames []string `json:"clusterNames"`

	// Count is the number of subnet sets to create with this mask.
	//
	// > [!WARNING]
	// > Whilst this field is not `immutable`, care should be taken to never
	// > decrease its value once set as this will result in the destruction of
	// > subnet sets which may fail if there are attached resources.
	//
	// +required
	// +kubebuilder:validation:XValidation:rule="self >= oldSelf",message="count cannot be decreased"
	Count int `json:"count"`

	// Identifies which subnet set to use for public EKS load balancers. Subnets
	// in this set will recieve either the `kubernetes.io/role/elb: 1` or
	// `kubernetes.io/role/internal-elb: 1` tag depending on if these are public
	// or private subnets.
	//
	// If this is not set, or set to -1 (the default value), no subnets will be
	// tagged as load balancer subnets otherwise it should be the index of the
	// subnet set to tag, starting from index 0.
	//
	// +optional
	// +default=-1
	LoadBalancerIndex int `json:"lbSetIndex"`

	// This should be a valid CIDR or CIDR suffix (including the prefix `/`) to
	// use as a mask for the subnet.
	//
	// To prevent subnets being destroyed and recreated *This field is immutable*
	//
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="mask is immutable"
	Mask string `json:"mask"`

	// Offset is the number of bits to offset the subnet mask by
	//
	// +optional
	// +default=0
	Offset int `json:"offset"`
}

PeeredSubnetBuilder defines the parameters for creating a set of subnets with the same mask.

The mask is the destination CIDR range to use and the count is the number of subnets to create with this mask. It is your responsibility to ensure that the VPC Cidr to be used as a prefix is large enough to encompass all the subnets created, if not an error will be returned on the staus of the XR

The offset is the number of bits to offset the subnet mask by. This is useful when you may want to create only private subnets, leaving public to be created at a later time, or just want to control how the subnets are created. If no offset is specified, the subnets will be created from the start of the cidr range

func (*PeeredSubnetBuilder) DeepCopy

func (in *PeeredSubnetBuilder) DeepCopy() *PeeredSubnetBuilder

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeredSubnetBuilder.

func (*PeeredSubnetBuilder) DeepCopyInto

func (in *PeeredSubnetBuilder) DeepCopyInto(out *PeeredSubnetBuilder)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeredSubnetSet

type PeeredSubnetSet struct {
	// The network mask to use when provisioning from IPAM
	//
	// +optional
	// +minimum: 16
	// +maximum: 28
	Netmask int `json:"netmask,omitempty"` // deliberatly does not have a default

	// A VPC CIDR or Additional CIDR to use for the VPC. If this is the first
	// entry in the list, it will be used as the default VPC CIDR, otherwise it
	// will be assigned as an additional CIDR to the VPC.
	//
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Cidr is immutable"
	Prefix Cidr `json:"prefix"`

	// Details on how to build the public subnets.
	//
	// Public subnets are subnets with a route to the internet gateway.
	//
	// > [!IMPORTANT]
	// > If this is the default VPC CIDR, i.e. the first entry in the list, the
	// > public subnets will be used for the NAT gateways. Setting this value to
	// > 0 on the default VPC CIDR may result in the creation of fully private
	// > networks with no route to the outside world.
	//
	// +required
	Public PeeredSubnetBuilder `json:"public"`

	// Private is the number of private subnets to create in this set
	//
	// +required
	Private PeeredSubnetBuilder `json:"private"`
}

PeeredSubnetSet defines the parameters for creating a set of subnets with the same mask.

Either one of Netmask or Prefix must be set.

func (*PeeredSubnetSet) DeepCopy

func (in *PeeredSubnetSet) DeepCopy() *PeeredSubnetSet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeredSubnetSet.

func (*PeeredSubnetSet) DeepCopyInto

func (in *PeeredSubnetSet) DeepCopyInto(out *PeeredSubnetSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeredSubnets

type PeeredSubnets struct {
	// A list of PeeredSubnetSets to create in the VPC
	//
	// Each VPC Cidr may be split into *n* public and *n* private subnets as long
	// as there is enough room on the cidr for it to be split at that level. Any
	// overflow will cause the composition to fail and this will be reflected in
	// the status of the XR.
	//
	// > [!IMPORTANT]
	// > There must be at least 1 entry in this set which will be used as the VPC
	// > default CIDR range, and you may define a maximum of 4 additional entries.
	//
	// +required
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=5
	// +listType=map
	// +listMapKey=prefix
	Cidrs []PeeredSubnetSet `json:"cidrs"`

	// Defines the function to use to calculate the CIDR blocks for thesubnets.
	//
	// The default value is "multiprefixloop" which will split multiple CIDRs
	// into equal parts based on the number of bits provided.
	//
	// `multiprefixloop` is the only function being made available as part of
	// this XRD and as it's defaulted it can be hidden from the user. The
	// function input expects a path though so this has to exist but isn't
	// expected to be defined on the claim.
	//
	// +optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Enum=multiprefixloop
	// +kubebuilder:default=multiprefixloop
	Function string `json:"function"`

	// If this composition is to use IPAM to calculate the CIDR blocks for the
	// VPC.
	//
	// +optional
	// +default=false
	IPAM bool `json:"ipam"`

	// The name of the IPAM pool to use.
	//
	// Only relevant if IPAM is enabled and there are IPAM pools available in
	// the region.
	//
	// +optional
	PoolName string `json:"poolName"`
}

PeeredSubnets defines the parameters for creating a set of subnets with the same mask.

If IPAM is enabled, you must provide an IPAM pool name to use for the VPC Cidr blocks.

func (*PeeredSubnets) DeepCopy

func (in *PeeredSubnets) DeepCopy() *PeeredSubnets

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeredSubnets.

func (*PeeredSubnets) DeepCopyInto

func (in *PeeredSubnets) DeepCopyInto(out *PeeredSubnets)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeredVpcLookup

type PeeredVpcLookup struct {
	// If network discovery is enabled
	//
	// +optional
	// +default=true
	Enabled bool `json:"enabled"`

	// GroupBy is the key to group the remote VPCs by
	//
	// +optional
	GroupBy string `json:"groupBy"`

	// RemoteVpcs is a list of VPCs to lookup
	//
	// +optional
	RemoteVpcs []VpcPeer `json:"remoteVpcs"`
}

func (*PeeredVpcLookup) DeepCopy

func (in *PeeredVpcLookup) DeepCopy() *PeeredVpcLookup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeredVpcLookup.

func (*PeeredVpcLookup) DeepCopyInto

func (in *PeeredVpcLookup) DeepCopyInto(out *PeeredVpcLookup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeredVpcNetwork

type PeeredVpcNetwork struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PeeredVpcNetworkSpec   `json:"spec"`
	Status PeeredVpcNetworkStatus `json:"status,omitempty"`
}

PeeredVpcNetwork defines the desired state of a VPC.

This composition can be used to create an *n-dimensional* VPC with optional peering to other VPCs.

A claim made against this composition will result in the creation of a VPC with a number of subnets grouped into sets across *n* availability zones.

If VPC Peering is enabled, the VPC will be peered with the VPCs specified in the claim under the `spec.peering.remoteVpcs` field.

Up to 5 CIDR ranges can be specified and these are done via the `spec.subnetsets.cidrs` field, where the first entry in the list is the default VPC CIDR and all subsequent entries are attached as additional VPC CIDRs.

+kubebuilder:object:root=true +kubebuilder:storageversion +genclient +genclient:nonNamespaced

+kubebuilder:resource:scope=Cluster,categories=crossplane +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Region",type=string,JSONPath=`.spec.region` +kubebuilder:printcolumn:name="VpcID",type=string,JSONPath=`.status.vpcs.self.id` +kubebuilder:resource:shortName=pvpc +crossbuilder:generate:xrd:claimNames:kind=PeeredVpcNetworkClaim,plural=peeredvpcnetworkclaims +crossbuilder:generate:xrd:defaultCompositionRef:name=peered-vpc-network +crossbuilder:generate:xrd:enforcedCompositionRef:name=peered-vpc-network

func (*PeeredVpcNetwork) DeepCopy

func (in *PeeredVpcNetwork) DeepCopy() *PeeredVpcNetwork

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeredVpcNetwork.

func (*PeeredVpcNetwork) DeepCopyInto

func (in *PeeredVpcNetwork) DeepCopyInto(out *PeeredVpcNetwork)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PeeredVpcNetwork) DeepCopyObject

func (in *PeeredVpcNetwork) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PeeredVpcNetworkList

type PeeredVpcNetworkList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PeeredVpcNetwork `json:"items"`
}

+kubebuilder:object:root=true

func (*PeeredVpcNetworkList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeredVpcNetworkList.

func (*PeeredVpcNetworkList) DeepCopyInto

func (in *PeeredVpcNetworkList) DeepCopyInto(out *PeeredVpcNetworkList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PeeredVpcNetworkList) DeepCopyObject

func (in *PeeredVpcNetworkList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PeeredVpcNetworkParameters

type PeeredVpcNetworkParameters struct {
	// PeeredSubnets defines how many public and private subnet sets to create.
	//
	// +required
	PeeredSubnets PeeredSubnets `json:"subnetsets"`

	// Resource Access Management (RAM)
	//
	// +optional
	RAM RAM `json:"ram,omitempty"`

	// Tags is a map of additional tags to assign to the VPC.
	//
	// +optional
	// +structType=granular
	Tags PeeredVpcTags `json:"tags,omitempty"`

	// Peering is the VPC to peer with.
	//
	// +required
	Peering VpcPeering `json:"peering"`

	// TransitGateway is the transit gateway to attach to the VPC.
	//
	// +optional
	TransitGateway TransitGatewayWrapper `json:"transitGateway"`
}

PeeredVpcNetworkParameters defines the parameters for creating a VPC with the option of peered subnets.

func (*PeeredVpcNetworkParameters) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeredVpcNetworkParameters.

func (*PeeredVpcNetworkParameters) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeredVpcNetworkSpec

type PeeredVpcNetworkSpec struct {
	xpv1.ResourceSpec `json:",inline"`

	// AvailabilityZones is a list of availability zones in the region to be
	// used for this VPC. This should be a list of single character strings
	//
	// +required
	// +kubebuilder:validation:MinItems=3
	// +kubebuilder:validation:MaxItems=3
	AvailabilityZones []ShortAz `json:"availabilityZones"`

	// PeeredVpcNetworkParameters defines the parameters for creating a VPC with
	// the option of peered subnets.
	//
	// +required
	PeeredVpcNetworkParameters `json:",inline"`

	// Region is the region in which the VPC will be created.
	//
	// +required
	Region string `json:"region"`
}

func (*PeeredVpcNetworkSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeredVpcNetworkSpec.

func (*PeeredVpcNetworkSpec) DeepCopyInto

func (in *PeeredVpcNetworkSpec) DeepCopyInto(out *PeeredVpcNetworkSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeredVpcNetworkStatus

type PeeredVpcNetworkStatus struct {
	xpv1.ConditionedStatus `json:",inline"`

	// Contains the CIDR blocks output by function-cidr
	//
	// +optional
	// +mapType=atomic
	CalculatedCidrs map[string][]string `json:"calculatedCidrs"`

	// Is the network ready
	//
	// +optional
	Ready bool `json:"ready"`

	// SharedSubnets is a list of subnet ARNs that are to be shared via RAM
	//
	// +optional
	// +listType=atomic
	SharedSubnets []string `json:"sharedSubnets"`

	// Contains the subnet bits output by function-kcl-subnet-bits
	//
	// +listType=atomic
	// +optional
	SubnetBits []fncdr.MultiPrefix `json:"subnetBits"`

	// Details of VPCs to lookup in network discovery
	//
	// +optional
	VpcLookup PeeredVpcLookup `json:"vpcLookup"`

	// Vpcs contains details of both the peered VPCs and the current local VPC
	// The current VPC can be found at the `self` key
	//
	// +optional
	// +mapType=granular
	Vpcs map[string]nd.AwsVpc `json:"vpcs,omitempty"`
}

func (*PeeredVpcNetworkStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeredVpcNetworkStatus.

func (*PeeredVpcNetworkStatus) DeepCopyInto

func (in *PeeredVpcNetworkStatus) DeepCopyInto(out *PeeredVpcNetworkStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeredVpcTags

type PeeredVpcTags struct {
	// common tags apoplied to all resources
	//
	// +optional
	// +mapType=granular
	Common map[string]string `json:"common,omitempty"`

	// Subnet tags to apply to all subnetsets
	//
	// +optional
	// +mapType=granular
	Subnet map[string]string `json:"subnet,omitempty"`

	// Cluster tags to apply subnets for autodiscovery of load balancers
	//
	// +optional
	// +mapType=granular
	Cluster map[string]string `json:"cluster,omitempty"`
}

PeeredVpcTags defines the tags to apply to the VPC and subnets.

func (*PeeredVpcTags) DeepCopy

func (in *PeeredVpcTags) DeepCopy() *PeeredVpcTags

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeredVpcTags.

func (*PeeredVpcTags) DeepCopyInto

func (in *PeeredVpcTags) DeepCopyInto(out *PeeredVpcTags)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Peering

type Peering struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PeeringSpec   `json:"spec"`
	Status PeeringStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +genclient +genclient:nonNamespaced

+kubebuilder:resource:scope=Cluster,categories=crossplane +kubebuilder:subresource:status +kubebuilder:resource:shortName=pcx +crossbuilder:generate:xrd:claimNames:kind=VpcPeeringClaim,plural=vpcpeeringclaims +crossbuilder:generate:xrd:defaultCompositionRef:name=vpcpeering +crossbuilder:generate:xrd:enforcedCompositionRef:name=vpcpeering

func (*Peering) DeepCopy

func (in *Peering) DeepCopy() *Peering

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Peering.

func (*Peering) DeepCopyInto

func (in *Peering) DeepCopyInto(out *Peering)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Peering) DeepCopyObject

func (in *Peering) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PeeringList

type PeeringList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Peering `json:"items"`
}

+kubebuilder:object:root=true

func (*PeeringList) DeepCopy

func (in *PeeringList) DeepCopy() *PeeringList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringList.

func (*PeeringList) DeepCopyInto

func (in *PeeringList) DeepCopyInto(out *PeeringList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PeeringList) DeepCopyObject

func (in *PeeringList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PeeringParameters

type PeeringParameters struct {
	// Determines if the VPC peering should be enabled
	//
	// +optional
	// +default=true
	Enabled bool `json:"enabled"`

	// Details of the local VPC
	LocalVpcDetails VpcDetails `json:"localVpcDetails"`

	// Details of the peer VPC
	PeerVpcDetails VpcDetails `json:"peerVpcDetails"`

	// Tags to apply to the VPC peering connection
	//
	// +optional
	Tags map[string]string `json:"tags,omitempty"`
}

func (*PeeringParameters) DeepCopy

func (in *PeeringParameters) DeepCopy() *PeeringParameters

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringParameters.

func (*PeeringParameters) DeepCopyInto

func (in *PeeringParameters) DeepCopyInto(out *PeeringParameters)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeringSpec

type PeeringSpec struct {
	xpv1.ResourceSpec `json:",inline"`

	// Contains details about the VPC peering connection
	PeeringParameters `json:",inline"`
}

func (*PeeringSpec) DeepCopy

func (in *PeeringSpec) DeepCopy() *PeeringSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringSpec.

func (*PeeringSpec) DeepCopyInto

func (in *PeeringSpec) DeepCopyInto(out *PeeringSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeringStatus

type PeeringStatus struct {
	xpv1.ConditionedStatus `json:",inline"`

	// The ARN of the VPC peering connection.
	//
	// +optional
	PeeringConnectionArn string `json:"peeringConnectionArn,omitempty"`

	// The ID of the VPC peering connection.
	//
	// +optional
	PeeringConnectionId string `json:"peeringConnectionId,omitempty"`

	// Is the peering connection ready
	//
	// +optional
	Ready bool `json:"ready,omitempty"`
}

func (*PeeringStatus) DeepCopy

func (in *PeeringStatus) DeepCopy() *PeeringStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringStatus.

func (*PeeringStatus) DeepCopyInto

func (in *PeeringStatus) DeepCopyInto(out *PeeringStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PrefixList

type PrefixList struct {
	// If this is a blackhole route
	//
	// +optional
	// +default=false
	Blackhole bool `json:"blackhole"`

	// The ID of the prefix list.
	//
	// +optional
	Id string `json:"id"`

	// Outbound route
	//
	// This places it in the ManagedPrefixList attached
	// to the outbound route table
	//
	// +optional
	// +default=true
	Outbound bool `json:"outbound"`

	ManagedPrefixListSubParameters `json:",inline"`
}

+

func (*PrefixList) DeepCopy

func (in *PrefixList) DeepCopy() *PrefixList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrefixList.

func (*PrefixList) DeepCopyInto

func (in *PrefixList) DeepCopyInto(out *PrefixList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RAM

type RAM struct {
	// Is RAM enabled
	//
	// +optional
	// +default=false
	Enabled bool `json:"enabled"`

	ram.RamParameters `json:",inline"`
}

Resource Access Management (RAM)

func (*RAM) DeepCopy

func (in *RAM) DeepCopy() *RAM

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RAM.

func (*RAM) DeepCopyInto

func (in *RAM) DeepCopyInto(out *RAM)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouteTableId

type RouteTableId string

RouteTableId is a string type that represents the unique identifier for a route table.

+kubebuilder:validation:Type=string +kubebuilder:validation:Pattern="^rtb-[a-z0-9]{8,17}$"

type ShortAz

type ShortAz string

A single character representation of the short name of an availability zone. For example, "a" for "eu-west-1a".

+kubebuilder:validation:Type=string +kubebuilder:validation:Pattern="^[a-z]$"

type SubnetId

type SubnetId string

SubnetId is a string type that represents the unique identifier for a subnet.

+kubebuilder:validation:Type=string +kubebuilder:validation:Pattern="^subnet-[a-z0-9]{8,17}$"

type SubnetSet

type SubnetSet struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   SubnetSetSpec   `json:"spec"`
	Status SubnetSetStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +genclient +genclient:nonNamespaced

+kubebuilder:resource:scope=Cluster,categories=crossplane +kubebuilder:subresource:status +kubebuilder:resource:shortName=sn +crossbuilder:generate:xrd:claimNames:kind=SubnetSetClaim,plural=subnetsetclaims +crossbuilder:generate:xrd:defaultCompositionRef:name=subnetset +crossbuilder:generate:xrd:enforcedCompositionRef:name=subnetset

func (*SubnetSet) DeepCopy

func (in *SubnetSet) DeepCopy() *SubnetSet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetSet.

func (*SubnetSet) DeepCopyInto

func (in *SubnetSet) DeepCopyInto(out *SubnetSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SubnetSet) DeepCopyObject

func (in *SubnetSet) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SubnetSetList

type SubnetSetList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SubnetSet `json:"items"`
}

+kubebuilder:object:root=true

func (*SubnetSetList) DeepCopy

func (in *SubnetSetList) DeepCopy() *SubnetSetList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetSetList.

func (*SubnetSetList) DeepCopyInto

func (in *SubnetSetList) DeepCopyInto(out *SubnetSetList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SubnetSetList) DeepCopyObject

func (in *SubnetSetList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SubnetSetParameters

type SubnetSetParameters struct {
	// The index of the application that the subnet is being created for.
	//
	// This is used for complex applications that require multiple subnet groups
	// Normally leave this on the default.
	//
	// +optional
	// +default=""
	AppIndex string `json:"appIndex,omitempty"`

	// Region is the region you'd like the VPC to be created in.
	//
	// +immutable
	// +required
	// +kubebuilder:validation:Pattern="^[a-z]{2}-[a-z]+-[0-9]$"
	// +kubebuilder:validation:Required
	Region string `json:"region"`

	// Subnets is a map of availability zones and subnet cidr blocks.
	//
	// +required
	Subnets map[ShortAz]*Cidr `json:"subnets"`

	// Tags is a set of tags to apply to resources in the subnetset
	//
	// +optional
	// +structType=atomic
	Tags TagSet `json:"tags,omitempty"`

	// Type is the type of VPC Subnet to create.
	//
	// +optional
	// +kubebuilder:validation:Enum=public;private
	// +kubebuilder:default=public
	// +kubebuilder:validation:Required
	Type string `json:"type,omitempty"`

	// VpcId is the unique identifier for the VPC.
	//
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="vpcId is immutable"
	VpcId VpcId `json:"vpcId"`
}

func (*SubnetSetParameters) DeepCopy

func (in *SubnetSetParameters) DeepCopy() *SubnetSetParameters

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetSetParameters.

func (*SubnetSetParameters) DeepCopyInto

func (in *SubnetSetParameters) DeepCopyInto(out *SubnetSetParameters)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SubnetSetSpec

type SubnetSetSpec struct {
	xpv1.ResourceSpec   `json:",inline"`
	SubnetSetParameters `json:",inline"`
}

func (*SubnetSetSpec) DeepCopy

func (in *SubnetSetSpec) DeepCopy() *SubnetSetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetSetSpec.

func (*SubnetSetSpec) DeepCopyInto

func (in *SubnetSetSpec) DeepCopyInto(out *SubnetSetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SubnetSetStatus

type SubnetSetStatus struct {
	xpv1.ConditionedStatus `json:",inline"`

	// VpcID is the unique identifier for the VPC.
	//
	// +optional
	VpcID VpcId `json:"vpcId,omitempty"`

	// Subnets is a map of subnets discovered by the composite.
	//
	// +optional
	// +structType=atomic
	Subnets map[AvailabilityZone]*SubnetId `json:"subnets,omitempty"`

	// Is the subnetset ready
	//
	// +optional
	Ready bool `json:"ready,omitempty"`

	// RouteTables is a map of route tables discovered by the composite.
	//
	// +optional
	// +structType=atomic
	RouteTables map[AvailabilityZone]*RouteTableId `json:"routeTables,omitempty"`
}

func (*SubnetSetStatus) DeepCopy

func (in *SubnetSetStatus) DeepCopy() *SubnetSetStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetSetStatus.

func (*SubnetSetStatus) DeepCopyInto

func (in *SubnetSetStatus) DeepCopyInto(out *SubnetSetStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TagSet

type TagSet struct {

	// A map of tags to apply to all resources in the subnetset.
	//
	// +optional
	// +mapType=atomic
	// +kubebuilder:validation:MaxProperties=50
	All map[string]string `json:"all,omitempty"`

	// Subnet is a map of tags to apply only to the subnet resources
	//
	// +optional
	// +mapType=atomic
	// +kubebuilder:validation:MaxProperties=50
	Subnet map[string]string `json:"subnet,omitempty"`
}

TagSet is a set of tags to apply to resources in the subnetset.

func (*TagSet) DeepCopy

func (in *TagSet) DeepCopy() *TagSet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TagSet.

func (*TagSet) DeepCopyInto

func (in *TagSet) DeepCopyInto(out *TagSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TgwPeerWrapper

type TgwPeerWrapper struct {
	TransitGatewayPeer `json:",inline"`

	// Name of the transit gateway to peer with
	//
	// +required
	Name string `json:"name"`
}

func (*TgwPeerWrapper) DeepCopy

func (in *TgwPeerWrapper) DeepCopy() *TgwPeerWrapper

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TgwPeerWrapper.

func (*TgwPeerWrapper) DeepCopyInto

func (in *TgwPeerWrapper) DeepCopyInto(out *TgwPeerWrapper)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TgwVpcDetailsWrapper

type TgwVpcDetailsWrapper struct {
	TransitGatewayVpc `json:",inline"`

	// AllowPublic specifies if the VPC peering connections should be allowed to
	// be linked to the public subnets
	//
	// +optional
	// +default=true
	AllowPublic bool `json:"allowPublic"`
}

func (*TgwVpcDetailsWrapper) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TgwVpcDetailsWrapper.

func (*TgwVpcDetailsWrapper) DeepCopyInto

func (in *TgwVpcDetailsWrapper) DeepCopyInto(out *TgwVpcDetailsWrapper)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TgwWrappedVpcWithProviderConfig

type TgwWrappedVpcWithProviderConfig struct {
	TransitGatewayVpcWithProviderConfig `json:",inline"`

	// AllowPublic specifies if the VPC peering connections should be allowed to
	// be linked to the public subnets
	//
	// +optional
	// +default=true
	AllowPublic bool `json:"allowPublic"`
}

TgwWrappedVpcWithProviderConfig defines the parameters for creating a VPC with the option of peered subnets.

func (*TgwWrappedVpcWithProviderConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TgwWrappedVpcWithProviderConfig.

func (*TgwWrappedVpcWithProviderConfig) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TransitGateway

type TransitGateway struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TransitGatewaySpec   `json:"spec"`
	Status TransitGatewayStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +genclient +genclient:nonNamespaced

+kubebuilder:resource:scope=Cluster,categories=crossplane +kubebuilder:subresource:status +kubebuilder:resource:shortName=tgw +crossbuilder:generate:xrd:claimNames:kind=TransitGatewayClaim,plural=transitgatewayclaims +crossbuilder:generate:xrd:defaultCompositionRef:name=transitgateway +crossbuilder:generate:xrd:enforcedCompositionRef:name=transitgateway

func (*TransitGateway) DeepCopy

func (in *TransitGateway) DeepCopy() *TransitGateway

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransitGateway.

func (*TransitGateway) DeepCopyInto

func (in *TransitGateway) DeepCopyInto(out *TransitGateway)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TransitGateway) DeepCopyObject

func (in *TransitGateway) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TransitGatewayList

type TransitGatewayList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []TransitGateway `json:"items"`
}

+kubebuilder:object:root=true

func (*TransitGatewayList) DeepCopy

func (in *TransitGatewayList) DeepCopy() *TransitGatewayList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransitGatewayList.

func (*TransitGatewayList) DeepCopyInto

func (in *TransitGatewayList) DeepCopyInto(out *TransitGatewayList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TransitGatewayList) DeepCopyObject

func (in *TransitGatewayList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TransitGatewayNamedVpc

type TransitGatewayNamedVpc struct {
	// The name of the VPC
	//
	// +required
	Name string `json:"name"`

	TransitGatewayVpc `json:",inline"`
}

func (*TransitGatewayNamedVpc) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransitGatewayNamedVpc.

func (*TransitGatewayNamedVpc) DeepCopyInto

func (in *TransitGatewayNamedVpc) DeepCopyInto(out *TransitGatewayNamedVpc)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TransitGatewayParameters

type TransitGatewayParameters struct {
	// Amazon side ASN. Private autonomous system number (ASN) for
	// the Amazon side of a BGP session.
	//
	// +optional
	AmazonSideAsn int64 `json:"amazonSideAsn,omitempty"`

	// Appliance mode support. Indicates whether appliance mode support is enabled.
	//
	// +optional
	// +kube:validation:Enum=disable;enable
	// +default=disable
	ApplianceModeSupport string `json:"applianceModeSupport,omitempty"`

	// Auto accept shared attachments. Indicates whether there is automatic
	// acceptance of attachment requests.
	//
	// +optional
	// +kube:validation:Enum=disable;enable
	// +default=enable
	AutoAcceptSharedAttachments string `json:"autoAcceptSharedAttachments,omitempty"`

	// Create the policy table.
	//
	// +optional
	// +default=false
	CreatePolicyTable bool `json:"createPolicyTable,omitempty"`

	// Default route table association. Indicates whether resource attachments
	// are automatically associated with the default association route table.
	//
	// +optional
	// +default=true
	DefaultRouteTableAssociation bool `json:"defaultRouteTableAssociation,omitempty"`

	// Default route table propagation. Indicates whether resource attachments
	// automatically propagate routes to the default propagation route table.
	//
	// +optional
	// +default=true
	DefaultRouteTablePropagation bool `json:"defaultRouteTablePropagation,omitempty"`

	// Dns support. Indicates whether DNS support is enabled.
	//
	// +optional
	// +kube:validation:Enum=disable;enable
	// +default=enable
	DnsSupport string `json:"dnsSupport,omitempty"`

	// If IPv6 support is enabled for the transit gateway.
	//
	// +optional
	// +kube:validation:Enum=disable;enable
	// +default=disable
	Ipv6Support string `json:"ipv6Support,omitempty"`

	// Multicast support. Indicates whether multicast is enabled on the transit gateway.
	//
	// Currently unused in this composition
	//
	// +optional
	// +kube:validation:Enum=disable;enable
	// +default=disable
	MulticastSupport string `json:"multicastSupport,omitempty"`

	// TransitGatewayDefaultRouteTableAssociation. Indicates whether resource
	// attachments are automatically associated with the default association route table.
	//
	// +optional
	// +kube:validation:Enum=disable;enable
	// +default=disable
	TransitGatewayDefaultRouteTableAssociation string `json:"transitGatewayDefaultRouteTableAssociation,omitempty"`

	// TransitGatewayDefaultRouteTablePropagation. Indicates whether resource
	// attachments automatically propagate routes to the default propagation route table.
	//
	// +optional
	// +kube:validation:Enum=disable;enable
	// +default=disable
	TransitGatewayDefaultRouteTablePropagation string `json:"transitGatewayDefaultRouteTablePropagation,omitempty"`

	// The tags for the transit gateway.
	//
	// +optional
	// +mapType=atomic
	// +kubebuilder:validation:MaxProperties=50
	Tags map[string]string `json:"tags,omitempty"`

	// Vpn ecmp support. Indicates whether Equal Cost Multipath Protocol support is enabled.
	//
	// +optional
	// +kube:validation:Enum=disable;enable
	// +default=enable
	VpnEcmpSupport string `json:"vpnEcmpSupport,omitempty"`
}

func (*TransitGatewayParameters) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransitGatewayParameters.

func (*TransitGatewayParameters) DeepCopyInto

func (in *TransitGatewayParameters) DeepCopyInto(out *TransitGatewayParameters)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TransitGatewayPeer

type TransitGatewayPeer struct {
	// The Account ID this VPC is associated with
	//
	// +optional
	AccountId string `json:"accountId"`

	// Is Dynamic routing support enabled on this peer
	//
	// +optional
	// +default=false
	DynamicRouting bool `json:"dynamicRouting"`

	// The ID of the gateway to peer with
	//
	// +required
	Id string `json:"id"`

	// The ID of the remote route table
	//
	// +required
	RouteTableId string `json:"routeTableId"`

	// The name of the peer
	//
	// +required
	Name string `json:"name"`

	// ManagedPrefixList contains CIDRs for networks that can be traversed
	// via this transit gateway.
	//
	// +optional
	PrefixLists []PrefixList `json:"managedPrefixList,omitempty"`

	// ProviderConfigRef references a ProviderConfig used to create this
	// resource
	//
	// If not provided, will fall back to the top-level ProviderConfigRef
	//
	// Required for cross account transit gateway peering
	//
	// +optional
	ProviderConfigRef xpv1.Reference `json:"providerConfigRef"`

	// Region the remote transit gateway is located in
	//
	// +optional
	Region string `json:"region"`
}

func (*TransitGatewayPeer) DeepCopy

func (in *TransitGatewayPeer) DeepCopy() *TransitGatewayPeer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransitGatewayPeer.

func (*TransitGatewayPeer) DeepCopyInto

func (in *TransitGatewayPeer) DeepCopyInto(out *TransitGatewayPeer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TransitGatewaySpec

type TransitGatewaySpec struct {
	xpv1.ResourceSpec `json:",inline"`

	// Contains details about the local VPC (Where the TGW will be built)
	//
	// +optional
	LocalVpc TransitGatewayVpc `json:"localVpc,omitempty"`

	// Resource Access Management (RAM)
	//
	// +optional
	RAM RAM `json:"ram,omitempty"`

	// Contains details about the remote VPCs
	//
	// +optional
	RemoteVpcs []TransitGatewayVpcWithProviderConfig `json:"remoteVpcs,omitempty"`

	// Peers defines other transit gateways that this transit gateway
	// should peer with
	//
	// +optional
	Peers []TransitGatewayPeer `json:"peers,omitempty"`

	// TransitGatewayParameters defines the desired state of TransitGateway
	TransitGatewayParameters `json:",inline"`
}

func (*TransitGatewaySpec) DeepCopy

func (in *TransitGatewaySpec) DeepCopy() *TransitGatewaySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransitGatewaySpec.

func (*TransitGatewaySpec) DeepCopyInto

func (in *TransitGatewaySpec) DeepCopyInto(out *TransitGatewaySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TransitGatewayStatus

type TransitGatewayStatus struct {
	xpv1.ConditionedStatus `json:",inline"`

	// map of local attachments
	//
	// +optional
	LocalAttachmentIds map[string]string `json:"localAttachmentIds,omitempty"`

	// Is the transit gateway ready
	//
	// +optional
	Ready bool `json:"ready,omitempty"`

	// map of remote attachments
	//
	// +optional
	RemoteAttachmentIds map[string]string `json:"remoteAttachmentIds,omitempty"`

	// Any prefix list ARNs that are shared
	//
	// +optional
	SharedPrefixLists []string `json:"sharedPrefixLists,omitempty"`

	// The ARN of the Transit Gateway.
	//
	// +optional
	TgwArn string `json:"tgwArn,omitempty"`

	// The ID of the Transit Gateway.
	//
	// +optional
	TgwId string `json:"tgwId,omitempty"`

	// The ID of the route table associated with the Transit Gateway.
	//
	// +optional
	TgwRouteTableId string `json:"tgwRouteTableId,omitempty"`

	// If Resource Access Management is enabled, the ID of the RAM share
	//
	// +optional
	RamShareId string `json:"ramShareId,omitempty"`

	// If Resource Access Management is enabled, the ARN of the RAM share
	//
	// +optional
	RamShareArn string `json:"ramShareArn,omitempty"`
}

func (*TransitGatewayStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransitGatewayStatus.

func (*TransitGatewayStatus) DeepCopyInto

func (in *TransitGatewayStatus) DeepCopyInto(out *TransitGatewayStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TransitGatewayVpc

type TransitGatewayVpc struct {
	// Account ID the VPC is in
	//
	// +optional
	AccountId string `json:"accountId"`

	// Cidr blocks for the VPC
	//
	// +optional
	CidrBlocks []Cidr `json:"cidrBlocks"`

	// Prefix lists for the VPC
	//
	// +optional
	PrefixLists []PrefixList `json:"prefixLists"`

	// Region this VPC is located in
	//
	// +optional
	Region string `json:"region"`

	// Route table ids in the VPC
	//
	// +optional
	RouteTableIds []RouteTableId `json:"routeTableIds"`

	// SubnetIds in the VPC
	//
	// +optional
	SubnetIds []SubnetId `json:"subnetIds"`

	// The ID of the VPC
	//
	// +optional
	VpcId VpcId `json:"vpcId"`
}

func (*TransitGatewayVpc) DeepCopy

func (in *TransitGatewayVpc) DeepCopy() *TransitGatewayVpc

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransitGatewayVpc.

func (*TransitGatewayVpc) DeepCopyInto

func (in *TransitGatewayVpc) DeepCopyInto(out *TransitGatewayVpc)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TransitGatewayVpcWithProviderConfig

type TransitGatewayVpcWithProviderConfig struct {
	TransitGatewayNamedVpc `json:",inline"`

	// ProviderConfigRef references a ProviderConfig used to create this
	// resource
	//
	// If not provided, will fall back to the top-level ProviderConfigRef
	//
	// Required for cross account VPCs
	// Should not be set for same account VPCs unless restricted by
	// IAM
	//
	// +optional
	ProviderConfigRef xpv1.Reference `json:"providerConfigRef"`
}

func (*TransitGatewayVpcWithProviderConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransitGatewayVpcWithProviderConfig.

func (*TransitGatewayVpcWithProviderConfig) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TransitGatewayWrapper

type TransitGatewayWrapper struct {
	TransitGatewayParameters `json:",inline"`

	TgwVpcDetailsWrapper `json:",inline"`

	// Enabled specifies if the transit gateway is enabled.
	//
	// +optional
	// +default=false
	Enabled bool `json:"enabled"`

	// Peers is a list of transit gateway peers to connect to
	//
	// +optional
	Peers []TgwPeerWrapper `json:"peers"`

	// Prefix lists for the VPC
	//
	// +optional
	// +listType=atomic
	PrefixList []PrefixList `json:"prefixList"`

	// RemoteVpcs is a list of VPCs build a transit gateway between
	//
	// +optional
	RemoteVpcs []TgwWrappedVpcWithProviderConfig `json:"remoteVpcs"`
}

func (*TransitGatewayWrapper) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransitGatewayWrapper.

func (*TransitGatewayWrapper) DeepCopyInto

func (in *TransitGatewayWrapper) DeepCopyInto(out *TransitGatewayWrapper)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VpcDetails

type VpcDetails struct {
	// Name of the VPC.
	//
	// +required
	Name string `json:"name"`

	// The ID of the VPC.
	//
	// +required
	VpcId VpcId `json:"vpcId"`

	// The CIDR blocks for the VPC.
	//
	// +required
	CidrBlock []Cidr `json:"cidrBlocks"`

	// ProviderConfigRef is a reference to a provider configuration
	// for managing connections to this vpc
	//
	// +optional
	ProviderConfigRef *xpv1.Reference `json:"providerConfigRef,omitempty"`

	// Region is the region in which the VPC is located.
	//
	// Required if local vpc
	//
	// +optional
	Region string `json:"region"`

	// The route table ids in the VPC.
	//
	// +required
	RouteTableIds []RouteTableId `json:"routeTableIds"`
}

VpcDetails contains the details of a VPC.

func (*VpcDetails) DeepCopy

func (in *VpcDetails) DeepCopy() *VpcDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VpcDetails.

func (*VpcDetails) DeepCopyInto

func (in *VpcDetails) DeepCopyInto(out *VpcDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VpcId

type VpcId string

VpcId is a string type that represents the unique identifier for a VPC.

+kubebuilder:validation:Type=string +kubebuilder:validation:Pattern="^vpc-[a-z0-9]{8,17}$"

type VpcPeer

type VpcPeer struct {
	// Name specifies the name of the VPC to peer with.
	//
	// +required
	Name string `json:"name"`

	// ProviderConfigRef specifies the provider config to use for the peering
	// connection.
	//
	// +optional
	ProviderConfigRef xpv1.Reference `json:"providerConfigRef"`

	// Region specifies the region the VPC is found in.
	//
	// If not defined, the region of the VPC will be assumed to be the same as
	// the region of the peered VPC.
	//
	// +optional
	Region string `json:"region"`
}

VpcPeer defines the parameters for peering with a VPC.

func (*VpcPeer) DeepCopy

func (in *VpcPeer) DeepCopy() *VpcPeer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VpcPeer.

func (*VpcPeer) DeepCopyInto

func (in *VpcPeer) DeepCopyInto(out *VpcPeer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VpcPeering

type VpcPeering struct {
	// AllowPublic specifies if the VPC peering connections should be allowed to
	//
	// be linked to the public subnets
	// Defaults to false
	//
	// +optional
	// +default=false
	AllowPublic bool `json:"allowPublic"`

	// Enabled specifies if VPC peering is enabled.
	//
	// +optional
	// +default=false
	Enabled bool `json:"enabled"`

	// GroupBy specifies the key to group the remote subnets by
	//
	// +optional
	GroupBy string `json:"groupBy"`

	// RemoteVpcs is a list of VPCs to peer with.
	//
	// +listType=atomic
	// +kubebuilder:validation:MaxItems=125
	// +optional
	RemoteVpcs []WrappedVpcPeer `json:"remoteVpcs"`
}

VpcPeering defines the parameters for VPC peering.

If enabled, the VPC will be peered with the VPCs specified in the `remoteVpcs` field.

func (*VpcPeering) DeepCopy

func (in *VpcPeering) DeepCopy() *VpcPeering

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VpcPeering.

func (*VpcPeering) DeepCopyInto

func (in *VpcPeering) DeepCopyInto(out *VpcPeering)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WrappedVpcPeer

type WrappedVpcPeer struct {
	VpcPeer `json:",inline"`

	// AllowPublic specifies if the VPC peering connections should be allowed to
	// be linked to the public subnets
	//
	// +optional
	// +default=true
	AllowPublic bool `json:"allowPublic"`
}

func (*WrappedVpcPeer) DeepCopy

func (in *WrappedVpcPeer) DeepCopy() *WrappedVpcPeer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WrappedVpcPeer.

func (*WrappedVpcPeer) DeepCopyInto

func (in *WrappedVpcPeer) DeepCopyInto(out *WrappedVpcPeer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL