v1

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: May 12, 2022 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package v1 contains API Schema definitions for the network v1 API group +k8s:deepcopy-gen=package,register +groupName=network.operator.openshift.io +kubebuilder:validation:Optional

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidLengthGenerated        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowGenerated          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group")
)
View Source
var (
	GroupName    = "network.operator.openshift.io"
	GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"}

	// Install is a function which adds this version to a scheme
	Install = schemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type ConditionStatus

type ConditionStatus string

ConditionStatus defines the status of each of EgressRouterStatusConditionType.

const (
	ConditionTrue    ConditionStatus = "True"
	ConditionFalse   ConditionStatus = "False"
	ConditionUnknown ConditionStatus = "Unknown"
)

These are valid condition statuses. "ConditionTrue" means a resource is in the condition. "ConditionFalse" means a resource is not in the condition. "ConditionUnknown" means kubernetes can't decide if a resource is in the condition or not. In the future, we could add other intermediate conditions, e.g. ConditionDegraded.

type EgressRouter

type EgressRouter struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`

	// Specification of the desired egress router.
	// +kubebuilder:validation:Required
	Spec EgressRouterSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"`

	// Observed status of EgressRouter.
	Status EgressRouterStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
}

EgressRouter is a feature allowing the user to define an egress router that acts as a bridge between pods and external systems. The egress router runs a service that redirects egress traffic originating from a pod or a group of pods to a remote external system or multiple destinations as per configuration.

It is consumed by the cluster-network-operator. More specifically, given an EgressRouter CR with <name>, the CNO will create and manage: - A service called <name> - An egress pod called <name> - A NAD called <name>

Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

EgressRouter is a single egressrouter pod configuration object. +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:path=egressrouters,scope=Namespaced +kubebuilder:printcolumn:name="Condition",type=string,JSONPath=".status.conditions[*].type" +kubebuilder:printcolumn:name="Status",type=string,JSONPath=".status.conditions[*].status" +openshift:compatibility-gen:level=1

func (*EgressRouter) DeepCopy

func (in *EgressRouter) DeepCopy() *EgressRouter

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

func (*EgressRouter) DeepCopyInto

func (in *EgressRouter) DeepCopyInto(out *EgressRouter)

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

func (*EgressRouter) DeepCopyObject

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

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

func (*EgressRouter) Descriptor

func (*EgressRouter) Descriptor() ([]byte, []int)

func (*EgressRouter) Marshal

func (m *EgressRouter) Marshal() (dAtA []byte, err error)

func (*EgressRouter) MarshalTo

func (m *EgressRouter) MarshalTo(dAtA []byte) (int, error)

func (*EgressRouter) MarshalToSizedBuffer

func (m *EgressRouter) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*EgressRouter) ProtoMessage

func (*EgressRouter) ProtoMessage()

func (*EgressRouter) Reset

func (m *EgressRouter) Reset()

func (*EgressRouter) Size

func (m *EgressRouter) Size() (n int)

func (*EgressRouter) String

func (this *EgressRouter) String() string

func (EgressRouter) SwaggerDoc

func (EgressRouter) SwaggerDoc() map[string]string

func (*EgressRouter) Unmarshal

func (m *EgressRouter) Unmarshal(dAtA []byte) error

func (*EgressRouter) XXX_DiscardUnknown

func (m *EgressRouter) XXX_DiscardUnknown()

func (*EgressRouter) XXX_Marshal

func (m *EgressRouter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*EgressRouter) XXX_Merge

func (m *EgressRouter) XXX_Merge(src proto.Message)

func (*EgressRouter) XXX_Size

func (m *EgressRouter) XXX_Size() int

func (*EgressRouter) XXX_Unmarshal

func (m *EgressRouter) XXX_Unmarshal(b []byte) error

type EgressRouterAddress

type EgressRouterAddress struct {
	// IP is the address to configure on the router's interface. Can be IPv4 or IPv6.
	// +kubebuilder:validation:Required
	IP string `json:"ip" protobuf:"bytes,1,opt,name=ip"`
	// IP address of the next-hop gateway, if it cannot be automatically determined. Can be IPv4 or IPv6.
	Gateway string `json:"gateway,omitempty" protobuf:"bytes,2,opt,name=gateway"`
}

EgressRouterAddress contains a pair of IP CIDR and gateway to be configured on the router's interface +kubebuilder:validation:Required

func (*EgressRouterAddress) DeepCopy

func (in *EgressRouterAddress) DeepCopy() *EgressRouterAddress

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

func (*EgressRouterAddress) DeepCopyInto

func (in *EgressRouterAddress) DeepCopyInto(out *EgressRouterAddress)

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

func (*EgressRouterAddress) Descriptor

func (*EgressRouterAddress) Descriptor() ([]byte, []int)

func (*EgressRouterAddress) Marshal

func (m *EgressRouterAddress) Marshal() (dAtA []byte, err error)

func (*EgressRouterAddress) MarshalTo

func (m *EgressRouterAddress) MarshalTo(dAtA []byte) (int, error)

func (*EgressRouterAddress) MarshalToSizedBuffer

func (m *EgressRouterAddress) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*EgressRouterAddress) ProtoMessage

func (*EgressRouterAddress) ProtoMessage()

func (*EgressRouterAddress) Reset

func (m *EgressRouterAddress) Reset()

func (*EgressRouterAddress) Size

func (m *EgressRouterAddress) Size() (n int)

func (*EgressRouterAddress) String

func (this *EgressRouterAddress) String() string

func (EgressRouterAddress) SwaggerDoc

func (EgressRouterAddress) SwaggerDoc() map[string]string

func (*EgressRouterAddress) Unmarshal

func (m *EgressRouterAddress) Unmarshal(dAtA []byte) error

func (*EgressRouterAddress) XXX_DiscardUnknown

func (m *EgressRouterAddress) XXX_DiscardUnknown()

func (*EgressRouterAddress) XXX_Marshal

func (m *EgressRouterAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*EgressRouterAddress) XXX_Merge

func (m *EgressRouterAddress) XXX_Merge(src proto.Message)

func (*EgressRouterAddress) XXX_Size

func (m *EgressRouterAddress) XXX_Size() int

func (*EgressRouterAddress) XXX_Unmarshal

func (m *EgressRouterAddress) XXX_Unmarshal(b []byte) error

type EgressRouterInterface

type EgressRouterInterface struct {
	// Arguments specific to the interfaceType macvlan
	// +kubebuilder:default:={mode: Bridge}
	Macvlan MacvlanConfig `json:"macvlan" protobuf:"bytes,1,opt,name=macvlan"`
}

EgressRouterInterface contains the configuration of interface to create/use.

func (*EgressRouterInterface) DeepCopy

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

func (*EgressRouterInterface) DeepCopyInto

func (in *EgressRouterInterface) DeepCopyInto(out *EgressRouterInterface)

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

func (*EgressRouterInterface) Descriptor

func (*EgressRouterInterface) Descriptor() ([]byte, []int)

func (*EgressRouterInterface) Marshal

func (m *EgressRouterInterface) Marshal() (dAtA []byte, err error)

func (*EgressRouterInterface) MarshalTo

func (m *EgressRouterInterface) MarshalTo(dAtA []byte) (int, error)

func (*EgressRouterInterface) MarshalToSizedBuffer

func (m *EgressRouterInterface) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*EgressRouterInterface) ProtoMessage

func (*EgressRouterInterface) ProtoMessage()

func (*EgressRouterInterface) Reset

func (m *EgressRouterInterface) Reset()

func (*EgressRouterInterface) Size

func (m *EgressRouterInterface) Size() (n int)

func (*EgressRouterInterface) String

func (this *EgressRouterInterface) String() string

func (EgressRouterInterface) SwaggerDoc

func (EgressRouterInterface) SwaggerDoc() map[string]string

func (*EgressRouterInterface) Unmarshal

func (m *EgressRouterInterface) Unmarshal(dAtA []byte) error

func (*EgressRouterInterface) XXX_DiscardUnknown

func (m *EgressRouterInterface) XXX_DiscardUnknown()

func (*EgressRouterInterface) XXX_Marshal

func (m *EgressRouterInterface) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*EgressRouterInterface) XXX_Merge

func (m *EgressRouterInterface) XXX_Merge(src proto.Message)

func (*EgressRouterInterface) XXX_Size

func (m *EgressRouterInterface) XXX_Size() int

func (*EgressRouterInterface) XXX_Unmarshal

func (m *EgressRouterInterface) XXX_Unmarshal(b []byte) error

type EgressRouterList

type EgressRouterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`

	Items []EgressRouter `json:"items" protobuf:"bytes,2,rep,name=items"`
}

EgressRouterList is the list of egress router pods requested.

Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=1

func (*EgressRouterList) DeepCopy

func (in *EgressRouterList) DeepCopy() *EgressRouterList

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

func (*EgressRouterList) DeepCopyInto

func (in *EgressRouterList) DeepCopyInto(out *EgressRouterList)

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

func (*EgressRouterList) DeepCopyObject

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

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

func (*EgressRouterList) Descriptor

func (*EgressRouterList) Descriptor() ([]byte, []int)

func (*EgressRouterList) Marshal

func (m *EgressRouterList) Marshal() (dAtA []byte, err error)

func (*EgressRouterList) MarshalTo

func (m *EgressRouterList) MarshalTo(dAtA []byte) (int, error)

func (*EgressRouterList) MarshalToSizedBuffer

func (m *EgressRouterList) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*EgressRouterList) ProtoMessage

func (*EgressRouterList) ProtoMessage()

func (*EgressRouterList) Reset

func (m *EgressRouterList) Reset()

func (*EgressRouterList) Size

func (m *EgressRouterList) Size() (n int)

func (*EgressRouterList) String

func (this *EgressRouterList) String() string

func (EgressRouterList) SwaggerDoc

func (EgressRouterList) SwaggerDoc() map[string]string

func (*EgressRouterList) Unmarshal

func (m *EgressRouterList) Unmarshal(dAtA []byte) error

func (*EgressRouterList) XXX_DiscardUnknown

func (m *EgressRouterList) XXX_DiscardUnknown()

func (*EgressRouterList) XXX_Marshal

func (m *EgressRouterList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*EgressRouterList) XXX_Merge

func (m *EgressRouterList) XXX_Merge(src proto.Message)

func (*EgressRouterList) XXX_Size

func (m *EgressRouterList) XXX_Size() int

func (*EgressRouterList) XXX_Unmarshal

func (m *EgressRouterList) XXX_Unmarshal(b []byte) error

type EgressRouterMode

type EgressRouterMode string

EgressRouterMode defines the different types of modes that are supported for the egress router interface. The default mode is "Redirect" and is the only supported mode currently.

const (
	// EgressRouterModeRedirect creates an egress router that sets up iptables rules to redirect traffic
	// from its own IP address to one or more remote destination IP addresses.
	EgressRouterModeRedirect EgressRouterMode = "Redirect"
)

type EgressRouterSpec

type EgressRouterSpec struct {
	// Mode depicts the mode that is used for the egress router. The default mode is "Redirect" and is the only supported mode currently.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum="Redirect"
	// +kubebuilder:default:="Redirect"
	Mode EgressRouterMode `json:"mode" protobuf:"bytes,1,opt,name=mode,casttype=EgressRouterMode"`

	// Redirect represents the configuration parameters specific to redirect mode.
	Redirect *RedirectConfig `json:"redirect,omitempty" protobuf:"bytes,2,opt,name=redirect"`

	// Specification of interface to create/use. The default is macvlan.
	// Currently only macvlan is supported.
	// +kubebuilder:validation:Required
	// +kubebuilder:default:={macvlan: {mode: Bridge}}
	NetworkInterface EgressRouterInterface `json:"networkInterface" protobuf:"bytes,3,opt,name=networkInterface"`

	// List of IP addresses to configure on the pod's secondary interface.
	// +kubebuilder:validation:Required
	Addresses []EgressRouterAddress `json:"addresses" protobuf:"bytes,4,rep,name=addresses"`
}

EgressRouterSpec contains the configuration for an egress router. Mode, networkInterface and addresses fields must be specified along with exactly one "Config" that matches the mode. Each config consists of parameters specific to that mode. +k8s:openapi-gen=true +kubebuilder:validation:Required

func (*EgressRouterSpec) DeepCopy

func (in *EgressRouterSpec) DeepCopy() *EgressRouterSpec

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

func (*EgressRouterSpec) DeepCopyInto

func (in *EgressRouterSpec) DeepCopyInto(out *EgressRouterSpec)

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

func (*EgressRouterSpec) Descriptor

func (*EgressRouterSpec) Descriptor() ([]byte, []int)

func (*EgressRouterSpec) Marshal

func (m *EgressRouterSpec) Marshal() (dAtA []byte, err error)

func (*EgressRouterSpec) MarshalTo

func (m *EgressRouterSpec) MarshalTo(dAtA []byte) (int, error)

func (*EgressRouterSpec) MarshalToSizedBuffer

func (m *EgressRouterSpec) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*EgressRouterSpec) ProtoMessage

func (*EgressRouterSpec) ProtoMessage()

func (*EgressRouterSpec) Reset

func (m *EgressRouterSpec) Reset()

func (*EgressRouterSpec) Size

func (m *EgressRouterSpec) Size() (n int)

func (*EgressRouterSpec) String

func (this *EgressRouterSpec) String() string

func (EgressRouterSpec) SwaggerDoc

func (EgressRouterSpec) SwaggerDoc() map[string]string

func (*EgressRouterSpec) Unmarshal

func (m *EgressRouterSpec) Unmarshal(dAtA []byte) error

func (*EgressRouterSpec) XXX_DiscardUnknown

func (m *EgressRouterSpec) XXX_DiscardUnknown()

func (*EgressRouterSpec) XXX_Marshal

func (m *EgressRouterSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*EgressRouterSpec) XXX_Merge

func (m *EgressRouterSpec) XXX_Merge(src proto.Message)

func (*EgressRouterSpec) XXX_Size

func (m *EgressRouterSpec) XXX_Size() int

func (*EgressRouterSpec) XXX_Unmarshal

func (m *EgressRouterSpec) XXX_Unmarshal(b []byte) error

type EgressRouterStatus

type EgressRouterStatus struct {
	// Observed status of the egress router
	// +kubebuilder:validation:Required
	Conditions []EgressRouterStatusCondition `json:"conditions,omitempty" protobuf:"bytes,1,rep,name=conditions"`
}

EgressRouterStatus contains the observed status of EgressRouter. Read-only.

func (*EgressRouterStatus) DeepCopy

func (in *EgressRouterStatus) DeepCopy() *EgressRouterStatus

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

func (*EgressRouterStatus) DeepCopyInto

func (in *EgressRouterStatus) DeepCopyInto(out *EgressRouterStatus)

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

func (*EgressRouterStatus) Descriptor

func (*EgressRouterStatus) Descriptor() ([]byte, []int)

func (*EgressRouterStatus) Marshal

func (m *EgressRouterStatus) Marshal() (dAtA []byte, err error)

func (*EgressRouterStatus) MarshalTo

func (m *EgressRouterStatus) MarshalTo(dAtA []byte) (int, error)

func (*EgressRouterStatus) MarshalToSizedBuffer

func (m *EgressRouterStatus) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*EgressRouterStatus) ProtoMessage

func (*EgressRouterStatus) ProtoMessage()

func (*EgressRouterStatus) Reset

func (m *EgressRouterStatus) Reset()

func (*EgressRouterStatus) Size

func (m *EgressRouterStatus) Size() (n int)

func (*EgressRouterStatus) String

func (this *EgressRouterStatus) String() string

func (EgressRouterStatus) SwaggerDoc

func (EgressRouterStatus) SwaggerDoc() map[string]string

func (*EgressRouterStatus) Unmarshal

func (m *EgressRouterStatus) Unmarshal(dAtA []byte) error

func (*EgressRouterStatus) XXX_DiscardUnknown

func (m *EgressRouterStatus) XXX_DiscardUnknown()

func (*EgressRouterStatus) XXX_Marshal

func (m *EgressRouterStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*EgressRouterStatus) XXX_Merge

func (m *EgressRouterStatus) XXX_Merge(src proto.Message)

func (*EgressRouterStatus) XXX_Size

func (m *EgressRouterStatus) XXX_Size() int

func (*EgressRouterStatus) XXX_Unmarshal

func (m *EgressRouterStatus) XXX_Unmarshal(b []byte) error

type EgressRouterStatusCondition

type EgressRouterStatusCondition struct {
	// Type specifies the aspect reported by this condition; one of Available, Progressing, Degraded
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum="Available";"Progressing";"Degraded"
	// +required
	Type EgressRouterStatusConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=EgressRouterStatusConditionType"`

	// Status of the condition, one of True, False, Unknown.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum="True";"False";"Unknown"
	// +required
	Status ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=ConditionStatus"`

	// LastTransitionTime is the time of the last update to the current status property.
	// +kubebuilder:validation:Required
	// +required
	// +nullable
	LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,3,opt,name=lastTransitionTime"`

	// Reason is the CamelCase reason for the condition's current status.
	Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"`

	// Message provides additional information about the current condition.
	// This is only to be consumed by humans.  It may contain Line Feed
	// characters (U+000A), which should be rendered as new lines.
	Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"`
}

EgressRouterStatusCondition represents the state of the egress router's managed and monitored components. +k8s:deepcopy-gen=true

func (*EgressRouterStatusCondition) DeepCopy

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

func (*EgressRouterStatusCondition) DeepCopyInto

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

func (*EgressRouterStatusCondition) Descriptor

func (*EgressRouterStatusCondition) Descriptor() ([]byte, []int)

func (*EgressRouterStatusCondition) Marshal

func (m *EgressRouterStatusCondition) Marshal() (dAtA []byte, err error)

func (*EgressRouterStatusCondition) MarshalTo

func (m *EgressRouterStatusCondition) MarshalTo(dAtA []byte) (int, error)

func (*EgressRouterStatusCondition) MarshalToSizedBuffer

func (m *EgressRouterStatusCondition) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*EgressRouterStatusCondition) ProtoMessage

func (*EgressRouterStatusCondition) ProtoMessage()

func (*EgressRouterStatusCondition) Reset

func (m *EgressRouterStatusCondition) Reset()

func (*EgressRouterStatusCondition) Size

func (m *EgressRouterStatusCondition) Size() (n int)

func (*EgressRouterStatusCondition) String

func (this *EgressRouterStatusCondition) String() string

func (EgressRouterStatusCondition) SwaggerDoc

func (EgressRouterStatusCondition) SwaggerDoc() map[string]string

func (*EgressRouterStatusCondition) Unmarshal

func (m *EgressRouterStatusCondition) Unmarshal(dAtA []byte) error

func (*EgressRouterStatusCondition) XXX_DiscardUnknown

func (m *EgressRouterStatusCondition) XXX_DiscardUnknown()

func (*EgressRouterStatusCondition) XXX_Marshal

func (m *EgressRouterStatusCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*EgressRouterStatusCondition) XXX_Merge

func (m *EgressRouterStatusCondition) XXX_Merge(src proto.Message)

func (*EgressRouterStatusCondition) XXX_Size

func (m *EgressRouterStatusCondition) XXX_Size() int

func (*EgressRouterStatusCondition) XXX_Unmarshal

func (m *EgressRouterStatusCondition) XXX_Unmarshal(b []byte) error

type EgressRouterStatusConditionType

type EgressRouterStatusConditionType string

EgressRouterStatusConditionType is an aspect of the router's state.

const (
	// EgressRouterAvailable indicates that the EgressRouter (the associated pod, service, NAD), is functional and available in the cluster.
	EgressRouterAvailable EgressRouterStatusConditionType = "Available"

	// EgressRouterProgressing indicates that the router is actively rolling out new code,
	// propagating config changes, or otherwise moving from one steady state to
	// another.
	EgressRouterProgressing EgressRouterStatusConditionType = "Progressing"

	// EgressRouterDegraded indicates that the router's current state does not match its
	// desired state over a period of time resulting in a lower quality of service.
	EgressRouterDegraded EgressRouterStatusConditionType = "Degraded"
)

type L4RedirectRule

type L4RedirectRule struct {
	// IP specifies the remote destination's IP address. Can be IPv4 or IPv6.
	// +kubebuilder:validation:Required
	DestinationIP string `json:"destinationIP" protobuf:"bytes,1,opt,name=destinationIP"`

	// Port is the port number to which clients should send traffic to be redirected.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Maximum:=65535
	// +kubebuilder:validation:Minimum:=1
	Port int32 `json:"port" protobuf:"varint,2,opt,name=port"`

	// Protocol can be TCP, SCTP or UDP.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum="TCP";"UDP";"SCTP"
	Protocol ProtocolType `json:"protocol" protobuf:"bytes,3,opt,name=protocol,casttype=ProtocolType"`

	// TargetPort allows specifying the port number on the remote destination to which the traffic gets redirected to.
	// If unspecified, the value from "Port" is used.
	// +kubebuilder:validation:Maximum:=65535
	// +kubebuilder:validation:Minimum:=1
	TargetPort int32 `json:"targetPort,omitempty" protobuf:"varint,4,opt,name=targetPort"`
}

L4RedirectRule defines a DNAT redirection from a given port to a destination IP and port.

func (*L4RedirectRule) DeepCopy

func (in *L4RedirectRule) DeepCopy() *L4RedirectRule

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

func (*L4RedirectRule) DeepCopyInto

func (in *L4RedirectRule) DeepCopyInto(out *L4RedirectRule)

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

func (*L4RedirectRule) Descriptor

func (*L4RedirectRule) Descriptor() ([]byte, []int)

func (*L4RedirectRule) Marshal

func (m *L4RedirectRule) Marshal() (dAtA []byte, err error)

func (*L4RedirectRule) MarshalTo

func (m *L4RedirectRule) MarshalTo(dAtA []byte) (int, error)

func (*L4RedirectRule) MarshalToSizedBuffer

func (m *L4RedirectRule) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*L4RedirectRule) ProtoMessage

func (*L4RedirectRule) ProtoMessage()

func (*L4RedirectRule) Reset

func (m *L4RedirectRule) Reset()

func (*L4RedirectRule) Size

func (m *L4RedirectRule) Size() (n int)

func (*L4RedirectRule) String

func (this *L4RedirectRule) String() string

func (L4RedirectRule) SwaggerDoc

func (L4RedirectRule) SwaggerDoc() map[string]string

func (*L4RedirectRule) Unmarshal

func (m *L4RedirectRule) Unmarshal(dAtA []byte) error

func (*L4RedirectRule) XXX_DiscardUnknown

func (m *L4RedirectRule) XXX_DiscardUnknown()

func (*L4RedirectRule) XXX_Marshal

func (m *L4RedirectRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*L4RedirectRule) XXX_Merge

func (m *L4RedirectRule) XXX_Merge(src proto.Message)

func (*L4RedirectRule) XXX_Size

func (m *L4RedirectRule) XXX_Size() int

func (*L4RedirectRule) XXX_Unmarshal

func (m *L4RedirectRule) XXX_Unmarshal(b []byte) error

type MacvlanConfig

type MacvlanConfig struct {
	// Mode depicts the mode that is used for the macvlan interface; one of Bridge|Private|VEPA|Passthru. The default mode is "Bridge".
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum="Bridge";"Private";"VEPA";"Passthru"
	// +kubebuilder:default:="Bridge"
	Mode MacvlanMode `json:"mode" protobuf:"bytes,1,opt,name=mode,casttype=MacvlanMode"`

	// Name of the master interface. Need not be specified if it can be inferred from the IP address.
	Master string `json:"master,omitempty" protobuf:"bytes,2,opt,name=master"`
}

MacvlanConfig consists of arguments specific to the macvlan EgressRouterInterfaceType

func (*MacvlanConfig) DeepCopy

func (in *MacvlanConfig) DeepCopy() *MacvlanConfig

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

func (*MacvlanConfig) DeepCopyInto

func (in *MacvlanConfig) DeepCopyInto(out *MacvlanConfig)

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

func (*MacvlanConfig) Descriptor

func (*MacvlanConfig) Descriptor() ([]byte, []int)

func (*MacvlanConfig) Marshal

func (m *MacvlanConfig) Marshal() (dAtA []byte, err error)

func (*MacvlanConfig) MarshalTo

func (m *MacvlanConfig) MarshalTo(dAtA []byte) (int, error)

func (*MacvlanConfig) MarshalToSizedBuffer

func (m *MacvlanConfig) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*MacvlanConfig) ProtoMessage

func (*MacvlanConfig) ProtoMessage()

func (*MacvlanConfig) Reset

func (m *MacvlanConfig) Reset()

func (*MacvlanConfig) Size

func (m *MacvlanConfig) Size() (n int)

func (*MacvlanConfig) String

func (this *MacvlanConfig) String() string

func (MacvlanConfig) SwaggerDoc

func (MacvlanConfig) SwaggerDoc() map[string]string

func (*MacvlanConfig) Unmarshal

func (m *MacvlanConfig) Unmarshal(dAtA []byte) error

func (*MacvlanConfig) XXX_DiscardUnknown

func (m *MacvlanConfig) XXX_DiscardUnknown()

func (*MacvlanConfig) XXX_Marshal

func (m *MacvlanConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MacvlanConfig) XXX_Merge

func (m *MacvlanConfig) XXX_Merge(src proto.Message)

func (*MacvlanConfig) XXX_Size

func (m *MacvlanConfig) XXX_Size() int

func (*MacvlanConfig) XXX_Unmarshal

func (m *MacvlanConfig) XXX_Unmarshal(b []byte) error

type MacvlanMode

type MacvlanMode string

MacvlanMode defines the different types of modes that are supported for the macvlan interface. source: https://man7.org/linux/man-pages/man8/ip-link.8.html

const (
	// MacvlanModeBridge connects all endpoints directly to each other, communication is not redirected through the physical interface's peer.
	MacvlanModeBridge MacvlanMode = "Bridge"

	// MacvlanModePrivate does not allow communication between macvlan instances on the same physical interface,
	// even if the external switch supports hairpin mode.
	MacvlanModePrivate MacvlanMode = "Private"

	// MacvlanModeVEPA is the Virtual Ethernet Port Aggregator mode. Data from one macvlan instance to the other on the
	// same physical interface is transmitted over the physical interface. Either the attached switch needs
	// to support hairpin mode, or there must be a TCP/IP router forwarding the packets in order to allow
	// communication. This is the default mode.
	MacvlanModeVEPA MacvlanMode = "VEPA"

	// MacvlanModePassthru mode gives more power to a single endpoint, usually in macvtap mode.
	// It is not allowed for more than one endpoint on the same physical interface. All traffic will be forwarded
	// to this endpoint, allowing virtio guests to change MAC address or set promiscuous mode in order to bridge the
	// interface or create vlan interfaces on top of it.
	MacvlanModePassthru MacvlanMode = "Passthru"
)

type ProtocolType

type ProtocolType string

ProtocolType defines the protocol types that are supported

const (
	// ProtocolTypeTCP refers to the TCP protocol
	ProtocolTypeTCP ProtocolType = "TCP"

	// ProtocolTypeUDP refers to the UDP protocol
	ProtocolTypeUDP ProtocolType = "UDP"

	// ProtocolTypeSCTP refers to the SCTP protocol
	ProtocolTypeSCTP ProtocolType = "SCTP"
)

type RedirectConfig

type RedirectConfig struct {
	// List of L4RedirectRules that define the DNAT redirection from the pod to the destination in redirect mode.
	RedirectRules []L4RedirectRule `json:"redirectRules,omitempty" protobuf:"bytes,1,rep,name=redirectRules"`

	// FallbackIP specifies the remote destination's IP address. Can be IPv4 or IPv6.
	// If no redirect rules are specified, all traffic from the router are redirected to this IP.
	// If redirect rules are specified, then any connections on any other port (undefined in the rules) on the router will be redirected to this IP.
	// If redirect rules are specified and no fallback IP is provided, connections on other ports will simply be rejected.
	FallbackIP string `json:"fallbackIP,omitempty" protobuf:"bytes,2,opt,name=fallbackIP"`
}

RedirectConfig represents the configuration parameters specific to redirect mode.

func (*RedirectConfig) DeepCopy

func (in *RedirectConfig) DeepCopy() *RedirectConfig

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

func (*RedirectConfig) DeepCopyInto

func (in *RedirectConfig) DeepCopyInto(out *RedirectConfig)

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

func (*RedirectConfig) Descriptor

func (*RedirectConfig) Descriptor() ([]byte, []int)

func (*RedirectConfig) Marshal

func (m *RedirectConfig) Marshal() (dAtA []byte, err error)

func (*RedirectConfig) MarshalTo

func (m *RedirectConfig) MarshalTo(dAtA []byte) (int, error)

func (*RedirectConfig) MarshalToSizedBuffer

func (m *RedirectConfig) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*RedirectConfig) ProtoMessage

func (*RedirectConfig) ProtoMessage()

func (*RedirectConfig) Reset

func (m *RedirectConfig) Reset()

func (*RedirectConfig) Size

func (m *RedirectConfig) Size() (n int)

func (*RedirectConfig) String

func (this *RedirectConfig) String() string

func (RedirectConfig) SwaggerDoc

func (RedirectConfig) SwaggerDoc() map[string]string

func (*RedirectConfig) Unmarshal

func (m *RedirectConfig) Unmarshal(dAtA []byte) error

func (*RedirectConfig) XXX_DiscardUnknown

func (m *RedirectConfig) XXX_DiscardUnknown()

func (*RedirectConfig) XXX_Marshal

func (m *RedirectConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*RedirectConfig) XXX_Merge

func (m *RedirectConfig) XXX_Merge(src proto.Message)

func (*RedirectConfig) XXX_Size

func (m *RedirectConfig) XXX_Size() int

func (*RedirectConfig) XXX_Unmarshal

func (m *RedirectConfig) XXX_Unmarshal(b []byte) error

Jump to

Keyboard shortcuts

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