failover.proto

Package: fed.solo.io

Types:

Source File: github.com/solo-io/solo-apis/api/gloo-fed/fed/v1/failover.proto

FailoverSchemeSpec

FailoverSpec is the core portion of the API for enabling failover between Gloo Upstreams in gloo-fed. This API is heavily inspired by the Failover API present in the Gloo Upstream which can be found in api/gloo/v1/upstream.

The source Upstream below is the initial primary target of traffic. The type of endpoints vary by the type of Upstream specified. Each target specified is then configured as a failover endpoint in the case that the prmiary Upstream becomes unhealthy. The priority of the failover endpoints is inferred from the order in which the Upstreams are specified. source = [0], targets = [1-n].

Example:

primary: cluster: primary name: primary namespace: primary failover_groups:

"primary": .core.skv2.solo.io.ClusterObjectRef
"failoverGroups": []fed.solo.io.FailoverSchemeSpec.FailoverEndpoints

Field Type Description
primary .core.skv2.solo.io.ClusterObjectRef The upstream which will be configured for failover.
failoverGroups []fed.solo.io.FailoverSchemeSpec.FailoverEndpoints

FailoverEndpoints

"priorityGroup": []fed.solo.io.FailoverSchemeSpec.FailoverEndpoints.LocalityLbTargets

Field Type Description
priorityGroup []fed.solo.io.FailoverSchemeSpec.FailoverEndpoints.LocalityLbTargets

LocalityLbTargets

"cluster": string
"upstreams": []core.skv2.solo.io.ObjectRef
"localityWeight": .google.protobuf.UInt32Value

Field Type Description
cluster string (REQUIRED) Cluster on which the endpoints for this Group can be found.
upstreams []core.skv2.solo.io.ObjectRef A list of Upstream targets, each of these targets must exist on the cluster specified in this message.
localityWeight .google.protobuf.UInt32Value (optional) locality load balancing weight assigned to the specified upstreams. Locality load balancing will add a special load balancing weight among all targets within a given priority, who are located in the zame zone. See envoy Locality Weighted Load Balancing for more information: https://www.envoyproxy.io/docs/envoy/v1.14.1/intro/arch_overview/upstream/load_balancing/locality_weight#arch-overview-load-balancing-locality-weighted-lb.

FailoverSchemeStatus

"state": .fed.solo.io.FailoverSchemeStatus.State
"message": string
"observedGeneration": int
"processingTime": .google.protobuf.Timestamp
"namespacedStatuses": map<string, .fed.solo.io.FailoverSchemeStatus.Status>

Field Type Description
state .fed.solo.io.FailoverSchemeStatus.State The current state of the resource. Deprecated: use namespacedStatuses instead.
message string A human readable message about the current state of the object. Deprecated: use namespacedStatuses instead.
observedGeneration int The most recently observed generation of the resource. This value corresponds to the metadata.generation of a kubernetes resource. Deprecated: use namespacedStatuses instead.
processingTime .google.protobuf.Timestamp The time at which this status was recorded. Deprecated: use namespacedStatuses instead.
namespacedStatuses map<string, .fed.solo.io.FailoverSchemeStatus.Status> Map of gloo fed controller namespace to FailoverScheme status.

Status

"state": .fed.solo.io.FailoverSchemeStatus.State
"message": string
"observedGeneration": int
"processingTime": .google.protobuf.Timestamp

Field Type Description
state .fed.solo.io.FailoverSchemeStatus.State The current state of the resource.
message string A human readable message about the current state of the object.
observedGeneration int The most recently observed generation of the resource. This value corresponds to the metadata.generation of a kubernetes resource.
processingTime .google.protobuf.Timestamp The time at which this status was recorded.

State

The State of a reconciled object

Name Description
PENDING Waiting to be processed.
PROCESSING Currently processing.
INVALID Invalid parameters supplied, will not continue.
FAILED Failed during processing.
ACCEPTED Finished processing successfully.