Failover
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:
- priority_group:
- cluster: A upstreams:
- name: one namespace: one
- cluster: B upstreams:
- name: two namespace: two
- priority_group:
- cluster: C upstreams:
- name: one namespace: one
- cluster: D upstreams:
- name: two namespace: two
"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. |