v1alpha1

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package v1alpha1 is the v1alpha1 version of the API.

Package v1alpha1 contains API Schema definitions for the flomesh.io v1alpha1 API group

Index

Constants

This section is empty.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register API objects in the policy.flomesh.io v1alpha1 API group
	SchemeGroupVersion = schema.GroupVersion{
		Group:   "flomesh.io",
		Version: "v1alpha1",
	}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)

	// AddToScheme adds all Resources to the Scheme
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type AlgoBalancer

type AlgoBalancer string

AlgoBalancer defines Balancer Algo

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"`

	// in-cluster service, it's the cluster IPs
	// otherwise, it's the url of accessing that service in remote cluster
	// for example, http(s)://[Ingress IP/domain name]:[port]/[path]
	Addresses []string `json:"addresses,omitempty"`
}

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 Endpoint

type Endpoint struct {
	Target     Target `json:"target"`
	ClusterKey string `json:"clusterKey"`
}

Endpoint imported service's endpoints

func (*Endpoint) DeepCopy

func (in *Endpoint) DeepCopy() *Endpoint

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

func (*Endpoint) DeepCopyInto

func (in *Endpoint) DeepCopyInto(out *Endpoint)

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

type GlobalTrafficPolicy

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

	Spec   GlobalTrafficPolicySpec   `json:"spec,omitempty"`
	Status GlobalTrafficPolicyStatus `json:"status,omitempty"`
}

GlobalTrafficPolicy is the Schema for the GlobalTrafficPolicys API +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +k8s:openapi-gen=true

func (*GlobalTrafficPolicy) DeepCopy

func (in *GlobalTrafficPolicy) DeepCopy() *GlobalTrafficPolicy

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

func (*GlobalTrafficPolicy) DeepCopyInto

func (in *GlobalTrafficPolicy) DeepCopyInto(out *GlobalTrafficPolicy)

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

func (*GlobalTrafficPolicy) DeepCopyObject

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

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

type GlobalTrafficPolicyList

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

GlobalTrafficPolicyList contains a list of GlobalTrafficPolicy +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*GlobalTrafficPolicyList) DeepCopy

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

func (*GlobalTrafficPolicyList) DeepCopyInto

func (in *GlobalTrafficPolicyList) DeepCopyInto(out *GlobalTrafficPolicyList)

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

func (*GlobalTrafficPolicyList) DeepCopyObject

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

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

type GlobalTrafficPolicySpec

type GlobalTrafficPolicySpec struct {
	// Type of global load distribution
	LbType LoadBalancerType `json:"lbType"`

	// +optional
	LoadBalanceTarget []TrafficTarget `json:"targets"`
}

GlobalTrafficPolicySpec defines the desired state of GlobalTrafficPolicy

func (*GlobalTrafficPolicySpec) DeepCopy

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

func (*GlobalTrafficPolicySpec) DeepCopyInto

func (in *GlobalTrafficPolicySpec) DeepCopyInto(out *GlobalTrafficPolicySpec)

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

type GlobalTrafficPolicyStatus

type GlobalTrafficPolicyStatus struct {
}

GlobalTrafficPolicyStatus defines the observed state of GlobalTrafficPolicy

func (*GlobalTrafficPolicyStatus) DeepCopy

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

func (*GlobalTrafficPolicyStatus) DeepCopyInto

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

type LoadBalancerType

type LoadBalancerType string

LoadBalancerType defines load balancer type

const (
	// ActiveActiveLbType defines AA load balance type
	ActiveActiveLbType LoadBalancerType = "ActiveActive"
	// LocalityLbType defines OL load balance type
	LocalityLbType LoadBalancerType = "Locality"
	// FailOverLbType defines FO load balance type
	FailOverLbType LoadBalancerType = "FailOver"
)

type PathRewrite

type PathRewrite struct {
	From string `json:"from,omitempty"`
	To   string `json:"to,omitempty"`
}

PathRewrite defines path rewrite rule.

func (*PathRewrite) DeepCopy

func (in *PathRewrite) DeepCopy() *PathRewrite

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

func (*PathRewrite) DeepCopyInto

func (in *PathRewrite) DeepCopyInto(out *PathRewrite)

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

type ServiceExport

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

	Spec   ServiceExportSpec   `json:"spec,omitempty"`
	Status ServiceExportStatus `json:"status,omitempty"`
}

ServiceExport is the Schema for the ServiceExports API +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ServiceExport) DeepCopy

func (in *ServiceExport) DeepCopy() *ServiceExport

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

func (*ServiceExport) DeepCopyInto

func (in *ServiceExport) DeepCopyInto(out *ServiceExport)

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

func (*ServiceExport) DeepCopyObject

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

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

type ServiceExportConditionType

type ServiceExportConditionType string

ServiceExportConditionType identifies a specific condition.

const (
	// ServiceExportValid means that the service referenced by this
	// service export has been recognized as valid by controller.
	// This will be false if the service is found to be unexportable
	// (ExternalName, not found).
	ServiceExportValid ServiceExportConditionType = "Valid"
	// ServiceExportConflict means that there is a conflict between two
	// exports for the same Service. When "True", the condition message
	// should contain enough information to diagnose the conflict:
	// field(s) under contention, which cluster won, and why.
	// Users should not expect detailed per-cluster information in the
	// conflict message.
	ServiceExportConflict ServiceExportConditionType = "Conflict"
)

type ServiceExportList

type ServiceExportList struct {
	metav1.TypeMeta `json:",inline"`
	// Standard list metadata.
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	// List of endpoint slices
	// +listType=set
	Items []ServiceExport `json:"items"`
}

ServiceExportList contains a list of ServiceExport +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ServiceExportList) DeepCopy

func (in *ServiceExportList) DeepCopy() *ServiceExportList

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

func (*ServiceExportList) DeepCopyInto

func (in *ServiceExportList) DeepCopyInto(out *ServiceExportList)

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

func (*ServiceExportList) DeepCopyObject

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

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

type ServiceExportRule

type ServiceExportRule struct {
	// The port number of service
	PortNumber int32 `json:"portNumber,omitempty"`

	// Path is matched against the path of an incoming request. Currently it can
	// contain characters disallowed from the conventional "path" part of a URL
	// as defined by RFC 3986. Paths must begin with a '/' and must be present
	// when using PathType with value "Exact" or "Prefix".
	Path string `json:"path,omitempty"`

	// PathType determines the interpretation of the Path matching. PathType can
	// be one of the following values:
	// * Exact: Matches the URL path exactly.
	// * Prefix: Matches based on a URL path prefix split by '/'. Matching is
	//   done on a path element by element basis. A path element refers is the
	//   list of labels in the path split by the '/' separator. A request is a
	//   match for path p if every p is an element-wise prefix of p of the
	//   request path. Note that if the last element of the path is a substring
	//   of the last element in request path, it is not a match (e.g. /foo/bar
	//   matches /foo/bar/baz, but does not match /foo/barbaz).
	PathType *networkingv1.PathType `json:"pathType"`
}

ServiceExportRule defines service export rule.

func (*ServiceExportRule) DeepCopy

func (in *ServiceExportRule) DeepCopy() *ServiceExportRule

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

func (*ServiceExportRule) DeepCopyInto

func (in *ServiceExportRule) DeepCopyInto(out *ServiceExportRule)

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

type ServiceExportSpec

type ServiceExportSpec struct {
	// +optional
	// PathRewrite, it shares ONE rewrite rule for the same ServiceExport
	PathRewrite *PathRewrite `json:"pathRewrite,omitempty"`

	// +optional
	// Indicates if session sticky is  enabled
	SessionSticky bool `json:"sessionSticky,omitempty"`

	// +optional
	// The LoadBalancer Type applied to the Ingress Rules those created by the ServiceExport
	LoadBalancer AlgoBalancer `json:"loadBalancer,omitempty"`

	// The paths for accessing the service via Ingress controller
	Rules []ServiceExportRule `json:"rules,omitempty"`

	// +optional
	// If empty, service is exported to all managed clusters.
	// If not empty, service is exported to specified clusters,
	//  must be in format [region]/[zone]/[group]/[cluster]
	TargetClusters []string `json:"targetClusters,omitempty"`

	// +optional
	// The ServiceAccount associated with this service
	ServiceAccountName string `json:"serviceAccountName,omitempty"`
}

ServiceExportSpec defines the desired state of ServiceExport

func (*ServiceExportSpec) DeepCopy

func (in *ServiceExportSpec) DeepCopy() *ServiceExportSpec

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

func (*ServiceExportSpec) DeepCopyInto

func (in *ServiceExportSpec) DeepCopyInto(out *ServiceExportSpec)

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

type ServiceExportStatus

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

ServiceExportStatus defines the observed state of ServiceExport

func (*ServiceExportStatus) DeepCopy

func (in *ServiceExportStatus) DeepCopy() *ServiceExportStatus

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

func (*ServiceExportStatus) DeepCopyInto

func (in *ServiceExportStatus) DeepCopyInto(out *ServiceExportStatus)

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

type ServiceImport

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

	Spec   ServiceImportSpec   `json:"spec,omitempty"`
	Status ServiceImportStatus `json:"status,omitempty"`
}

ServiceImport is the Schema for the ServiceImports API +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ServiceImport) DeepCopy

func (in *ServiceImport) DeepCopy() *ServiceImport

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

func (*ServiceImport) DeepCopyInto

func (in *ServiceImport) DeepCopyInto(out *ServiceImport)

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

func (*ServiceImport) DeepCopyObject

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

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

type ServiceImportList

type ServiceImportList struct {
	metav1.TypeMeta `json:",inline"`
	// Standard list metadata.
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	// List of endpoint slices
	// +listType=set
	Items []ServiceImport `json:"items"`
}

ServiceImportList contains a list of ServiceImport +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ServiceImportList) DeepCopy

func (in *ServiceImportList) DeepCopy() *ServiceImportList

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

func (*ServiceImportList) DeepCopyInto

func (in *ServiceImportList) DeepCopyInto(out *ServiceImportList)

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

func (*ServiceImportList) DeepCopyObject

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

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

type ServiceImportSpec

type ServiceImportSpec struct {
	// +listType=atomic
	Ports []ServicePort `json:"ports"`

	// ip will be used as the VIP for this service when type is ClusterSetIP.
	// +optional
	IPs []string `json:"ips,omitempty"`

	// type defines the type of this service.
	// Must be ClusterSetIP or Headless.
	// +optional
	Type ServiceImportType `json:"type"`

	// Supports "ClientIP" and "None". Used to maintain session affinity.
	// Enable client IP based session affinity.
	// Must be ClientIP or None.
	// Defaults to None.
	// Ignored when type is Headless
	// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
	// +optional
	SessionAffinity v1.ServiceAffinity `json:"sessionAffinity,omitempty"`

	// sessionAffinityConfig contains session affinity configuration.
	// +optional
	SessionAffinityConfig *v1.SessionAffinityConfig `json:"sessionAffinityConfig,omitempty"`

	// +optional
	// The ServiceAccount associated with this service
	ServiceAccountName string `json:"serviceAccountName,omitempty"`
}

ServiceImportSpec describes an imported service and the information necessary to consume it.

func (*ServiceImportSpec) DeepCopy

func (in *ServiceImportSpec) DeepCopy() *ServiceImportSpec

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

func (*ServiceImportSpec) DeepCopyInto

func (in *ServiceImportSpec) DeepCopyInto(out *ServiceImportSpec)

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

type ServiceImportStatus

type ServiceImportStatus struct {
	// clusters is the list of exporting clusters from which this service
	// was derived.
	// +optional
	// +patchStrategy=merge
	// +patchMergeKey=cluster
	// +listType=map
	// +listMapKey=cluster
	Clusters []ClusterStatus `json:"clusters,omitempty"`
}

ServiceImportStatus describes derived state of an imported service.

func (*ServiceImportStatus) DeepCopy

func (in *ServiceImportStatus) DeepCopy() *ServiceImportStatus

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

func (*ServiceImportStatus) DeepCopyInto

func (in *ServiceImportStatus) DeepCopyInto(out *ServiceImportStatus)

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

type ServiceImportType

type ServiceImportType string

ServiceImportType designates the type of a ServiceImport

const (
	// ClusterSetIP are only accessible via the ClusterSet IP.
	ClusterSetIP ServiceImportType = "ClusterSetIP"
	// Headless services allow backend pods to be addressed directly.
	Headless ServiceImportType = "Headless"
)

type ServicePort

type ServicePort struct {
	// The name of this port within the service. This must be a DNS_LABEL.
	// All ports within a ServiceSpec must have unique names. When considering
	// the endpoints for a Service, this must match the 'name' field in the
	// EndpointPort.
	// Optional if only one ServicePort is defined on this service.
	// +optional
	Name string `json:"name,omitempty"`

	// The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
	// Default is TCP.
	// +optional
	Protocol v1.Protocol `json:"protocol,omitempty"`

	// The application protocol for this port.
	// This field follows standard Kubernetes label syntax.
	// Un-prefixed names are reserved for IANA standard service names (as per
	// RFC-6335 and http://www.iana.org/assignments/service-names).
	// Non-standard protocols should use prefixed names such as
	// mycompany.com/my-custom-protocol.
	// Field can be enabled with ServiceAppProtocol feature gate.
	// +optional
	AppProtocol *string `json:"appProtocol,omitempty"`

	// The port that will be exposed by this service.
	Port int32 `json:"port"`

	// The address of accessing the service
	Endpoints []Endpoint `json:"endpoints"`
}

ServicePort represents the port on which the service is exposed

func (*ServicePort) DeepCopy

func (in *ServicePort) DeepCopy() *ServicePort

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

func (*ServicePort) DeepCopyInto

func (in *ServicePort) DeepCopyInto(out *ServicePort)

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

func (*ServicePort) String

func (p *ServicePort) String() string

type Target

type Target struct {
	Host string `json:"host"`
	IP   string `json:"ip"`
	Port int32  `json:"port"`
	Path string `json:"path"`
}

Target imported service's endpoint target.

func (*Target) DeepCopy

func (in *Target) DeepCopy() *Target

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

func (*Target) DeepCopyInto

func (in *Target) DeepCopyInto(out *Target)

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

type TrafficTarget

type TrafficTarget struct {
	// Format: [region]/[zone]/[group]/[cluster]
	ClusterKey string `json:"clusterKey"`

	// +optional
	Weight *int `json:"weight,omitempty"`
}

TrafficTarget defines the load balancer traffic target

func (*TrafficTarget) DeepCopy

func (in *TrafficTarget) DeepCopy() *TrafficTarget

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

func (*TrafficTarget) DeepCopyInto

func (in *TrafficTarget) DeepCopyInto(out *TrafficTarget)

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