v1beta1

package
v0.3.3 Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2025 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package v1beta1 contains API Schema definitions for the fleet networking v1beta1 API group.

Index

Constants

View Source
const (
	// TrafficManagerBackendConditionAccepted condition indicates whether endpoints have been created or updated for the profile.
	// This does not indicate whether or not the configuration has been propagated to the data plane.
	//
	// Possible reasons for this condition to be True are:
	//
	// * "Accepted"
	//
	// Possible reasons for this condition to be False are:
	//
	// * "Invalid"
	//
	// Possible reasons for this condition to be Unknown are:
	//
	// * "Pending"
	//
	TrafficManagerBackendConditionAccepted TrafficManagerBackendConditionType = "Accepted"

	// TrafficManagerBackendReasonAccepted is used with the "Accepted" condition when the condition is True.
	TrafficManagerBackendReasonAccepted TrafficManagerBackendConditionReason = "Accepted"

	// TrafficManagerBackendReasonInvalid is used with the "Accepted" condition when one or
	// more endpoint references have an invalid or unsupported configuration
	// and cannot be configured on the Profile with more details in the message.
	TrafficManagerBackendReasonInvalid TrafficManagerBackendConditionReason = "Invalid"

	// TrafficManagerBackendReasonPending is used with the "Accepted" when creating or updating endpoint hits an internal error with
	// more details in the message and the controller will keep retry.
	TrafficManagerBackendReasonPending TrafficManagerBackendConditionReason = "Pending"
)
View Source
const (
	// TrafficManagerProfileConditionProgrammed condition indicates whether a profile has been generated that is assumed to be ready
	// soon in the underlying data plane. This does not indicate whether or not the configuration has been propagated
	// to the data plane.
	//
	// It is a positive-polarity summary condition, and so should always be
	// present on the resource with ObservedGeneration set.
	//
	// Possible reasons for this condition to be True are:
	//
	// * "Programmed"
	//
	// Possible reasons for this condition to be False are:
	//
	// * "Invalid"
	// * "DNSNameNotAvailable"
	//
	// Possible reasons for this condition to be Unknown are:
	//
	// * "Pending"
	//
	TrafficManagerProfileConditionProgrammed TrafficManagerProfileConditionType = "Programmed"

	// TrafficManagerProfileReasonProgrammed is used with the "Programmed" condition when the condition is true.
	TrafficManagerProfileReasonProgrammed TrafficManagerProfileConditionReason = "Programmed"

	// TrafficManagerProfileReasonInvalid is used with the "Programmed" when the profile is syntactically or semantically invalid.
	TrafficManagerProfileReasonInvalid TrafficManagerProfileConditionReason = "Invalid"

	// TrafficManagerProfileReasonDNSNameNotAvailable is used with the "Programmed" condition when the generated DNS name is not available.
	TrafficManagerProfileReasonDNSNameNotAvailable TrafficManagerProfileConditionReason = "DNSNameNotAvailable"

	// TrafficManagerProfileReasonPending is used with the "Programmed" when creating or updating the profile hits an internal error
	// with more details in the message and the controller will keep retry.
	TrafficManagerProfileReasonPending TrafficManagerProfileConditionReason = "Pending"
)
View Source
const (
	TrafficManagerBackendKind = "TrafficManagerBackend"
)
View Source
const (
	TrafficManagerProfileKind = "TrafficManagerProfile"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "networking.fleet.azure.com", Version: "v1beta1"}

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

This section is empty.

Types

type ClusterStatus

type ClusterStatus struct {
	// cluster is the name of the exporting cluster. Must be a valid RFC-1123 DNS
	// label.
	Cluster string `json:"cluster"`
}

ClusterStatus contains service configuration mapped to a specific source cluster.

func (*ClusterStatus) DeepCopy

func (in *ClusterStatus) DeepCopy() *ClusterStatus

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

func (*ClusterStatus) DeepCopyInto

func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)

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

type FromCluster

type FromCluster struct {
	// ClusterStatus describes the source cluster status.
	ClusterStatus `json:",inline"`

	// Weight defines the weight configured in the serviceExport from the source cluster.
	// Possible values are from 0 to 1000.
	// +optional
	Weight *int64 `json:"weight,omitempty"`
}

FromCluster contains service configuration mapped to a specific source cluster.

func (*FromCluster) DeepCopy

func (in *FromCluster) DeepCopy() *FromCluster

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

func (*FromCluster) DeepCopyInto

func (in *FromCluster) DeepCopyInto(out *FromCluster)

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

type MonitorConfig

type MonitorConfig struct {
	// The monitor interval for endpoints in this profile. This is the interval at which Traffic Manager will check the health
	// of each endpoint in this profile.
	// You can specify two values here: 30 seconds (normal probing) and 10 seconds (fast probing).
	// +optional
	// +kubebuilder:default=30
	// +kubebuilder:validation:Enum=10;30
	IntervalInSeconds *int64 `json:"intervalInSeconds,omitempty"`

	// The path relative to the endpoint domain name used to probe for endpoint health.
	// +optional
	// +kubebuilder:default="/"
	Path *string `json:"path,omitempty"`

	// The TCP port used to probe for endpoint health.
	// +optional
	// +kubebuilder:default=80
	Port *int64 `json:"port,omitempty"`

	// The protocol (HTTP, HTTPS or TCP) used to probe for endpoint health.
	// +kubebuilder:validation:Enum=HTTP;HTTPS;TCP
	// +optional
	// +kubebuilder:default="HTTP"
	Protocol *TrafficManagerMonitorProtocol `json:"protocol,omitempty"`

	// The monitor timeout for endpoints in this profile. This is the time that Traffic Manager allows endpoints in this profile
	// to response to the health check.
	// +optional
	// * If the IntervalInSeconds is set to 30 seconds, then you can set the Timeout value between 5 and 10 seconds.
	//   If no value is specified, it uses a default value of 10 seconds.
	// * If the IntervalInSeconds is set to 10 seconds, then you can set the Timeout value between 5 and 9 seconds.
	//   If no Timeout value is specified, it uses a default value of 9 seconds.
	// +kubebuilder:validation:Minimum=5
	// +kubebuilder:validation:Maximum=10
	TimeoutInSeconds *int64 `json:"timeoutInSeconds,omitempty"`

	// The number of consecutive failed health check that Traffic Manager tolerates before declaring an endpoint in this profile
	// Degraded after the next failed health check.
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=9
	// +kubebuilder:default=3
	ToleratedNumberOfFailures *int64 `json:"toleratedNumberOfFailures,omitempty"`
}

MonitorConfig defines the endpoint monitoring settings of the Traffic Manager profile. https://learn.microsoft.com/en-us/azure/traffic-manager/traffic-manager-monitoring

func (*MonitorConfig) DeepCopy

func (in *MonitorConfig) DeepCopy() *MonitorConfig

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

func (*MonitorConfig) DeepCopyInto

func (in *MonitorConfig) DeepCopyInto(out *MonitorConfig)

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

type TrafficManagerBackend

type TrafficManagerBackend struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// The desired state of TrafficManagerBackend.
	Spec TrafficManagerBackendSpec `json:"spec"`

	// The observed status of TrafficManagerBackend.
	// +optional
	Status TrafficManagerBackendStatus `json:"status,omitempty"`
}

TrafficManagerBackend is used to manage the Azure Traffic Manager Endpoints using cloud native way. A backend contains one or more endpoints. Therefore, the controller may create multiple endpoints under the Traffic Manager Profile. https://learn.microsoft.com/en-us/azure/traffic-manager/traffic-manager-endpoint-types +kubebuilder:validation:XValidation:rule="size(self.metadata.name) < 64",message="metadata.name max length is 63"

func (*TrafficManagerBackend) DeepCopy

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

func (*TrafficManagerBackend) DeepCopyInto

func (in *TrafficManagerBackend) DeepCopyInto(out *TrafficManagerBackend)

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

func (*TrafficManagerBackend) DeepCopyObject

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

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

type TrafficManagerBackendConditionReason

type TrafficManagerBackendConditionReason string

TrafficManagerBackendConditionReason defines the set of reasons that explain why a particular backend has been raised.

type TrafficManagerBackendConditionType

type TrafficManagerBackendConditionType string

TrafficManagerBackendConditionType is a type of condition associated with a TrafficManagerBackendStatus. This type should be used within the TrafficManagerBackendStatus.Conditions field.

type TrafficManagerBackendList

type TrafficManagerBackendList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	// +listType=set
	Items []TrafficManagerBackend `json:"items"`
}

TrafficManagerBackendList contains a list of TrafficManagerBackend.

func (*TrafficManagerBackendList) DeepCopy

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

func (*TrafficManagerBackendList) DeepCopyInto

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

func (*TrafficManagerBackendList) DeepCopyObject

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

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

type TrafficManagerBackendRef

type TrafficManagerBackendRef struct {
	// Name is the reference to the ServiceImport in the same namespace as the TrafficManagerBackend object.
	// +required
	Name string `json:"name"`
}

TrafficManagerBackendRef is the reference to a backend. Currently, we only support one backend type: ServiceImport.

func (*TrafficManagerBackendRef) DeepCopy

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

func (*TrafficManagerBackendRef) DeepCopyInto

func (in *TrafficManagerBackendRef) DeepCopyInto(out *TrafficManagerBackendRef)

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

type TrafficManagerBackendSpec

type TrafficManagerBackendSpec struct {
	// Which TrafficManagerProfile the backend should be attached to.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.profile is immutable"
	Profile TrafficManagerProfileRef `json:"profile"`

	// The reference to a backend.
	// +required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="spec.backend is immutable"
	Backend TrafficManagerBackendRef `json:"backend"`

	// The total weight of endpoints behind the serviceImport when using the 'Weighted' traffic routing method.
	// Possible values are from 0 to 1000.
	// By default, the routing method is 'Weighted'.
	// If weight is set to 0, all the endpoints behind the serviceImport will be removed from the profile.
	// The actual weight of each endpoint is the ceiling value of a number computed as weight/(sum of all weights behind the serviceImport)
	// * weight of serviceExport.
	// For example, if the weight is 500 and there are two serviceExports from cluster-1 (weight: 100) and cluster-2 (weight: 200)
	// behind serviceImport.
	// As a result, two endpoints will be created.
	// The weight of endpoint from cluster-1 is 100/(100+200)*500 = 167, and the weight of cluster-2 is 200/(100+200)*500 = 334.
	// There may be slight deviations from the exact proportions defined in the serviceExports due to ceiling calculations.
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=1000
	// +kubebuilder:default=1
	Weight *int64 `json:"weight,omitempty"`
}

func (*TrafficManagerBackendSpec) DeepCopy

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

func (*TrafficManagerBackendSpec) DeepCopyInto

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

type TrafficManagerBackendStatus

type TrafficManagerBackendStatus struct {
	// Endpoints contains a list of accepted Azure endpoints which are created or updated under the traffic manager Profile.
	// +optional
	Endpoints []TrafficManagerEndpointStatus `json:"endpoints,omitempty"`

	// Current backend status.
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

func (*TrafficManagerBackendStatus) DeepCopy

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

func (*TrafficManagerBackendStatus) DeepCopyInto

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

type TrafficManagerEndpointStatus

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

	// ResourceID is the fully qualified Azure resource Id for the resource.
	// Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}/azureEndpoints/{name}
	ResourceID string `json:"resourceID,omitempty"`

	// The weight of this endpoint when using the 'Weighted' traffic routing method.
	// Possible values are from 0 to 1000.
	// +optional
	Weight *int64 `json:"weight,omitempty"`

	// The fully-qualified DNS name or IP address of the endpoint.
	// +optional
	Target *string `json:"target,omitempty"`

	// From is where the endpoint is exported from.
	// +optional
	From *FromCluster `json:"from,omitempty"`
}

TrafficManagerEndpointStatus is the status of Azure Traffic Manager endpoint which is successfully accepted under the traffic manager Profile.

func (*TrafficManagerEndpointStatus) DeepCopy

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

func (*TrafficManagerEndpointStatus) DeepCopyInto

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

type TrafficManagerMonitorProtocol

type TrafficManagerMonitorProtocol string

TrafficManagerMonitorProtocol defines the protocol used to probe for endpoint health.

const (
	TrafficManagerMonitorProtocolHTTP  TrafficManagerMonitorProtocol = "HTTP"
	TrafficManagerMonitorProtocolHTTPS TrafficManagerMonitorProtocol = "HTTPS"
	TrafficManagerMonitorProtocolTCP   TrafficManagerMonitorProtocol = "TCP"
)

type TrafficManagerProfile

type TrafficManagerProfile struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// The desired state of TrafficManagerProfile.
	Spec TrafficManagerProfileSpec `json:"spec"`

	// The observed status of TrafficManagerProfile.
	// +optional
	Status TrafficManagerProfileStatus `json:"status,omitempty"`
}

TrafficManagerProfile is used to manage a simple Azure Traffic Manager Profile using cloud native way. https://learn.microsoft.com/en-us/azure/traffic-manager/traffic-manager-overview +kubebuilder:validation:XValidation:rule="size(self.metadata.name) < 64",message="metadata.name max length is 63"

func (*TrafficManagerProfile) DeepCopy

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

func (*TrafficManagerProfile) DeepCopyInto

func (in *TrafficManagerProfile) DeepCopyInto(out *TrafficManagerProfile)

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

func (*TrafficManagerProfile) DeepCopyObject

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

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

type TrafficManagerProfileConditionReason

type TrafficManagerProfileConditionReason string

TrafficManagerProfileConditionReason defines the set of reasons that explain why a particular profile condition type has been raised.

type TrafficManagerProfileConditionType

type TrafficManagerProfileConditionType string

TrafficManagerProfileConditionType is a type of condition associated with a Traffic Manager Profile. This type should be used within the TrafficManagerProfileStatus.Conditions field.

type TrafficManagerProfileList

type TrafficManagerProfileList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	// +listType=set
	Items []TrafficManagerProfile `json:"items"`
}

TrafficManagerProfileList contains a list of TrafficManagerProfile.

func (*TrafficManagerProfileList) DeepCopy

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

func (*TrafficManagerProfileList) DeepCopyInto

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

func (*TrafficManagerProfileList) DeepCopyObject

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

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

type TrafficManagerProfileRef

type TrafficManagerProfileRef struct {
	// Name is the name of the referenced trafficManagerProfile.
	// +required
	Name string `json:"name"`
}

TrafficManagerProfileRef is a reference to a trafficManagerProfile object in the same namespace as the TrafficManagerBackend object.

func (*TrafficManagerProfileRef) DeepCopy

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

func (*TrafficManagerProfileRef) DeepCopyInto

func (in *TrafficManagerProfileRef) DeepCopyInto(out *TrafficManagerProfileRef)

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

type TrafficManagerProfileSpec

type TrafficManagerProfileSpec struct {
	// The name of the resource group to contain the Azure Traffic Manager resource corresponding to this profile.
	// When this profile is created, updated, or deleted, the corresponding traffic manager with the same name will be created, updated, or deleted
	// in the specified resource group.
	// Reference link: https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/resource-name-rules#microsoftresources
	// +required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=90
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="resourceGroup is immutable"
	ResourceGroup string `json:"resourceGroup"`

	// The endpoint monitoring settings of the Traffic Manager profile.
	// +optional
	MonitorConfig *MonitorConfig `json:"monitorConfig,omitempty"`
}

TrafficManagerProfileSpec defines the desired state of TrafficManagerProfile. For now, only the "Weighted" traffic routing method is supported.

func (*TrafficManagerProfileSpec) DeepCopy

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

func (*TrafficManagerProfileSpec) DeepCopyInto

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

type TrafficManagerProfileStatus

type TrafficManagerProfileStatus struct {
	// DNSName is the fully-qualified domain name (FQDN) of the Traffic Manager profile.
	// It consists of profile name and the DNS domain name used by Azure Traffic Manager to form the fully-qualified
	// domain name (FQDN) of the profile.
	// For example, "<TrafficManagerProfileNamespace>-<TrafficManagerProfileName>.trafficmanager.net"
	// +optional
	DNSName *string `json:"dnsName,omitempty"`

	// ResourceID is the fully qualified Azure resource Id for the resource.
	// Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{resourceName}
	ResourceID string `json:"resourceID,omitempty"`

	// Current profile status.
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

func (*TrafficManagerProfileStatus) DeepCopy

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

func (*TrafficManagerProfileStatus) 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