Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions api/routing/v1alpha1/envoybootstrapconfig_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,13 @@ type EnvoyBootstrapConfigSpec struct {
// +kubebuilder:default=false
// +optional
ProxyProtocolEnabled bool `json:"proxyProtocolEnabled,omitempty"`
// MultiAZ marks this Envoy fleet as the multi-AZ load balancer. When true,
// the route-manager advertises this fact to Envoy via node metadata so that
// zone-aware routing decisions can be made per-cluster via
// QdrantClusterRouting.spec.multiAZ.
// +kubebuilder:default=false
// +optional
MultiAZ bool `json:"multiAZ,omitempty"`
}

// EnvoyBootstrapConfigStatus defines the observed state of EnvoyBootstrapConfig.
Expand Down
5 changes: 5 additions & 0 deletions api/routing/v1alpha1/routing_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,11 @@ type QdrantClusterRoutingSpec struct {
// If true enable (proxy) access log for this qdrant cluster.
// +optional
EnableAccessLog *bool `json:"enableAccessLog,omitempty"`
// MultiAZ is true when the Qdrant cluster spans multiple availability
// zones and traffic should be kept same-zone where possible.
// +kubebuilder:default=false
// +optional
MultiAZ bool `json:"multiAZ,omitempty"`
}

// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
Expand Down
8 changes: 8 additions & 0 deletions api/v1/qdrantcluster_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,14 @@ type QdrantClusterSpec struct {
// WriteCluster specifies the write cluster for this cluster. This configures the NetworkPolicy to allow egress to the write cluster.
// +optional
WriteCluster *WriteCluster `json:"writeCluster,omitempty"`
// MultiAZ indicates that this cluster spans multiple availability zones
// and traffic should be kept same-zone where possible. When true, the
// operator propagates the flag to the generated QdrantClusterRouting so
// the route-manager enables zone-aware load balancing on the Envoy
// clusters that front this Qdrant cluster.
// +kubebuilder:default=false
// +optional
MultiAZ bool `json:"multiAZ,omitempty"`
}

// Validate if there are incorrect settings in the CRD
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -510,6 +510,15 @@ spec:
type: array
type: object
type: object
multiAZ:
default: false
description: |-
MultiAZ indicates that this cluster spans multiple availability zones
and traffic should be kept same-zone where possible. When true, the
operator propagates the flag to the generated QdrantClusterRouting so
the route-manager enables zone-aware load balancing on the Envoy
clusters that front this Qdrant cluster.
type: boolean
nodeSelector:
additionalProperties:
type: string
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,14 @@ spec:
When set the Envoy runs in dedicated mode for this cluster.
When nil it runs in shared mode.
type: string
multiAZ:
default: false
description: |-
MultiAZ marks this Envoy fleet as the multi-AZ load balancer. When true,
the route-manager advertises this fact to Envoy via node metadata so that
zone-aware routing decisions can be made per-cluster via
QdrantClusterRouting.spec.multiAZ.
type: boolean
proxyProtocolEnabled:
default: false
description: ProxyProtocolEnabled enables the PROXY protocol on Envoy
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,12 @@ spec:
The fully qualified domain name (also know as host).
For shared routing this will be used for SNI resolving.
type: string
multiAZ:
default: false
description: |-
MultiAZ is true when the Qdrant cluster spans multiple availability
zones and traffic should be kept same-zone where possible.
type: boolean
nodeIndexes:
description: NodeIndexes specifies the indexes of the individual nodes
in the cluster.
Expand Down
9 changes: 9 additions & 0 deletions crds/qdrant.io_qdrantclusters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,15 @@ spec:
type: array
type: object
type: object
multiAZ:
default: false
description: |-
MultiAZ indicates that this cluster spans multiple availability zones
and traffic should be kept same-zone where possible. When true, the
operator propagates the flag to the generated QdrantClusterRouting so
the route-manager enables zone-aware load balancing on the Envoy
clusters that front this Qdrant cluster.
type: boolean
nodeSelector:
additionalProperties:
type: string
Expand Down
3 changes: 3 additions & 0 deletions docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -980,6 +980,7 @@ _Appears in:_
| `rebalanceStrategy` _[RebalanceStrategy](#rebalancestrategy)_ | RebalanceStrategy specifies the strategy to use for automaticially rebalancing shards the cluster.<br />Cluster-manager needs to be enabled for this feature to work. | | Enum: [by_count by_size by_count_and_size] <br />Optional: \{\} <br /> |
| `readClusters` _[ReadCluster](#readcluster) array_ | ReadClusters specifies the read clusters for this cluster to synchronize.<br />Cluster-manager needs to be enabled for this feature to work. | | Optional: \{\} <br /> |
| `writeCluster` _[WriteCluster](#writecluster)_ | WriteCluster specifies the write cluster for this cluster. This configures the NetworkPolicy to allow egress to the write cluster. | | Optional: \{\} <br /> |
| `multiAZ` _boolean_ | MultiAZ indicates that this cluster spans multiple availability zones<br />and traffic should be kept same-zone where possible. When true, the<br />operator propagates the flag to the generated QdrantClusterRouting so<br />the route-manager enables zone-aware load balancing on the Envoy<br />clusters that front this Qdrant cluster. | false | Optional: \{\} <br /> |



Expand Down Expand Up @@ -1738,6 +1739,7 @@ _Appears in:_
| --- | --- | --- | --- |
| `clusterID` _string_ | ClusterID identifies the Qdrant cluster this Envoy instance serves.<br />When set the Envoy runs in dedicated mode for this cluster.<br />When nil it runs in shared mode. | | Optional: \{\} <br /> |
| `proxyProtocolEnabled` _boolean_ | ProxyProtocolEnabled enables the PROXY protocol on Envoy listeners. | false | Optional: \{\} <br /> |
| `multiAZ` _boolean_ | MultiAZ marks this Envoy fleet as the multi-AZ load balancer. When true,<br />the route-manager advertises this fact to Envoy via node metadata so that<br />zone-aware routing decisions can be made per-cluster via<br />QdrantClusterRouting.spec.multiAZ. | false | Optional: \{\} <br /> |



Expand Down Expand Up @@ -1786,6 +1788,7 @@ _Appears in:_
| `nodeIndexes` _integer array_ | NodeIndexes specifies the indexes of the individual nodes in the cluster. | | |
| `allowedSourceRanges` _string array_ | AllowedSourceRanges specifies the allowed CIDR source ranges for the ingress. | | Optional: \{\} <br /> |
| `enableAccessLog` _boolean_ | If true enable (proxy) access log for this qdrant cluster. | | Optional: \{\} <br /> |
| `multiAZ` _boolean_ | MultiAZ is true when the Qdrant cluster spans multiple availability<br />zones and traffic should be kept same-zone where possible. | false | Optional: \{\} <br /> |



Expand Down
Loading