v1

package
v1.1.2 Latest Latest
Warning

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

Go to latest
Published: Aug 19, 2024 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package v1 contains API Schema definitions for the meridio v1 API group +kubebuilder:object:generate=true +groupName=meridio.nordix.org

Index

Constants

View Source
const (
	NSMVlan = "nsm-vlan"
	NAD     = "network-attachment"
)
View Source
const (
	StatelessLB = "stateless-lb"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "meridio.nordix.org", Version: "v1"}

	// 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
)

Functions

func TransportProtocolsToStrings

func TransportProtocolsToStrings(proto []TransportProtocol) []string

Types

type Attractor

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

	Spec   AttractorSpec   `json:"spec,omitempty"`
	Status AttractorStatus `json:"status,omitempty"`
}

Attractor is the Schema for the attractors API. It defines how traffic are attracted and lead into the K8s cluster. This includes which external interface to consume. The Attractor is instantiated as a set of pods running frontend functionality.

func (*Attractor) DeepCopy

func (in *Attractor) DeepCopy() *Attractor

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

func (*Attractor) DeepCopyInto

func (in *Attractor) DeepCopyInto(out *Attractor)

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

func (*Attractor) DeepCopyObject

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

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

func (*Attractor) GroupKind

func (r *Attractor) GroupKind() schema.GroupKind

func (*Attractor) GroupResource

func (r *Attractor) GroupResource() schema.GroupResource

func (*Attractor) SetupWebhookWithManager

func (r *Attractor) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Attractor) ValidateCreate

func (r *Attractor) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Attractor) ValidateDelete

func (r *Attractor) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Attractor) ValidateUpdate

func (r *Attractor) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type AttractorList

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

AttractorList contains a list of Attractor

func (*AttractorList) DeepCopy

func (in *AttractorList) DeepCopy() *AttractorList

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

func (*AttractorList) DeepCopyInto

func (in *AttractorList) DeepCopyInto(out *AttractorList)

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

func (*AttractorList) DeepCopyObject

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

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

type AttractorSpec

type AttractorSpec struct {

	// The number of front-end pods. (The load-balancer is bundled with front-end currently)
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`

	// Reference to the composite conduits
	Composites []string `json:"composites"`

	// gateways that attractor expect to use
	// +optional
	Gateways []string `json:"gateways,omitempty"`

	// vips that attractor will announce to the gateways when possible
	// +optional
	Vips []string `json:"vips,omitempty"`

	// defines the interface information that attractor use
	Interface InterfaceSpec `json:"interface"`
}

AttractorSpec defines the desired state of Attractor

func (*AttractorSpec) DeepCopy

func (in *AttractorSpec) DeepCopy() *AttractorSpec

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

func (*AttractorSpec) DeepCopyInto

func (in *AttractorSpec) DeepCopyInto(out *AttractorSpec)

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

type AttractorStatus

type AttractorStatus struct {
}

AttractorStatus defines the observed state of Attractor

func (*AttractorStatus) DeepCopy

func (in *AttractorStatus) DeepCopy() *AttractorStatus

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

func (*AttractorStatus) DeepCopyInto

func (in *AttractorStatus) DeepCopyInto(out *AttractorStatus)

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

type BfdSpec

type BfdSpec struct {
	// BFD monitoring.
	// Valid values are:
	// - false: no BFD monitoring;
	// - true: turns on the BFD monitoring.
	// When left empty, there is no BFD monitoring.
	// +optional
	Switch *bool `json:"switch,omitempty"`

	// Min-tx timer of bfd session. Please refere to BFD material to understand what this implies.
	// The value must be a valid duration format. For example, 300ms, 90s, 1m, 1h.
	// The duration will be rounded by millisecond.
	// +optional
	MinTx string `json:"min-tx,omitempty"`

	// Min-rx timer of bfd session. Please refere to BFD material to understand what this implies.
	// The value must be a valid duration format. For example, 300ms, 90s, 1m, 1h.
	// The duration will be rounded by millisecond.
	// +optional
	MinRx string `json:"min-rx,omitempty"`

	// Multiplier of bfd session.
	// When this number of bfd packets failed to receive, bfd session will go down.
	// +optional
	Multiplier *uint16 `json:"multiplier,omitempty"`
}

Bfd defines the parameters to configure the BFD session The static gateways shares the same interface shall define the same bfd configuration

func (*BfdSpec) DeepCopy

func (in *BfdSpec) DeepCopy() *BfdSpec

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

func (*BfdSpec) DeepCopyInto

func (in *BfdSpec) DeepCopyInto(out *BfdSpec)

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

type BgpAuth

type BgpAuth struct {

	// Name of the BGP authentication key, used internally as a reference.
	// KeyName is a key in the data section of a Secret. The associated value in
	// the Secret is the password (pre-shared key) to be used for authentication.
	// Must consist of alphanumeric characters, ".", "-" or "_".
	KeyName string `json:"key-name,omitempty"`

	// Name of the kubernetes Secret containing the password (pre-shared key)
	// that can be looked up based on KeyName.
	// Must be a valid lowercase RFC 1123 subdomain. (Must consist of lower case alphanumeric
	// characters, '-' or '.', and must start and end with an alphanumeric character.)
	KeySource string `json:"key-source,omitempty"`
}

BgpAuth defines the parameters to configure BGP authentication

func (*BgpAuth) DeepCopy

func (in *BgpAuth) DeepCopy() *BgpAuth

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

func (*BgpAuth) DeepCopyInto

func (in *BgpAuth) DeepCopyInto(out *BgpAuth)

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

type BgpSpec

type BgpSpec struct {
	// The ASN number of the Gateway Router
	RemoteASN *uint32 `json:"remote-asn,omitempty"`

	// The ASN number of the system where the Attractor FrontEnds locates
	LocalASN *uint32 `json:"local-asn,omitempty"`

	// BFD monitoring of BGP session.
	// +optional
	BFD BfdSpec `json:"bfd,omitempty"`

	// Hold timer of the BGP session. Please refere to BGP material to understand what this implies.
	// The value must be a valid duration format. For example, 90s, 1m, 1h.
	// The duration will be rounded by second
	// Minimum duration is 3s.
	// +optional
	HoldTime string `json:"hold-time,omitempty"`

	// BGP listening port of the Gateway Router.
	// +optional
	RemotePort *uint16 `json:"remote-port,omitempty"`

	// BGP listening port of the Attractor FrontEnds.
	// +optional
	LocalPort *uint16 `json:"local-port,omitempty"`

	// BGP authentication (RFC2385).
	// +optional
	Auth *BgpAuth `json:"auth,omitempty"`
}

BgpSpec defines the parameters to set up a BGP session

func (*BgpSpec) DeepCopy

func (in *BgpSpec) DeepCopy() *BgpSpec

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

func (*BgpSpec) DeepCopyInto

func (in *BgpSpec) DeepCopyInto(out *BgpSpec)

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

type Conduit

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

	Spec   ConduitSpec   `json:"spec,omitempty"`
	Status ConduitStatus `json:"status,omitempty"`
}

Conduit is the Schema for the conduits API. It defines a logical/physical traffic-path through the k8s cluster for processing traffic streams

func (*Conduit) DeepCopy

func (in *Conduit) DeepCopy() *Conduit

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

func (*Conduit) DeepCopyInto

func (in *Conduit) DeepCopyInto(out *Conduit)

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

func (*Conduit) DeepCopyObject

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

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

func (*Conduit) GroupKind

func (r *Conduit) GroupKind() schema.GroupKind

func (*Conduit) GroupResource

func (r *Conduit) GroupResource() schema.GroupResource

func (*Conduit) SetupWebhookWithManager

func (r *Conduit) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Conduit) ValidateCreate

func (r *Conduit) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Conduit) ValidateDelete

func (r *Conduit) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Conduit) ValidateUpdate

func (r *Conduit) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type ConduitList

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

ConduitList contains a list of Conduit

func (*ConduitList) DeepCopy

func (in *ConduitList) DeepCopy() *ConduitList

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

func (*ConduitList) DeepCopyInto

func (in *ConduitList) DeepCopyInto(out *ConduitList)

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

func (*ConduitList) DeepCopyObject

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

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

type ConduitSpec

type ConduitSpec struct {
	// +kubebuilder:default=stateless-lb
	// +kubebuilder:validation:Enum=stateless-lb
	// Type is the type of network service for this conduit
	Type string `json:"type"`

	// List of destination ports to NAT.
	DestinationPortNats []PortNatSpec `json:"destination-port-nats,omitempty"`
}

ConduitSpec defines the desired state of Conduit

func (*ConduitSpec) DeepCopy

func (in *ConduitSpec) DeepCopy() *ConduitSpec

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

func (*ConduitSpec) DeepCopyInto

func (in *ConduitSpec) DeepCopyInto(out *ConduitSpec)

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

type ConduitStatus

type ConduitStatus struct {
}

ConduitStatus defines the observed state of Conduit

func (*ConduitStatus) DeepCopy

func (in *ConduitStatus) DeepCopy() *ConduitStatus

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

func (*ConduitStatus) DeepCopyInto

func (in *ConduitStatus) DeepCopyInto(out *ConduitStatus)

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

type ConfigStatus

type ConfigStatus string

ConfigStatus describes the status of a meridio operator resource to indicate if the resource is ready to use or not

const (
	// Normally when a resouce is not processed by the corresponding controller, the status will be NoStatus
	NoPhase ConfigStatus = ""

	// If the validation of a resource does not pass in the controller, the status will be Error
	Error ConfigStatus = "error"

	// Normally when a resource is not created in a correct sequence, the status will be Disengaged
	Disengaged ConfigStatus = "disengaged"

	// Engaged indicates the resouce is readly to be used.
	Engaged ConfigStatus = "engaged"
)

type Flow

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

	Spec   FlowSpec   `json:"spec,omitempty"`
	Status FlowStatus `json:"status,omitempty"`
}

Flow is the Schema for the flows API. It defines how ingress traffic flows are classified and collected into streams

func (*Flow) DeepCopy

func (in *Flow) DeepCopy() *Flow

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

func (*Flow) DeepCopyInto

func (in *Flow) DeepCopyInto(out *Flow)

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

func (*Flow) DeepCopyObject

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

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

func (*Flow) GroupKind

func (r *Flow) GroupKind() schema.GroupKind

func (*Flow) GroupResource

func (r *Flow) GroupResource() schema.GroupResource

func (*Flow) SetupWebhookWithManager

func (r *Flow) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Flow) ValidateCreate

func (r *Flow) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Flow) ValidateDelete

func (r *Flow) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Flow) ValidateUpdate

func (r *Flow) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type FlowList

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

FlowList contains a list of Flow

func (*FlowList) DeepCopy

func (in *FlowList) DeepCopy() *FlowList

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

func (*FlowList) DeepCopyInto

func (in *FlowList) DeepCopyInto(out *FlowList)

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

func (*FlowList) DeepCopyObject

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

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

type FlowSpec

type FlowSpec struct {
	// Stream that is to include traffic classified by this flow
	// +optional
	Stream string `json:"stream,omitempty"`

	// Vips that this flow will send traffic to.
	// The vips should not have overlaps.
	Vips []string `json:"vips"`

	// Source subnets allowed in the flow.
	// The subnets should not have overlaps.
	SourceSubnets []string `json:"source-subnets,omitempty"`

	// Source port ranges allowed in the flow.
	// The ports should not have overlaps.
	// Ports can be defined by:
	// - a single port, such as 3000;
	// - a port range, such as 3000-4000;
	// - "any", which is equivalent to port range 0-65535.
	SourcePorts []string `json:"source-ports,omitempty"`

	// Destination port ranges allowed in the flow.
	// The ports should not have overlaps.
	// Ports can be defined by:
	// - a single port, such as 3000;
	// - a port range, such as 3000-4000;
	// - "any", which is equivalent to port range 0-65535.
	DestinationPorts []string `json:"destination-ports,omitempty"`

	// Protocols allowed in this flow.
	// The protocols should not have overlaps.
	Protocols []TransportProtocol `json:"protocols"`

	// Priority of the flow
	Priority int32 `json:"priority"`

	// ByteMatches matches bytes in the L4 header in the flow.
	// +optional
	ByteMatches []string `json:"byte-matches,omitempty"`
}

FlowSpec defines the desired state of Flow

func (*FlowSpec) DeepCopy

func (in *FlowSpec) DeepCopy() *FlowSpec

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

func (*FlowSpec) DeepCopyInto

func (in *FlowSpec) DeepCopyInto(out *FlowSpec)

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

type FlowStatus

type FlowStatus struct {
}

FlowStatus defines the observed state of Flow

func (*FlowStatus) DeepCopy

func (in *FlowStatus) DeepCopy() *FlowStatus

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

func (*FlowStatus) DeepCopyInto

func (in *FlowStatus) DeepCopyInto(out *FlowStatus)

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

type Gateway

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

	Spec   GatewaySpec   `json:"spec,omitempty"`
	Status GatewayStatus `json:"status,omitempty"`
}

Gateway is the Schema for the gateways API. It defines protocol settings enabling communication with Gateway Router through which traffic is to be conveyed.

func (*Gateway) DeepCopy

func (in *Gateway) DeepCopy() *Gateway

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

func (*Gateway) DeepCopyInto

func (in *Gateway) DeepCopyInto(out *Gateway)

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

func (*Gateway) DeepCopyObject

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

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

func (*Gateway) GroupKind

func (r *Gateway) GroupKind() schema.GroupKind

func (*Gateway) GroupResource

func (r *Gateway) GroupResource() schema.GroupResource

func (*Gateway) SetupWebhookWithManager

func (r *Gateway) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Gateway) ValidateCreate

func (r *Gateway) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Gateway) ValidateDelete

func (r *Gateway) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Gateway) ValidateUpdate

func (r *Gateway) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type GatewayList

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

GatewayList contains a list of Gateway

func (*GatewayList) DeepCopy

func (in *GatewayList) DeepCopy() *GatewayList

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

func (*GatewayList) DeepCopyInto

func (in *GatewayList) DeepCopyInto(out *GatewayList)

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

func (*GatewayList) DeepCopyObject

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

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

type GatewaySpec

type GatewaySpec struct {
	// Address of the Gateway Router
	Address string `json:"address"`

	// The routing choice between the Gateway Router and Attractor FrontEnds.
	// +optional
	Protocol string `json:"protocol,omitempty"`

	// Parameters to set up the BGP session to specified Address.
	// If the Protocol is static, this property must be empty.
	// If the Protocol is bgp, the minimal parameters to be defined in bgp properties
	// are RemoteASN and LocalASN
	// +optional
	Bgp BgpSpec `json:"bgp,omitempty"`

	// Parameters to work with the static routing configured on the Gateway Router with specified Address.
	// If the Protocol is bgp, this property must be empty.
	// +optional
	Static StaticSpec `json:"static,omitempty"`
}

GatewaySpec defines the desired state of Gateway

func (*GatewaySpec) DeepCopy

func (in *GatewaySpec) DeepCopy() *GatewaySpec

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

func (*GatewaySpec) DeepCopyInto

func (in *GatewaySpec) DeepCopyInto(out *GatewaySpec)

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

type GatewayStatus

type GatewayStatus struct {
}

GatewayStatus defines the observed state of Gateway

func (*GatewayStatus) DeepCopy

func (in *GatewayStatus) DeepCopy() *GatewayStatus

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

func (*GatewayStatus) DeepCopyInto

func (in *GatewayStatus) DeepCopyInto(out *GatewayStatus)

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

type IPFamily

type IPFamily string

IPFamily describes the traffic type in the trench Only one of the following ip family can be specified. If the traffic is IPv4 only, use IPv4, similarly, use IPv6 if the traffic is IPv6 only, otherwise, use dualstack which handles both IPv4 and IPv6 traffic.

const (
	IPv4      IPFamily = "ipv4"
	IPv6      IPFamily = "ipv6"
	Dualstack IPFamily = "dualstack"
)

type InterfaceSpec

type InterfaceSpec struct {
	// Name of the interface.
	// Must be a valid Linux kernel interface name.
	// +kubebuilder:validation:Pattern=`^[^:\//\s]{1,13}$`
	Name string `json:"name"`

	// (immutable) IPv4 prefix of the interface, which is used for frontend to set up communication with the ipv4 gateways.
	// If the type is "nsm-vlan", this information must be specified.
	PrefixIPv4 string `json:"ipv4-prefix,omitempty"`

	// (immutable) IPv6 prefix of the interface, which is used for frontend to set up communication with the ipv6 gateways.
	// If the type is "nsm-vlan", this information must be specified.
	PrefixIPv6 string `json:"ipv6-prefix,omitempty"`

	// Interface choice.
	// +kubebuilder:default=nsm-vlan
	// +kubebuilder:validation:Enum=nsm-vlan;network-attachment
	Type string `json:"type,omitempty"`

	// If the type is "nsm-vlan", this information must be specified.
	NSMVlan NSMVlanSpec `json:"nsm-vlan,omitempty"`

	// If the type is "network-attachment", this information must be specified.
	// One NetworkAttachmentSpec allowed currently.
	NetworkAttachments []*NetworkAttachmentSpec `json:"network-attachments,omitempty"`
}

func (*InterfaceSpec) DeepCopy

func (in *InterfaceSpec) DeepCopy() *InterfaceSpec

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

func (*InterfaceSpec) DeepCopyInto

func (in *InterfaceSpec) DeepCopyInto(out *InterfaceSpec)

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

type InterfaceType

type InterfaceType string

type NSMVlanSpec

type NSMVlanSpec struct {
	// (immutable) master interface of the vlan interface to be used for external connectivity
	BaseInterface string `json:"base-interface,omitempty"`

	// (immutable) vlan ID of the vlan interface to be used for external connectivity
	VlanID *int32 `json:"vlan-id,omitempty"`
}

func (*NSMVlanSpec) DeepCopy

func (in *NSMVlanSpec) DeepCopy() *NSMVlanSpec

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

func (*NSMVlanSpec) DeepCopyInto

func (in *NSMVlanSpec) DeepCopyInto(out *NSMVlanSpec)

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

type NetworkAttachmentSpec

type NetworkAttachmentSpec struct {

	// Name of the Network Attachment Definition.
	// Must be a valid lowercase RFC 1123 subdomain.
	Name string `json:"name,omitempty"`

	// Kubernetes namespace where the Network Attachment Definition is defined.
	// Must be a valid lowercase RFC 1123 label. Its default value is "default".
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Name to be used as the given name for the POD interface.
	// Must be a valid Linux kernel interface name.
	// +optional
	InterfaceRequest string `json:"interface,omitempty"`
}

NetworkAttachmentSpec identifies a Network Attachment Definition intended to setup an interface. It is a subset of NetworkSelectionElement: https://pkg.go.dev/github.com/k8snetworkplumbingwg/network-attachment-definition-client/pkg/apis/k8s.cni.cncf.io/v1#NetworkSelectionElement

func (*NetworkAttachmentSpec) DeepCopy

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

func (*NetworkAttachmentSpec) DeepCopyInto

func (in *NetworkAttachmentSpec) DeepCopyInto(out *NetworkAttachmentSpec)

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

type NetworkServiceType

type NetworkServiceType string

type PortNatSpec

type PortNatSpec struct {
	// Destination Port exposed by the service (exposed in flows).
	// Traffic containing this property will be NATted.
	Port uint16 `json:"port"`

	// TargetPort represent the port the traffic will be NATted to.
	// Targets will receive traffic on that port.
	TargetPort uint16 `json:"target-port"`

	// VIPs exposed by the service (exposed in flows).
	// Traffic containing this property will be NATted.
	Vips []string `json:"vips"`

	// Protocol exposed by the service (exposed in flows).
	// Traffic containing this property will be NATted.
	Protocol TransportProtocol `json:"protocol"`
}

PortNatSpec defines the parameters to set up a destination port natting in the conduit

func (*PortNatSpec) DeepCopy

func (in *PortNatSpec) DeepCopy() *PortNatSpec

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

func (*PortNatSpec) DeepCopyInto

func (in *PortNatSpec) DeepCopyInto(out *PortNatSpec)

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

type Ports

type Ports struct {
	Start uint64
	End   uint64
}

func NewPort

func NewPort(start, end uint64) (Ports, error)

func NewPortFromString

func NewPortFromString(start, end string) (Ports, error)

func (*Ports) DeepCopy

func (in *Ports) DeepCopy() *Ports

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

func (*Ports) DeepCopyInto

func (in *Ports) DeepCopyInto(out *Ports)

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

type Protocol

type Protocol string

Protocol describes the routing choice of the frontend

const (
	// Static instructs the frontend to work with the static routing configured on the Edge Routers
	Static Protocol = "static"

	// BGP instructs the frontend to setup BGP sessions with the Edge Routers
	BGP Protocol = "bgp"
)

type StaticSpec

type StaticSpec struct {
	// BFD monitoring of Static session.
	// +optional
	BFD BfdSpec `json:"bfd,omitempty"`
}

StaticSpec defines the parameters to set up static routes

func (*StaticSpec) DeepCopy

func (in *StaticSpec) DeepCopy() *StaticSpec

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

func (*StaticSpec) DeepCopyInto

func (in *StaticSpec) DeepCopyInto(out *StaticSpec)

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

type Stream

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

	Spec   StreamSpec   `json:"spec,omitempty"`
	Status StreamStatus `json:"status,omitempty"`
}

Stream is the Schema for the streams API. It refers a group of Flows processed through the same Conduit before consumed by the user application.

func (*Stream) DeepCopy

func (in *Stream) DeepCopy() *Stream

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

func (*Stream) DeepCopyInto

func (in *Stream) DeepCopyInto(out *Stream)

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

func (*Stream) DeepCopyObject

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

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

func (*Stream) GroupKind

func (r *Stream) GroupKind() schema.GroupKind

func (*Stream) GroupResource

func (r *Stream) GroupResource() schema.GroupResource

func (*Stream) SetupWebhookWithManager

func (r *Stream) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Stream) ValidateCreate

func (r *Stream) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Stream) ValidateDelete

func (r *Stream) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Stream) ValidateUpdate

func (r *Stream) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type StreamList

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

StreamList contains a list of Stream

func (*StreamList) DeepCopy

func (in *StreamList) DeepCopy() *StreamList

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

func (*StreamList) DeepCopyInto

func (in *StreamList) DeepCopyInto(out *StreamList)

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

func (*StreamList) DeepCopyObject

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

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

type StreamSpec

type StreamSpec struct {
	// The conduit that is to convey traffic included in this Stream
	// +optional
	Conduit string `json:"conduit,omitempty"`
	// Max number of targets the stream supports
	// +optional
	MaxTargets *uint32 `json:"max-targets,omitempty"`
}

StreamSpec defines the desired state of Stream

func (*StreamSpec) DeepCopy

func (in *StreamSpec) DeepCopy() *StreamSpec

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

func (*StreamSpec) DeepCopyInto

func (in *StreamSpec) DeepCopyInto(out *StreamSpec)

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

type StreamStatus

type StreamStatus struct {
}

StreamStatus defines the observed state of Stream

func (*StreamStatus) DeepCopy

func (in *StreamStatus) DeepCopy() *StreamStatus

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

func (*StreamStatus) DeepCopyInto

func (in *StreamStatus) DeepCopyInto(out *StreamStatus)

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

type TransportProtocol

type TransportProtocol string

+kubebuilder:validation:Enum=tcp;udp;sctp

const (
	TCP  TransportProtocol = "tcp"
	UDP  TransportProtocol = "udp"
	SCTP TransportProtocol = "sctp"
)

type Trench

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

	Spec   TrenchSpec   `json:"spec,omitempty"`
	Status TrenchStatus `json:"status,omitempty"`
}

Trench is the Schema for the trenches API. It defines the extension of an external VPN into the K8s cluster scope. All other Merido CRs are related to a trench

func (*Trench) DeepCopy

func (in *Trench) DeepCopy() *Trench

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

func (*Trench) DeepCopyInto

func (in *Trench) DeepCopyInto(out *Trench)

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

func (*Trench) DeepCopyObject

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

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

func (*Trench) GroupKind

func (r *Trench) GroupKind() schema.GroupKind

func (*Trench) GroupResource

func (r *Trench) GroupResource() schema.GroupResource

func (*Trench) SetupWebhookWithManager

func (r *Trench) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Trench) ValidateCreate

func (r *Trench) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Trench) ValidateDelete

func (r *Trench) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Trench) ValidateUpdate

func (r *Trench) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type TrenchList

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

TrenchList contains a list of Trench

func (*TrenchList) DeepCopy

func (in *TrenchList) DeepCopy() *TrenchList

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

func (*TrenchList) DeepCopyInto

func (in *TrenchList) DeepCopyInto(out *TrenchList)

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

func (*TrenchList) DeepCopyObject

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

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

type TrenchSpec

type TrenchSpec struct {
	// +kubebuilder:default=dualstack
	// +kubebuilder:validation:Enum=dualstack;ipv4;ipv6
	// Defines the IP family of the trench. It should be set according to what type of traffic is expected in the trench.
	// Valid values: dualstack (default), ipv4, ipv6
	IPFamily string `json:"ip-family"`
}

TrenchSpec defines the desired state of Trench

func (*TrenchSpec) DeepCopy

func (in *TrenchSpec) DeepCopy() *TrenchSpec

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

func (*TrenchSpec) DeepCopyInto

func (in *TrenchSpec) DeepCopyInto(out *TrenchSpec)

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

type TrenchStatus

type TrenchStatus struct {
}

TrenchStatus defines the observed state of Trench

func (*TrenchStatus) DeepCopy

func (in *TrenchStatus) DeepCopy() *TrenchStatus

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

func (*TrenchStatus) DeepCopyInto

func (in *TrenchStatus) DeepCopyInto(out *TrenchStatus)

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

type Vip

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

	Spec   VipSpec   `json:"spec,omitempty"`
	Status VipStatus `json:"status,omitempty"`
}

Vip is the Schema for the vips API. It defines a Vip to be used as destination for ingress traffic to facilitate load-balancing. For egress traffic the Vip is used as source to avoid Direct Server Return.

func (*Vip) DeepCopy

func (in *Vip) DeepCopy() *Vip

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

func (*Vip) DeepCopyInto

func (in *Vip) DeepCopyInto(out *Vip)

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

func (*Vip) DeepCopyObject

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

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

func (*Vip) GroupKind

func (r *Vip) GroupKind() schema.GroupKind

func (*Vip) GroupResource

func (r *Vip) GroupResource() schema.GroupResource

func (*Vip) SetupWebhookWithManager

func (r *Vip) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Vip) ValidateCreate

func (r *Vip) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Vip) ValidateDelete

func (r *Vip) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Vip) ValidateUpdate

func (r *Vip) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type VipList

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

VipList contains a list of Vip

func (*VipList) DeepCopy

func (in *VipList) DeepCopy() *VipList

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

func (*VipList) DeepCopyInto

func (in *VipList) DeepCopyInto(out *VipList)

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

func (*VipList) DeepCopyObject

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

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

type VipSpec

type VipSpec struct {
	// vip address. Both ipv4 and ipv6 addresses are supported. Vip address must
	// be a valid network prefix.
	// +optional
	Address string `json:"address,omitempty"`
}

VipSpec defines the desired state of Vip

func (*VipSpec) DeepCopy

func (in *VipSpec) DeepCopy() *VipSpec

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

func (*VipSpec) DeepCopyInto

func (in *VipSpec) DeepCopyInto(out *VipSpec)

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

type VipStatus

type VipStatus struct {
}

VipStatus defines the observed state of Vip

func (*VipStatus) DeepCopy

func (in *VipStatus) DeepCopy() *VipStatus

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

func (*VipStatus) DeepCopyInto

func (in *VipStatus) DeepCopyInto(out *VipStatus)

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