v1alpha1

package
v1.0.12 Latest Latest
Warning

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

Go to latest
Published: May 9, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package v1alpha1 contains the v1alpha1 group NetworkLoadBalancer resources of the IONOS Cloud provider. +kubebuilder:object:generate=true +groupName=nlb.ionoscloud.crossplane.io +versionName=v1alpha1

Index

Constants

View Source
const (
	Group   = "nlb.ionoscloud.crossplane.io"
	Version = "v1alpha1"
)

Package type metadata.

Variables

View Source
var (
	FlowLogKind             = reflect.TypeOf(FlowLog{}).Name()
	FlowLogGroupKind        = schema.GroupKind{Group: Group, Kind: FlowLogKind}.String()
	FlowLogKindAPIVersion   = FlowLogKind + "." + SchemeGroupVersion.String()
	FlowLogGroupVersionKind = SchemeGroupVersion.WithKind(FlowLogKind)
)

NetworkLoadBalancer type metadata.

View Source
var (
	ForwardingRuleKind             = reflect.TypeOf(ForwardingRule{}).Name()
	ForwardingRuleGroupKind        = schema.GroupKind{Group: Group, Kind: ForwardingRuleKind}.String()
	ForwardingRuleKindAPIVersion   = ForwardingRuleKind + "." + SchemeGroupVersion.String()
	ForwardingRuleGroupVersionKind = SchemeGroupVersion.WithKind(ForwardingRuleKind)
)

NetworkLoadBalancer type metadata.

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version}

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	NetworkLoadBalancerKind             = reflect.TypeOf(NetworkLoadBalancer{}).Name()
	NetworkLoadBalancerGroupKind        = schema.GroupKind{Group: Group, Kind: NetworkLoadBalancerKind}.String()
	NetworkLoadBalancerKindAPIVersion   = NetworkLoadBalancerKind + "." + SchemeGroupVersion.String()
	NetworkLoadBalancerGroupVersionKind = SchemeGroupVersion.WithKind(NetworkLoadBalancerKind)
)

NetworkLoadBalancer type metadata

Functions

func ExtractNetworkLoadBalancerID

func ExtractNetworkLoadBalancerID() reference.ExtractValueFn

ExtractNetworkLoadBalancerID returns the externalName of a referenced NetworkLoadBalancer.

Types

type DatacenterConfig

type DatacenterConfig struct {
	// DatacenterID is the ID of the Datacenter on which the resource should have access.
	// It needs to be provided directly or via reference.
	//
	// +immutable
	// +kubebuilder:validation:Format=uuid
	// +crossplane:generate:reference:type=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.Datacenter
	// +crossplane:generate:reference:extractor=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.ExtractDatacenterID()
	DatacenterID string `json:"datacenterId,omitempty"`
	// DatacenterIDRef references to a Datacenter to retrieve its ID.
	//
	// +optional
	// +immutable
	DatacenterIDRef *xpv1.Reference `json:"datacenterIdRef,omitempty"`
	// DatacenterIDSelector selects reference to a Datacenter to retrieve its DatacenterID.
	//
	// +optional
	DatacenterIDSelector *xpv1.Selector `json:"datacenterIdSelector,omitempty"`
}

DatacenterConfig is used by resources that need to link datacenters via id or via reference.

func (*DatacenterConfig) DeepCopy

func (in *DatacenterConfig) DeepCopy() *DatacenterConfig

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

func (*DatacenterConfig) DeepCopyInto

func (in *DatacenterConfig) DeepCopyInto(out *DatacenterConfig)

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

type FlowLog

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

	Spec   FlowLogSpec   `json:"spec"`
	Status FlowLogStatus `json:"status,omitempty"`
}

An FlowLog is an example API type. +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:printcolumn:name="DATACENTER ID",type="string",JSONPath=".spec.forProvider.datacenterConfig.datacenterId" +kubebuilder:printcolumn:name="NETWORKLOADBALANCER ID",type="string",JSONPath=".spec.forProvider.networkLoadBalancerConfig.networkLoadBalancerId" +kubebuilder:printcolumn:name="FLOWLOG ID",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +kubebuilder:printcolumn:name="FLOWLOG NAME",type="string",JSONPath=".spec.forProvider.name" +kubebuilder:printcolumn:name="ACTION",type="string",JSONPath=".spec.forProvider.action" +kubebuilder:printcolumn:name="DIRECTION",type="string",JSONPath=".spec.forProvider.direction" +kubebuilder:printcolumn:name="S3BUCKET",type="string",JSONPath=".spec.forProvider.bucket" +kubebuilder:printcolumn:name="STATE",type="string",JSONPath=".status.atProvider.state" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ionoscloud}

func (*FlowLog) DeepCopy

func (in *FlowLog) DeepCopy() *FlowLog

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

func (*FlowLog) DeepCopyInto

func (in *FlowLog) DeepCopyInto(out *FlowLog)

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

func (*FlowLog) DeepCopyObject

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

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

func (*FlowLog) GetAction

func (f *FlowLog) GetAction() string

GetAction returns the action of the flow log

func (*FlowLog) GetBucket

func (f *FlowLog) GetBucket() string

GetBucket returns the bucket of the flow log

func (*FlowLog) GetCondition

func (mg *FlowLog) GetCondition(ct xpv1.ConditionType) xpv1.Condition

GetCondition of this FlowLog.

func (*FlowLog) GetDeletionPolicy

func (mg *FlowLog) GetDeletionPolicy() xpv1.DeletionPolicy

GetDeletionPolicy of this FlowLog.

func (*FlowLog) GetDirection

func (f *FlowLog) GetDirection() string

GetDirection returns the direction of the flow log

func (*FlowLog) GetFlowLogName

func (f *FlowLog) GetFlowLogName() string

GetFlowLogName returns the name of the flow log

func (*FlowLog) GetManagementPolicies

func (mg *FlowLog) GetManagementPolicies() xpv1.ManagementPolicies

GetManagementPolicies of this FlowLog.

func (*FlowLog) GetProviderConfigReference

func (mg *FlowLog) GetProviderConfigReference() *xpv1.Reference

GetProviderConfigReference of this FlowLog.

func (*FlowLog) GetPublishConnectionDetailsTo

func (mg *FlowLog) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo

GetPublishConnectionDetailsTo of this FlowLog.

func (*FlowLog) GetWriteConnectionSecretToReference

func (mg *FlowLog) GetWriteConnectionSecretToReference() *xpv1.SecretReference

GetWriteConnectionSecretToReference of this FlowLog.

func (*FlowLog) ResolveReferences

func (mg *FlowLog) ResolveReferences(ctx context.Context, c client.Reader) error

ResolveReferences of this FlowLog.

func (*FlowLog) SetConditions

func (mg *FlowLog) SetConditions(c ...xpv1.Condition)

SetConditions of this FlowLog.

func (*FlowLog) SetDeletionPolicy

func (mg *FlowLog) SetDeletionPolicy(r xpv1.DeletionPolicy)

SetDeletionPolicy of this FlowLog.

func (*FlowLog) SetManagementPolicies

func (mg *FlowLog) SetManagementPolicies(r xpv1.ManagementPolicies)

SetManagementPolicies of this FlowLog.

func (*FlowLog) SetProviderConfigReference

func (mg *FlowLog) SetProviderConfigReference(r *xpv1.Reference)

SetProviderConfigReference of this FlowLog.

func (*FlowLog) SetPublishConnectionDetailsTo

func (mg *FlowLog) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)

SetPublishConnectionDetailsTo of this FlowLog.

func (*FlowLog) SetState

func (f *FlowLog) SetState(state string)

SetState sets the state of the flow log observation

func (*FlowLog) SetWriteConnectionSecretToReference

func (mg *FlowLog) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)

SetWriteConnectionSecretToReference of this FlowLog.

type FlowLogList

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

FlowLogList contains a list of NetworkLoadBalancer

func (*FlowLogList) DeepCopy

func (in *FlowLogList) DeepCopy() *FlowLogList

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

func (*FlowLogList) DeepCopyInto

func (in *FlowLogList) DeepCopyInto(out *FlowLogList)

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

func (*FlowLogList) DeepCopyObject

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

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

func (*FlowLogList) GetItems

func (l *FlowLogList) GetItems() []resource.Managed

GetItems of this FlowLogList.

type FlowLogObservation

type FlowLogObservation struct {
	FlowLogID string `json:"flowLogId,omitempty"`
	State     string `json:"state,omitempty"`
}

FlowLogObservation are the observable fields of a Network Load Balancer FlowLog.

func (*FlowLogObservation) DeepCopy

func (in *FlowLogObservation) DeepCopy() *FlowLogObservation

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

func (*FlowLogObservation) DeepCopyInto

func (in *FlowLogObservation) DeepCopyInto(out *FlowLogObservation)

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

type FlowLogParameters

type FlowLogParameters struct {
	// Datacenter in which the Network Load Balancer that this Flow Log applies to is provisioned in.
	//
	// +immutable
	// +kubebuilder:validation:Required
	DatacenterCfg DatacenterConfig `json:"datacenterConfig"`
	// NetworkLoadBalancer to which this Flow Log will apply. There can only be one flow log per Network Load Balancer.
	//
	// +immutable
	// +kubebuilder:validation:Required
	NLBCfg NetworkLoadBalancerConfig `json:"networkLoadBalancerConfig"`
	// Name of the Flow Log.
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`
	// Action specifies the traffic action pattern, accepted values: ACCEPTED, REJECTED, ALL
	//
	// +kubebuilder:validation:Enum=ACCEPTED;REJECTED;ALL
	// +kubebuilder:validation:Required
	Action string `json:"action"`
	// Direction specifies the traffic action pattern, accepted values: INGRESS, EGRESS, BIDIRECTIONAL
	//
	// +kubebuilder:validation:Enum=INGRESS;EGRESS;BIDIRECTIONAL
	// +kubebuilder:validation:Required
	Direction string `json:"direction"`
	// Bucket name of an existing IONOS Cloud S3 bucket
	//
	// +kubebuilder:validation:Required
	Bucket string `json:"bucket"`
}

FlowLogParameters are the observable fields of a Network Load Balancer FlowLog. Required fields in order to create a Network Load Balancer FlowLog: DatacenterCfg (via ID or via reference), NLBCfg (via ID or via reference), Name, Action Direction. Bucket.

func (*FlowLogParameters) DeepCopy

func (in *FlowLogParameters) DeepCopy() *FlowLogParameters

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

func (*FlowLogParameters) DeepCopyInto

func (in *FlowLogParameters) DeepCopyInto(out *FlowLogParameters)

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

type FlowLogSpec

type FlowLogSpec struct {
	xpv1.ResourceSpec `json:",inline"`
	ForProvider       FlowLogParameters `json:"forProvider"`
}

FlowLogSpec defines the desired state of a Network Load Balancer FlowLog.

func (*FlowLogSpec) DeepCopy

func (in *FlowLogSpec) DeepCopy() *FlowLogSpec

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

func (*FlowLogSpec) DeepCopyInto

func (in *FlowLogSpec) DeepCopyInto(out *FlowLogSpec)

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

type FlowLogStatus

type FlowLogStatus struct {
	xpv1.ResourceStatus `json:",inline"`
	AtProvider          FlowLogObservation `json:"atProvider,omitempty"`
}

FlowLogStatus represents the observed state of a Network Load Balancer FlowLog.

func (*FlowLogStatus) DeepCopy

func (in *FlowLogStatus) DeepCopy() *FlowLogStatus

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

func (*FlowLogStatus) DeepCopyInto

func (in *FlowLogStatus) DeepCopyInto(out *FlowLogStatus)

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

type ForwardingRule

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

	Spec   ForwardingRuleSpec   `json:"spec"`
	Status ForwardingRuleStatus `json:"status,omitempty"`
}

An ForwardingRule is an example API type. +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:printcolumn:name="DATACENTER ID",type="string",JSONPath=".spec.forProvider.datacenterConfig.datacenterId" +kubebuilder:printcolumn:name="NETWORKLOADBALANCER ID",type="string",JSONPath=".spec.forProvider.networkLoadBalancerConfig.networkLoadBalancerId" +kubebuilder:printcolumn:name="FORWARDINGRULE ID",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +kubebuilder:printcolumn:name="PROTOCOL",type="string",JSONPath=".spec.forProvider.protocol" +kubebuilder:printcolumn:name="LISTENER IP",type="string",JSONPath=".status.atProvider.listenerIp" +kubebuilder:printcolumn:name="PORT",type="integer",JSONPath=".status.atProvider.listenerPort" +kubebuilder:printcolumn:name="STATE",type="string",JSONPath=".status.atProvider.state" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ionoscloud}

func (*ForwardingRule) DeepCopy

func (in *ForwardingRule) DeepCopy() *ForwardingRule

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

func (*ForwardingRule) DeepCopyInto

func (in *ForwardingRule) DeepCopyInto(out *ForwardingRule)

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

func (*ForwardingRule) DeepCopyObject

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

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

func (*ForwardingRule) GetCondition

func (mg *ForwardingRule) GetCondition(ct xpv1.ConditionType) xpv1.Condition

GetCondition of this ForwardingRule.

func (*ForwardingRule) GetDeletionPolicy

func (mg *ForwardingRule) GetDeletionPolicy() xpv1.DeletionPolicy

GetDeletionPolicy of this ForwardingRule.

func (*ForwardingRule) GetManagementPolicies

func (mg *ForwardingRule) GetManagementPolicies() xpv1.ManagementPolicies

GetManagementPolicies of this ForwardingRule.

func (*ForwardingRule) GetProviderConfigReference

func (mg *ForwardingRule) GetProviderConfigReference() *xpv1.Reference

GetProviderConfigReference of this ForwardingRule.

func (*ForwardingRule) GetPublishConnectionDetailsTo

func (mg *ForwardingRule) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo

GetPublishConnectionDetailsTo of this ForwardingRule.

func (*ForwardingRule) GetWriteConnectionSecretToReference

func (mg *ForwardingRule) GetWriteConnectionSecretToReference() *xpv1.SecretReference

GetWriteConnectionSecretToReference of this ForwardingRule.

func (*ForwardingRule) ResolveReferences

func (mg *ForwardingRule) ResolveReferences(ctx context.Context, c client.Reader) error

ResolveReferences of this ForwardingRule.

func (*ForwardingRule) SetConditions

func (mg *ForwardingRule) SetConditions(c ...xpv1.Condition)

SetConditions of this ForwardingRule.

func (*ForwardingRule) SetDeletionPolicy

func (mg *ForwardingRule) SetDeletionPolicy(r xpv1.DeletionPolicy)

SetDeletionPolicy of this ForwardingRule.

func (*ForwardingRule) SetManagementPolicies

func (mg *ForwardingRule) SetManagementPolicies(r xpv1.ManagementPolicies)

SetManagementPolicies of this ForwardingRule.

func (*ForwardingRule) SetProviderConfigReference

func (mg *ForwardingRule) SetProviderConfigReference(r *xpv1.Reference)

SetProviderConfigReference of this ForwardingRule.

func (*ForwardingRule) SetPublishConnectionDetailsTo

func (mg *ForwardingRule) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)

SetPublishConnectionDetailsTo of this ForwardingRule.

func (*ForwardingRule) SetWriteConnectionSecretToReference

func (mg *ForwardingRule) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)

SetWriteConnectionSecretToReference of this ForwardingRule.

type ForwardingRuleHealthCheck

type ForwardingRuleHealthCheck struct {
	// ClientTimeout the maximum time in milliseconds to wait for the client to acknowledge or send data; default is 50,000 (50 seconds).
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=50000
	ClientTimeout int32 `json:"clientTimeout,omitempty"`
	// ConnectTimeout the maximum time in milliseconds to wait for a connection attempt to a target to succeed; default is 5000 (five seconds).
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=5000
	ConnectTimeout int32 `json:"connectTimeout,omitempty"`
	// TargetTimeout the maximum time in milliseconds that a target can remain inactive; default is 50,000 (50 seconds).
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=50000
	TargetTimeout int32 `json:"targetTimeout,omitempty"`
	// Retries the maximum number of attempts to reconnect to a target after a connection failure. Valid range is 0 to 65535 and default is three reconnection attempts.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=3
	Retries int32 `json:"retries,omitempty"`
}

ForwardingRuleHealthCheck structure for the forwarding rule health check

func (*ForwardingRuleHealthCheck) DeepCopy

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

func (*ForwardingRuleHealthCheck) DeepCopyInto

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

type ForwardingRuleList

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

ForwardingRuleList contains a list of NetworkLoadBalancer

func (*ForwardingRuleList) DeepCopy

func (in *ForwardingRuleList) DeepCopy() *ForwardingRuleList

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

func (*ForwardingRuleList) DeepCopyInto

func (in *ForwardingRuleList) DeepCopyInto(out *ForwardingRuleList)

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

func (*ForwardingRuleList) DeepCopyObject

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

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

func (*ForwardingRuleList) GetItems

func (l *ForwardingRuleList) GetItems() []resource.Managed

GetItems of this ForwardingRuleList.

type ForwardingRuleObservation

type ForwardingRuleObservation struct {
	ForwardingRuleID string `json:"forwardingRuleId,omitempty"`
	State            string `json:"state,omitempty"`
	ListenerIP       string `json:"listenerIp,omitempty"`
	ListenerPort     int32  `json:"listenerPort,omitempty"`
}

ForwardingRuleObservation are the observable fields of a Network Load Balancer ForwardingRule.

func (*ForwardingRuleObservation) DeepCopy

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

func (*ForwardingRuleObservation) DeepCopyInto

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

type ForwardingRuleParameters

type ForwardingRuleParameters struct {
	// Datacenter in which the Network Load Balancer that this Forwarding Rule applies to is provisioned in.
	//
	// +immutable
	// +kubebuilder:validation:Required
	DatacenterCfg DatacenterConfig `json:"datacenterConfig"`
	// NetworkLoadBalancer to which this Forwarding Rule will apply.
	//
	// +immutable
	// +kubebuilder:validation:Required
	NLBCfg NetworkLoadBalancerConfig `json:"networkLoadBalancerConfig"`
	// The name of the Network Load Balancer Forwarding Rule.
	//
	// +immutable
	// +kubebuilder:validation:Required
	Name string `json:"name"`
	// Balancing protocol
	//
	// +kubebuilder:validation:Enum=TCP;HTTP
	// +kubebuilder:validation:Required
	Protocol string `json:"protocol"`
	// Listening (inbound) IP. IP must be assigned to the listener NIC of the Network Load Balancer.
	//
	// +kubebuilder:validation:Required
	ListenerIP IPConfig `json:"listenerIpConfig"`
	// Listening (inbound) port number; valid range is 1 to 65535.
	//
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:validation:Required
	ListenerPort int32 `json:"listenerPort"`
	// Algorithm used in load balancing
	//
	// +kubebuilder:validation:Enum=ROUND_ROBIN;LEAST_CONNECTION;RANDOM;SOURCE_IP
	// +kubebuilder:validation:Required
	Algorithm string `json:"algorithm"`
	// HealthCheck options for the forwarding rule health check
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default={}
	HealthCheck ForwardingRuleHealthCheck `json:"healthCheck,omitempty"`
	// Targets is the list of load balanced targets
	//
	// +kubebuilder:validation:Optional
	Targets []ForwardingRuleTarget `json:"targets,omitempty"`
}

ForwardingRuleParameters are the observable fields of a Network Load Balancer ForwardingRule. Required fields in order to create a Network Load Balancer ForwardingRule: DatacenterCfg (via ID or via reference), NLBCfg (via ID or via reference), Name, Protocol, ListenerIP (via ID or via reference), ListenerPort.

func (*ForwardingRuleParameters) DeepCopy

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

func (*ForwardingRuleParameters) DeepCopyInto

func (in *ForwardingRuleParameters) DeepCopyInto(out *ForwardingRuleParameters)

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

type ForwardingRuleSpec

type ForwardingRuleSpec struct {
	xpv1.ResourceSpec `json:",inline"`
	ForProvider       ForwardingRuleParameters `json:"forProvider"`
}

ForwardingRuleSpec defines the desired state of a Network Load Balancer ForwardingRule.

func (*ForwardingRuleSpec) DeepCopy

func (in *ForwardingRuleSpec) DeepCopy() *ForwardingRuleSpec

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

func (*ForwardingRuleSpec) DeepCopyInto

func (in *ForwardingRuleSpec) DeepCopyInto(out *ForwardingRuleSpec)

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

type ForwardingRuleStatus

type ForwardingRuleStatus struct {
	xpv1.ResourceStatus `json:",inline"`
	AtProvider          ForwardingRuleObservation `json:"atProvider,omitempty"`
}

ForwardingRuleStatus represents the observed state of a Network Load Balancer ForwardingRule.

func (*ForwardingRuleStatus) DeepCopy

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

func (*ForwardingRuleStatus) DeepCopyInto

func (in *ForwardingRuleStatus) DeepCopyInto(out *ForwardingRuleStatus)

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

type ForwardingRuleTarget

type ForwardingRuleTarget struct {
	// IP of the balanced target
	//
	// +kubebuilder:validation:Required
	IPCfg IPConfig `json:"ipConfig"`
	// Port of the balanced target
	//
	// +kubebuilder:validation:Required
	Port int32 `json:"port"`
	// Weight of the balanced target Traffic is distributed in proportion to target weight, relative to the combined weight of all targets.
	// A target with higher weight receives a greater share of traffic. Valid range is 0 to 256 and default is 1.
	// Targets with weight of 0 do not participate in load balancing but still accept persistent connections.
	// It is best to assign weights in the middle of the range to leave room for later adjustments.
	//
	// +kubebuilder:validation:Minimum:0
	// +kubebuilder:validation:Maximum:256
	// +kubebuilder:validation:Required
	Weight int32 `json:"weight"`
	// ProxyProtocol version of the proxy protocol
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=none;v1;v2;v2ssl
	// +kubebuilder:default=none
	ProxyProtocol string `json:"proxyProtocol,omitempty"`
	// HealthCheck options of the balanced target health check
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default={}
	HealthCheck ForwardingRuleTargetHealthCheck `json:"healthCheck,omitempty"`
}

ForwardingRuleTarget structure for the forwarding rule target Required fields for the ForwardingRuleTarget: IPCfg (via ID or Reference) Port Weight

func (*ForwardingRuleTarget) DeepCopy

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

func (*ForwardingRuleTarget) DeepCopyInto

func (in *ForwardingRuleTarget) DeepCopyInto(out *ForwardingRuleTarget)

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

type ForwardingRuleTargetHealthCheck

type ForwardingRuleTargetHealthCheck struct {
	// Check makes the target available only if it accepts periodic health check TCP connection attempts.
	// When turned off, the target is considered always available.
	// The health check only consists of a connection attempt to the address and port of the target.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	Check bool `json:"check,omitempty"`
	// CheckInterval the interval in milliseconds between consecutive health checks; default is 2000.
	//
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=2000
	CheckInterval int32 `json:"checkInterval,omitempty"`
	// Maintenance mode prevents the target from receiving balanced traffic.
	//
	// +kubebuilder:validation:Optional
	Maintenance bool `json:"maintenance,omitempty"`
}

ForwardingRuleTargetHealthCheck structure for the forwarding rule target health check

func (*ForwardingRuleTargetHealthCheck) DeepCopy

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

func (*ForwardingRuleTargetHealthCheck) DeepCopyInto

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

type IPBlockConfig

type IPBlockConfig struct {
	// IPBlockID is the ID of the IPBlock on which the resource will be created.
	// It needs to be provided directly or via reference.
	//
	// +immutable
	// +kubebuilder:validation:Format=uuid
	// +crossplane:generate:reference:type=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.IPBlock
	// +crossplane:generate:reference:extractor=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.ExtractIPBlockID()
	IPBlockID string `json:"ipBlockId,omitempty"`
	// IPBlockIDRef references to a IPBlock to retrieve its ID.
	//
	// +optional
	// +immutable
	IPBlockIDRef *xpv1.Reference `json:"ipBlockIdRef,omitempty"`
	// IPBlockIDSelector selects reference to a IPBlock to retrieve its IPBlockID.
	//
	// +optional
	IPBlockIDSelector *xpv1.Selector `json:"ipBlockIdSelector,omitempty"`
}

IPBlockConfig used by resources that need to link IPBlocks via id or via reference

func (*IPBlockConfig) DeepCopy

func (in *IPBlockConfig) DeepCopy() *IPBlockConfig

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

func (*IPBlockConfig) DeepCopyInto

func (in *IPBlockConfig) DeepCopyInto(out *IPBlockConfig)

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

type IPConfig

type IPConfig struct {
	// IP can be used to directly specify a single ip to the resource
	//
	// +kubebuilder:validation:Pattern="^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
	IP string `json:"ip,omitempty"`
	// IPBlockConfig can be used to reference an existing IPBlock and assign an ip by indexing
	// For Network Load Balancer Forwarding Rules, only a single index can be specified
	IPBlockConfig `json:"ipBlock,omitempty"`
	// Index can be used to retrieve an ip from the referenced IPBlock
	// Starting index is 0.
	Index uint `json:"index,omitempty"`
}

IPConfig used by resources that need to link a single IP directly or by indexing a referenced IPBlock resource

func (*IPConfig) DeepCopy

func (in *IPConfig) DeepCopy() *IPConfig

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

func (*IPConfig) DeepCopyInto

func (in *IPConfig) DeepCopyInto(out *IPConfig)

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

type IPsBlockConfig

type IPsBlockConfig struct {
	// IPBlock  used to reference an existing IPBlock
	IPBlock IPBlockConfig `json:"ipBlockConfig,omitempty"`
	// Indexes can be used to retrieve multiple ips from an IPBlock
	// Starting index is 0. If no index is set, the entire IP set of the block will be assigned.
	Indexes []int `json:"indexes,omitempty"`
}

IPsBlockConfig used to specify an IPBlock together with an Indexes string to select multiple IPs

func (*IPsBlockConfig) DeepCopy

func (in *IPsBlockConfig) DeepCopy() *IPsBlockConfig

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

func (*IPsBlockConfig) DeepCopyInto

func (in *IPsBlockConfig) DeepCopyInto(out *IPsBlockConfig)

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

type IPsConfig

type IPsConfig struct {
	// IPs can be used to directly specify a list of ips to the resource
	IPs []string `json:"ips,omitempty"`
	// IPBlocks can be used to reference existing IPBlocks and assign ips by indexing
	IPsBlocksCfg []IPsBlockConfig `json:"ipsBlocksConfig,omitempty"`
}

IPsConfig used by resources that need to link multiple IPs directly or by indexing referenced IPBlock resources

func (*IPsConfig) DeepCopy

func (in *IPsConfig) DeepCopy() *IPsConfig

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

func (*IPsConfig) DeepCopyInto

func (in *IPsConfig) DeepCopyInto(out *IPsConfig)

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

type LanConfig

type LanConfig struct {
	// LanID is the ID of the Lan on which the resource will be created.
	// It needs to be provided directly or via reference.
	//
	// +immutable
	// +crossplane:generate:reference:type=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.Lan
	// +crossplane:generate:reference:extractor=github.com/ionos-cloud/crossplane-provider-ionoscloud/apis/compute/v1alpha1.ExtractLanID()
	LanID string `json:"lanId,omitempty"`
	// LanIDRef references to a Lan to retrieve its ID.
	//
	// +optional
	// +immutable
	LanIDRef *xpv1.Reference `json:"lanIdRef,omitempty"`
	// LanIDSelector selects reference to a Lan to retrieve its LanID.
	//
	// +optional
	LanIDSelector *xpv1.Selector `json:"lanIdSelector,omitempty"`
}

LanConfig is used by resources that need to link lans via id or via reference.

func (*LanConfig) DeepCopy

func (in *LanConfig) DeepCopy() *LanConfig

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

func (*LanConfig) DeepCopyInto

func (in *LanConfig) DeepCopyInto(out *LanConfig)

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

type NetworkLoadBalancer

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

	Spec   NetworkLoadBalancerSpec   `json:"spec"`
	Status NetworkLoadBalancerStatus `json:"status,omitempty"`
}

A NetworkLoadBalancer is an example API type. +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:printcolumn:name="DATACENTER ID",type="string",JSONPath=".spec.forProvider.datacenterConfig.datacenterId" +kubebuilder:printcolumn:name="NETWORKLOADBALANCER ID",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +kubebuilder:printcolumn:name="NETWORKLOADBALANCER NAME",type="string",JSONPath=".spec.forProvider.name" +kubebuilder:printcolumn:name="LISTENER LAN",type="string",JSONPath=".spec.forProvider.listenerLanConfig.lanId" +kubebuilder:printcolumn:name="TARGET LAN",type="string",JSONPath=".spec.forProvider.targetLanConfig.lanId" +kubebuilder:printcolumn:name="LISTENER IPS",type="string",JSONPath=".status.atProvider.listenerIps" +kubebuilder:printcolumn:name="PRIVATE IPS",type="string",JSONPath=".status.atProvider.privateIps" +kubebuilder:printcolumn:name="STATE",type="string",JSONPath=".status.atProvider.state" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ionoscloud}

func (*NetworkLoadBalancer) DeepCopy

func (in *NetworkLoadBalancer) DeepCopy() *NetworkLoadBalancer

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

func (*NetworkLoadBalancer) DeepCopyInto

func (in *NetworkLoadBalancer) DeepCopyInto(out *NetworkLoadBalancer)

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

func (*NetworkLoadBalancer) DeepCopyObject

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

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

func (*NetworkLoadBalancer) GetCondition

func (mg *NetworkLoadBalancer) GetCondition(ct xpv1.ConditionType) xpv1.Condition

GetCondition of this NetworkLoadBalancer.

func (*NetworkLoadBalancer) GetDeletionPolicy

func (mg *NetworkLoadBalancer) GetDeletionPolicy() xpv1.DeletionPolicy

GetDeletionPolicy of this NetworkLoadBalancer.

func (*NetworkLoadBalancer) GetManagementPolicies

func (mg *NetworkLoadBalancer) GetManagementPolicies() xpv1.ManagementPolicies

GetManagementPolicies of this NetworkLoadBalancer.

func (*NetworkLoadBalancer) GetProviderConfigReference

func (mg *NetworkLoadBalancer) GetProviderConfigReference() *xpv1.Reference

GetProviderConfigReference of this NetworkLoadBalancer.

func (*NetworkLoadBalancer) GetPublishConnectionDetailsTo

func (mg *NetworkLoadBalancer) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo

GetPublishConnectionDetailsTo of this NetworkLoadBalancer.

func (*NetworkLoadBalancer) GetWriteConnectionSecretToReference

func (mg *NetworkLoadBalancer) GetWriteConnectionSecretToReference() *xpv1.SecretReference

GetWriteConnectionSecretToReference of this NetworkLoadBalancer.

func (*NetworkLoadBalancer) ResolveReferences

func (mg *NetworkLoadBalancer) ResolveReferences(ctx context.Context, c client.Reader) error

ResolveReferences of this NetworkLoadBalancer.

func (*NetworkLoadBalancer) SetConditions

func (mg *NetworkLoadBalancer) SetConditions(c ...xpv1.Condition)

SetConditions of this NetworkLoadBalancer.

func (*NetworkLoadBalancer) SetDeletionPolicy

func (mg *NetworkLoadBalancer) SetDeletionPolicy(r xpv1.DeletionPolicy)

SetDeletionPolicy of this NetworkLoadBalancer.

func (*NetworkLoadBalancer) SetManagementPolicies

func (mg *NetworkLoadBalancer) SetManagementPolicies(r xpv1.ManagementPolicies)

SetManagementPolicies of this NetworkLoadBalancer.

func (*NetworkLoadBalancer) SetProviderConfigReference

func (mg *NetworkLoadBalancer) SetProviderConfigReference(r *xpv1.Reference)

SetProviderConfigReference of this NetworkLoadBalancer.

func (*NetworkLoadBalancer) SetPublishConnectionDetailsTo

func (mg *NetworkLoadBalancer) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)

SetPublishConnectionDetailsTo of this NetworkLoadBalancer.

func (*NetworkLoadBalancer) SetWriteConnectionSecretToReference

func (mg *NetworkLoadBalancer) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)

SetWriteConnectionSecretToReference of this NetworkLoadBalancer.

type NetworkLoadBalancerConfig

type NetworkLoadBalancerConfig struct {
	// NetworkLoadBalancerID is the ID of the NetworkLoadBalancer on which the resource should have access.
	// It needs to be provided directly or via reference.
	//
	// +immutable
	// +kubebuilder:validation:Format=uuid
	// +crossplane:generate:reference:type=NetworkLoadBalancer
	// +crossplane:generate:reference:extractor=ExtractNetworkLoadBalancerID()
	NetworkLoadBalancerID string `json:"networkLoadBalancerId,omitempty"`
	// NetworkLoadBalancerIDRef references to a Datacenter to retrieve its ID.
	//
	// +optional
	// +immutable
	NetworkLoadBalancerIDRef *xpv1.Reference `json:"networkLoadBalancerIdRef,omitempty"`
	// NetworkLoadBalancerIDSelector selects reference to a Datacenter to retrieve its DatacenterID.
	//
	// +optional
	NetworkLoadBalancerIDSelector *xpv1.Selector `json:"networkLoadBalancerIdSelector,omitempty"`
}

NetworkLoadBalancerConfig is used by resources that need to link Network Load Balancers via id or via reference

func (*NetworkLoadBalancerConfig) DeepCopy

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

func (*NetworkLoadBalancerConfig) DeepCopyInto

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

type NetworkLoadBalancerList

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

NetworkLoadBalancerList contains a list of NetworkLoadBalancer

func (*NetworkLoadBalancerList) DeepCopy

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

func (*NetworkLoadBalancerList) DeepCopyInto

func (in *NetworkLoadBalancerList) DeepCopyInto(out *NetworkLoadBalancerList)

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

func (*NetworkLoadBalancerList) DeepCopyObject

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

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

func (*NetworkLoadBalancerList) GetItems

func (l *NetworkLoadBalancerList) GetItems() []resource.Managed

GetItems of this NetworkLoadBalancerList.

type NetworkLoadBalancerObservation

type NetworkLoadBalancerObservation struct {
	NetworkLoadBalancerID string `json:"networkLoadBalancerId,omitempty"`
	State                 string `json:"state,omitempty"`
	ListenerIPs           string `json:"listenerIps,omitempty"`
	PrivateIPs            string `json:"privateIps,omitempty"`
}

NetworkLoadBalancerObservation are the observable fields of an NetworkLoadBalancer.

func (*NetworkLoadBalancerObservation) DeepCopy

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

func (*NetworkLoadBalancerObservation) DeepCopyInto

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

type NetworkLoadBalancerParameters

type NetworkLoadBalancerParameters struct {
	// A Datacenter, to which the user has access, to provision the Network Load Balancer in.
	//
	// +immutable
	// +kubebuilder:validation:Required
	DatacenterCfg DatacenterConfig `json:"datacenterConfig"`
	// The name of the Network Load Balancer.
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`
	// ID of the listening (inbound) LAN.
	// Lan ID can be set directly or via reference.
	//
	// +kubebuilder:validation:Required
	ListenerLanCfg LanConfig `json:"listenerLanConfig"`
	// ID of the balanced private target (outbound) LAN .
	// Lan ID can be set directly or via reference.
	//
	// +kubebuilder:validation:Required
	TargetLanCfg LanConfig `json:"targetLanConfig"`
	// Collection of the Network Load Balancer IP addresses.
	// (Inbound and outbound) IPs of the listenerLan are customer-reserved public IPs for
	// the public Load Balancers, and private IPs for the private Load Balancers.
	// The IPs can be set directly or using reference to the existing IPBlocks and indexes.
	//
	// +kubebuilder:validation:Optional
	IpsCfg IPsConfig `json:"ipsConfig,omitempty"`
	// Collection of private IP addresses with the subnet mask of the Network Load Balancer.
	// IPs must contain valid a subnet mask.
	// If no IP is provided, the system will generate an IP with /24 subnet.
	//
	// +kubebuilder:validation:Optional
	LbPrivateIps []string `json:"lbPrivateIps,omitempty"`
}

NetworkLoadBalancerParameters are the observable fields of a NetworkLoadBalancer Required fields in order to create a NetworkLoadBalancer: DatacenterCfg (via ID or via reference), Name, ListenerLanCfg (via ID or via reference), TargetLanCfg (via ID or via reference).

func (*NetworkLoadBalancerParameters) DeepCopy

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

func (*NetworkLoadBalancerParameters) DeepCopyInto

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

type NetworkLoadBalancerSpec

type NetworkLoadBalancerSpec struct {
	xpv1.ResourceSpec `json:",inline"`
	ForProvider       NetworkLoadBalancerParameters `json:"forProvider"`
}

NetworkLoadBalancerSpec defines the desired state of an NetworkLoadBalancer.

func (*NetworkLoadBalancerSpec) DeepCopy

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

func (*NetworkLoadBalancerSpec) DeepCopyInto

func (in *NetworkLoadBalancerSpec) DeepCopyInto(out *NetworkLoadBalancerSpec)

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

type NetworkLoadBalancerStatus

type NetworkLoadBalancerStatus struct {
	xpv1.ResourceStatus `json:",inline"`
	AtProvider          NetworkLoadBalancerObservation `json:"atProvider,omitempty"`
}

NetworkLoadBalancerStatus represents the observed state of an NetworkLoadBalancer.

func (*NetworkLoadBalancerStatus) DeepCopy

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

func (*NetworkLoadBalancerStatus) DeepCopyInto

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