MultiCluster v1alpha1 API Reference

MultiCluster v1alpha1 API reference documentation.

Packages:

flomesh.io/v1alpha1

Package v1alpha1 is the v1alpha1 version of the API.

Resource Types:

Cluster

Cluster is the Schema for the clusters API

FieldDescription
apiVersion
string
flomesh.io/v1alpha1
kind
string
Cluster
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
ClusterSpec


region
string

Region, the locality information of this cluster

zone
string

Zone, the locality information of this cluster

group
string

Group, the locality information of this cluster

gatewayHost
string

GatewayHost, the Full Qualified Domain Name or IP of the gateway/ingress of this cluster If it’s an IP address, only IPv4 is supported

gatewayPort
int32

The port number of the gateway

kubeconfig
string

Kubeconfig, The kubeconfig of the cluster you want to connnect to This’s not needed if ClusterMode is InCluster, it will use InCluster config

fsmMeshConfigName
string
(Optional)

FsmMeshConfigName, defines the name of the MeshConfig of managed cluster

fsmNamespace
string

FsmNamespace, defines the namespace of managed cluster in which fsm is installed

status
ClusterStatus

GlobalTrafficPolicy

GlobalTrafficPolicy is the Schema for the GlobalTrafficPolicys API

FieldDescription
apiVersion
string
flomesh.io/v1alpha1
kind
string
GlobalTrafficPolicy
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
GlobalTrafficPolicySpec


lbType
LoadBalancerType

Type of global load distribution

targets
[]TrafficTarget
(Optional)
status
GlobalTrafficPolicyStatus

ServiceExport

ServiceExport is the Schema for the ServiceExports API

FieldDescription
apiVersion
string
flomesh.io/v1alpha1
kind
string
ServiceExport
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
ServiceExportSpec


pathRewrite
PathRewrite
(Optional)

PathRewrite, it shares ONE rewrite rule for the same ServiceExport

sessionSticky
bool
(Optional)

Indicates if session sticky is enabled

loadBalancer
github.com/flomesh-io/fsm/pkg/apis.AlgoBalancer
(Optional)

The LoadBalancer Type applied to the Ingress Rules those created by the ServiceExport

rules
[]ServiceExportRule

The paths for accessing the service via Ingress controller

targetClusters
[]string
(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]

serviceAccountName
string
(Optional)

The ServiceAccount associated with this service

status
ServiceExportStatus

ServiceImport

ServiceImport is the Schema for the ServiceImports API

FieldDescription
apiVersion
string
flomesh.io/v1alpha1
kind
string
ServiceImport
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
ServiceImportSpec


ports
[]ServicePort
ips
[]string
(Optional)

ip will be used as the VIP for this service when type is ClusterSetIP.

type
ServiceImportType
(Optional)

type defines the type of this service. Must be ClusterSetIP or Headless.

sessionAffinity
Kubernetes core/v1.ServiceAffinity
(Optional)

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

sessionAffinityConfig
Kubernetes core/v1.SessionAffinityConfig
(Optional)

sessionAffinityConfig contains session affinity configuration.

serviceAccountName
string
(Optional)

The ServiceAccount associated with this service

status
ServiceImportStatus

ClusterConditionType (string alias)

ClusterConditionType identifies a specific condition.

ValueDescription

"Managed"

ClusterManaged means that the cluster has joined the CLusterSet successfully and is managed by Control Plane.

ClusterSpec

(Appears on:Cluster)

ClusterSpec defines the desired state of Cluster

FieldDescription
region
string

Region, the locality information of this cluster

zone
string

Zone, the locality information of this cluster

group
string

Group, the locality information of this cluster

gatewayHost
string

GatewayHost, the Full Qualified Domain Name or IP of the gateway/ingress of this cluster If it’s an IP address, only IPv4 is supported

gatewayPort
int32

The port number of the gateway

kubeconfig
string

Kubeconfig, The kubeconfig of the cluster you want to connnect to This’s not needed if ClusterMode is InCluster, it will use InCluster config

fsmMeshConfigName
string
(Optional)

FsmMeshConfigName, defines the name of the MeshConfig of managed cluster

fsmNamespace
string

FsmNamespace, defines the namespace of managed cluster in which fsm is installed

ClusterStatus

(Appears on:Cluster)

ClusterStatus defines the observed state of Cluster

FieldDescription
conditions
[]Kubernetes meta/v1.Condition
(Optional)

Endpoint

(Appears on:ServicePort)

Endpoint represents a single logical “backend” implementing a service.

FieldDescription
target
Target
clusterKey
string

GlobalTrafficPolicySpec

(Appears on:GlobalTrafficPolicy)

GlobalTrafficPolicySpec defines the desired state of GlobalTrafficPolicy

FieldDescription
lbType
LoadBalancerType

Type of global load distribution

targets
[]TrafficTarget
(Optional)

GlobalTrafficPolicyStatus

(Appears on:GlobalTrafficPolicy)

GlobalTrafficPolicyStatus defines the observed state of GlobalTrafficPolicy

LoadBalancerType (string alias)

(Appears on:GlobalTrafficPolicySpec)

LoadBalancerType defines the type of load balancer

ValueDescription

"ActiveActive"

ActiveActiveLbType is the type of load balancer that distributes traffic to all targets

"FailOver"

FailOverLbType is the type of load balancer that distributes traffic to the first available target

"Locality"

LocalityLbType is the type of load balancer that distributes traffic to targets in the same locality

PathRewrite

(Appears on:ServiceExportSpec)

PathRewrite defines the rewrite rule for service export

FieldDescription
from
string
to
string

ServiceExportConditionType (string alias)

ServiceExportConditionType identifies a specific condition.

ValueDescription

"Conflict"

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.

"Valid"

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

ServiceExportRule

(Appears on:ServiceExportSpec)

ServiceExportRule defines the rule for service export

FieldDescription
portNumber
int32

The port number of service

path
string

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”.

pathType
Kubernetes networking/v1.PathType

ServiceExportSpec

(Appears on:ServiceExport)

ServiceExportSpec defines the desired state of ServiceExport

FieldDescription
pathRewrite
PathRewrite
(Optional)

PathRewrite, it shares ONE rewrite rule for the same ServiceExport

sessionSticky
bool
(Optional)

Indicates if session sticky is enabled

loadBalancer
github.com/flomesh-io/fsm/pkg/apis.AlgoBalancer
(Optional)

The LoadBalancer Type applied to the Ingress Rules those created by the ServiceExport

rules
[]ServiceExportRule

The paths for accessing the service via Ingress controller

targetClusters
[]string
(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]

serviceAccountName
string
(Optional)

The ServiceAccount associated with this service

ServiceExportStatus

(Appears on:ServiceExport)

ServiceExportStatus defines the observed state of ServiceExport

FieldDescription
conditions
[]Kubernetes meta/v1.Condition
(Optional)

ServiceImportSpec

(Appears on:ServiceImport)

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

FieldDescription
ports
[]ServicePort
ips
[]string
(Optional)

ip will be used as the VIP for this service when type is ClusterSetIP.

type
ServiceImportType
(Optional)

type defines the type of this service. Must be ClusterSetIP or Headless.

sessionAffinity
Kubernetes core/v1.ServiceAffinity
(Optional)

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

sessionAffinityConfig
Kubernetes core/v1.SessionAffinityConfig
(Optional)

sessionAffinityConfig contains session affinity configuration.

serviceAccountName
string
(Optional)

The ServiceAccount associated with this service

ServiceImportStatus

(Appears on:ServiceImport)

ServiceImportStatus describes derived state of an imported service.

FieldDescription
clusters
[]SourceStatus
(Optional)

clusters is the list of exporting clusters from which this service was derived.

ServiceImportType (string alias)

(Appears on:ServiceImportSpec)

ServiceImportType designates the type of a ServiceImport

ValueDescription

"ClusterSetIP"

ClusterSetIP are only accessible via the ClusterSet IP.

"Headless"

Headless services allow backend pods to be addressed directly.

ServicePort

(Appears on:ServiceImportSpec)

ServicePort represents the port on which the service is exposed

FieldDescription
name
string
(Optional)

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.

protocol
Kubernetes core/v1.Protocol
(Optional)

The IP protocol for this port. Supports “TCP”, “UDP”, and “SCTP”. Default is TCP.

appProtocol
string
(Optional)

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.

port
int32

The port that will be exposed by this service.

endpoints
[]Endpoint

The address of accessing the service

SourceStatus

(Appears on:ServiceImportStatus)

SourceStatus contains service configuration mapped to a specific source cluster

FieldDescription
cluster
string

cluster is the name of the exporting cluster. Must be a valid RFC-1123 DNS label.

addresses
[]string

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]

Target

(Appears on:Endpoint)

Target represents a single logical “backend” implementing a service.

FieldDescription
host
string
ip
string
port
int32
path
string

TrafficTarget

(Appears on:GlobalTrafficPolicySpec)

TrafficTarget defines the target of traffic

FieldDescription
clusterKey
string

Format: [region]/[zone]/[group]/[cluster]

weight
int
(Optional)

Generated with gen-crd-api-reference-docs on git commit 8abe9ab.

Feedback

Was this page helpful?


Last modified June 18, 2024: fix workflow issue (c83135d)