Skip to content

Commit 158cb92

Browse files
author
Toni Reina
authored
Add new fields to the ClusterConfiguration message (#182)
Add configuration fields used for clusters running in hybrid cloud environments.
1 parent 6e0d9ec commit 158cb92

8 files changed

Lines changed: 546 additions & 248 deletions

File tree

gen/go/qdrant/cloud/cluster/v1/cluster.pb.go

Lines changed: 268 additions & 164 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/openapiv2/qdrant/cloud/cluster/backup/v1/backup.swagger.json

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -887,23 +887,23 @@
887887
"type": "object",
888888
"$ref": "#/definitions/v1KeyValue"
889889
},
890-
"title": "The node selector for this cluster in a hybrid cloud.\nIt is ignored for managed cloud clusters. This is an optional field"
890+
"title": "The node selector for this cluster in a hybrid cloud environment.\nIt is ignored for managed cloud clusters. This is an optional field"
891891
},
892892
"tolerations": {
893893
"type": "array",
894894
"items": {
895895
"type": "object",
896896
"$ref": "#/definitions/cloudclusterv1Toleration"
897897
},
898-
"title": "List of tolerations for this cluster in a hybrid cloud.\nIt is ignored for managed cloud clusters. This is an optional field"
898+
"title": "List of tolerations for this cluster in a hybrid cloud environment.\nIt is ignored for managed cloud clusters. This is an optional field"
899899
},
900900
"annotations": {
901901
"type": "array",
902902
"items": {
903903
"type": "object",
904904
"$ref": "#/definitions/v1KeyValue"
905905
},
906-
"title": "List of annotations for this cluster in a hybrid cloud.\nIt is ignored for managed cloud clusters. This is an optional field"
906+
"title": "List of annotations for this cluster in a hybrid cloud environment.\nIt is ignored for managed cloud clusters. This is an optional field"
907907
},
908908
"allowedIpSourceRanges": {
909909
"type": "array",
@@ -912,6 +912,26 @@
912912
},
913913
"description": "List of allowed IP source ranges for this cluster.\nField is used for both managed cloud and hybrid cloud and clusters. This is an optional field\nThe CIDRs supports IPv4 only."
914914
},
915+
"serviceType": {
916+
"$ref": "#/definitions/v1ClusterServiceType",
917+
"description": "The type of service to use for this cluster in a hybrid cloud environment.\nIt is ignored for managed cloud clusters. This is an optional field, default is Cluster IP."
918+
},
919+
"serviceAnnotations": {
920+
"type": "array",
921+
"items": {
922+
"type": "object",
923+
"$ref": "#/definitions/v1KeyValue"
924+
},
925+
"title": "List of annotations applied to the service of this cluster in a hybrid cloud environment.\nIt is ignored for managed cloud clusters. This is an optional field"
926+
},
927+
"podLabels": {
928+
"type": "array",
929+
"items": {
930+
"type": "object",
931+
"$ref": "#/definitions/v1KeyValue"
932+
},
933+
"title": "List of labels applied to the pods of this cluster in a hybrid cloud environment.\nIt is ignored for managed cloud clusters. This is an optional field"
934+
},
915935
"reservedCpuPercentage": {
916936
"type": "integer",
917937
"format": "int64",
@@ -991,6 +1011,18 @@
9911011
},
9921012
"description": "Represents the cluster details associated with a backup.\nThe identity fields (name, cloud_provider_id, cloud_provider_region_id) reflect the latest cluster state.\nThe configuration field is immutable and represents the values at backup time."
9931013
},
1014+
"v1ClusterServiceType": {
1015+
"type": "string",
1016+
"enum": [
1017+
"CLUSTER_SERVICE_TYPE_UNSPECIFIED",
1018+
"CLUSTER_SERVICE_TYPE_CLUSTER_IP",
1019+
"CLUSTER_SERVICE_TYPE_NODE_PORT",
1020+
"CLUSTER_SERVICE_TYPE_LOAD_BALANCER"
1021+
],
1022+
"default": "CLUSTER_SERVICE_TYPE_UNSPECIFIED",
1023+
"description": "- CLUSTER_SERVICE_TYPE_UNSPECIFIED: Service type is unspecified.\n - CLUSTER_SERVICE_TYPE_CLUSTER_IP: Use a service configured with type ClusterIP.\n - CLUSTER_SERVICE_TYPE_NODE_PORT: Use a service configured with type NodePort.\n - CLUSTER_SERVICE_TYPE_LOAD_BALANCER: Use a service configured with type LoadBalancer.",
1024+
"title": "ClusterServiceType defines the type of service to use for the cluster.\nSee: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec"
1025+
},
9941026
"v1CreateBackupResponse": {
9951027
"type": "object",
9961028
"properties": {

gen/openapiv2/qdrant/cloud/cluster/v1/cluster.swagger.json

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -669,23 +669,23 @@
669669
"type": "object",
670670
"$ref": "#/definitions/v1KeyValue"
671671
},
672-
"title": "The node selector for this cluster in a hybrid cloud.\nIt is ignored for managed cloud clusters. This is an optional field"
672+
"title": "The node selector for this cluster in a hybrid cloud environment.\nIt is ignored for managed cloud clusters. This is an optional field"
673673
},
674674
"tolerations": {
675675
"type": "array",
676676
"items": {
677677
"type": "object",
678678
"$ref": "#/definitions/cloudclusterv1Toleration"
679679
},
680-
"title": "List of tolerations for this cluster in a hybrid cloud.\nIt is ignored for managed cloud clusters. This is an optional field"
680+
"title": "List of tolerations for this cluster in a hybrid cloud environment.\nIt is ignored for managed cloud clusters. This is an optional field"
681681
},
682682
"annotations": {
683683
"type": "array",
684684
"items": {
685685
"type": "object",
686686
"$ref": "#/definitions/v1KeyValue"
687687
},
688-
"title": "List of annotations for this cluster in a hybrid cloud.\nIt is ignored for managed cloud clusters. This is an optional field"
688+
"title": "List of annotations for this cluster in a hybrid cloud environment.\nIt is ignored for managed cloud clusters. This is an optional field"
689689
},
690690
"allowedIpSourceRanges": {
691691
"type": "array",
@@ -694,6 +694,26 @@
694694
},
695695
"description": "List of allowed IP source ranges for this cluster.\nField is used for both managed cloud and hybrid cloud and clusters. This is an optional field\nThe CIDRs supports IPv4 only."
696696
},
697+
"serviceType": {
698+
"$ref": "#/definitions/v1ClusterServiceType",
699+
"description": "The type of service to use for this cluster in a hybrid cloud environment.\nIt is ignored for managed cloud clusters. This is an optional field, default is Cluster IP."
700+
},
701+
"serviceAnnotations": {
702+
"type": "array",
703+
"items": {
704+
"type": "object",
705+
"$ref": "#/definitions/v1KeyValue"
706+
},
707+
"title": "List of annotations applied to the service of this cluster in a hybrid cloud environment.\nIt is ignored for managed cloud clusters. This is an optional field"
708+
},
709+
"podLabels": {
710+
"type": "array",
711+
"items": {
712+
"type": "object",
713+
"$ref": "#/definitions/v1KeyValue"
714+
},
715+
"title": "List of labels applied to the pods of this cluster in a hybrid cloud environment.\nIt is ignored for managed cloud clusters. This is an optional field"
716+
},
697717
"reservedCpuPercentage": {
698718
"type": "integer",
699719
"format": "int64",
@@ -908,6 +928,18 @@
908928
"default": "CLUSTER_SCALABILITY_STATUS_UNSPECIFIED",
909929
"description": "ClusterScalabilityStatus defines the scalability states of a cluster.\n\n - CLUSTER_SCALABILITY_STATUS_UNSPECIFIED: Scalability status is unspecified.\n - CLUSTER_SCALABILITY_STATUS_NOT_SCALABLE: The cluster is not scalable.\n - CLUSTER_SCALABILITY_STATUS_SCALABLE: The cluster supports scaling operations."
910930
},
931+
"v1ClusterServiceType": {
932+
"type": "string",
933+
"enum": [
934+
"CLUSTER_SERVICE_TYPE_UNSPECIFIED",
935+
"CLUSTER_SERVICE_TYPE_CLUSTER_IP",
936+
"CLUSTER_SERVICE_TYPE_NODE_PORT",
937+
"CLUSTER_SERVICE_TYPE_LOAD_BALANCER"
938+
],
939+
"default": "CLUSTER_SERVICE_TYPE_UNSPECIFIED",
940+
"description": "- CLUSTER_SERVICE_TYPE_UNSPECIFIED: Service type is unspecified.\n - CLUSTER_SERVICE_TYPE_CLUSTER_IP: Use a service configured with type ClusterIP.\n - CLUSTER_SERVICE_TYPE_NODE_PORT: Use a service configured with type NodePort.\n - CLUSTER_SERVICE_TYPE_LOAD_BALANCER: Use a service configured with type LoadBalancer.",
941+
"title": "ClusterServiceType defines the type of service to use for the cluster.\nSee: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec"
942+
},
911943
"v1ClusterState": {
912944
"type": "object",
913945
"properties": {

gen/python/qdrant/cloud/cluster/v1/cluster_pb2.py

Lines changed: 68 additions & 60 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gen/python/qdrant/cloud/cluster/v1/cluster_pb2.pyi

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
1414

1515
DESCRIPTOR: _descriptor.FileDescriptor
1616

17+
class ClusterServiceType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
18+
__slots__ = ()
19+
CLUSTER_SERVICE_TYPE_UNSPECIFIED: _ClassVar[ClusterServiceType]
20+
CLUSTER_SERVICE_TYPE_CLUSTER_IP: _ClassVar[ClusterServiceType]
21+
CLUSTER_SERVICE_TYPE_NODE_PORT: _ClassVar[ClusterServiceType]
22+
CLUSTER_SERVICE_TYPE_LOAD_BALANCER: _ClassVar[ClusterServiceType]
23+
1724
class ClusterConfigurationGpuType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
1825
__slots__ = ()
1926
CLUSTER_CONFIGURATION_GPU_TYPE_UNSPECIFIED: _ClassVar[ClusterConfigurationGpuType]
@@ -91,6 +98,10 @@ class ClusterScalabilityStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper
9198
CLUSTER_SCALABILITY_STATUS_UNSPECIFIED: _ClassVar[ClusterScalabilityStatus]
9299
CLUSTER_SCALABILITY_STATUS_NOT_SCALABLE: _ClassVar[ClusterScalabilityStatus]
93100
CLUSTER_SCALABILITY_STATUS_SCALABLE: _ClassVar[ClusterScalabilityStatus]
101+
CLUSTER_SERVICE_TYPE_UNSPECIFIED: ClusterServiceType
102+
CLUSTER_SERVICE_TYPE_CLUSTER_IP: ClusterServiceType
103+
CLUSTER_SERVICE_TYPE_NODE_PORT: ClusterServiceType
104+
CLUSTER_SERVICE_TYPE_LOAD_BALANCER: ClusterServiceType
94105
CLUSTER_CONFIGURATION_GPU_TYPE_UNSPECIFIED: ClusterConfigurationGpuType
95106
CLUSTER_CONFIGURATION_GPU_TYPE_NVIDIA: ClusterConfigurationGpuType
96107
CLUSTER_CONFIGURATION_GPU_TYPE_AMD: ClusterConfigurationGpuType
@@ -284,7 +295,7 @@ class Cluster(_message.Message):
284295
def __init__(self, id: _Optional[str] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., account_id: _Optional[str] = ..., name: _Optional[str] = ..., deleted_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., cloud_provider_id: _Optional[str] = ..., cloud_provider_region_id: _Optional[str] = ..., configuration: _Optional[_Union[ClusterConfiguration, _Mapping]] = ..., state: _Optional[_Union[ClusterState, _Mapping]] = ...) -> None: ...
285296

286297
class ClusterConfiguration(_message.Message):
287-
__slots__ = ("last_modified_at", "number_of_nodes", "version", "package_id", "additional_resources", "database_configuration", "node_selector", "tolerations", "annotations", "allowed_ip_source_ranges", "reserved_cpu_percentage", "reserved_memory_percentage", "gpu_type", "restart_policy", "rebalance_strategy")
298+
__slots__ = ("last_modified_at", "number_of_nodes", "version", "package_id", "additional_resources", "database_configuration", "node_selector", "tolerations", "annotations", "allowed_ip_source_ranges", "service_type", "service_annotations", "pod_labels", "reserved_cpu_percentage", "reserved_memory_percentage", "gpu_type", "restart_policy", "rebalance_strategy")
288299
LAST_MODIFIED_AT_FIELD_NUMBER: _ClassVar[int]
289300
NUMBER_OF_NODES_FIELD_NUMBER: _ClassVar[int]
290301
VERSION_FIELD_NUMBER: _ClassVar[int]
@@ -295,6 +306,9 @@ class ClusterConfiguration(_message.Message):
295306
TOLERATIONS_FIELD_NUMBER: _ClassVar[int]
296307
ANNOTATIONS_FIELD_NUMBER: _ClassVar[int]
297308
ALLOWED_IP_SOURCE_RANGES_FIELD_NUMBER: _ClassVar[int]
309+
SERVICE_TYPE_FIELD_NUMBER: _ClassVar[int]
310+
SERVICE_ANNOTATIONS_FIELD_NUMBER: _ClassVar[int]
311+
POD_LABELS_FIELD_NUMBER: _ClassVar[int]
298312
RESERVED_CPU_PERCENTAGE_FIELD_NUMBER: _ClassVar[int]
299313
RESERVED_MEMORY_PERCENTAGE_FIELD_NUMBER: _ClassVar[int]
300314
GPU_TYPE_FIELD_NUMBER: _ClassVar[int]
@@ -310,12 +324,15 @@ class ClusterConfiguration(_message.Message):
310324
tolerations: _containers.RepeatedCompositeFieldContainer[Toleration]
311325
annotations: _containers.RepeatedCompositeFieldContainer[_common_pb2.KeyValue]
312326
allowed_ip_source_ranges: _containers.RepeatedScalarFieldContainer[str]
327+
service_type: ClusterServiceType
328+
service_annotations: _containers.RepeatedCompositeFieldContainer[_common_pb2.KeyValue]
329+
pod_labels: _containers.RepeatedCompositeFieldContainer[_common_pb2.KeyValue]
313330
reserved_cpu_percentage: int
314331
reserved_memory_percentage: int
315332
gpu_type: ClusterConfigurationGpuType
316333
restart_policy: ClusterConfigurationRestartPolicy
317334
rebalance_strategy: ClusterConfigurationRebalanceStrategy
318-
def __init__(self, last_modified_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., number_of_nodes: _Optional[int] = ..., version: _Optional[str] = ..., package_id: _Optional[str] = ..., additional_resources: _Optional[_Union[AdditionalResources, _Mapping]] = ..., database_configuration: _Optional[_Union[DatabaseConfiguration, _Mapping]] = ..., node_selector: _Optional[_Iterable[_Union[_common_pb2.KeyValue, _Mapping]]] = ..., tolerations: _Optional[_Iterable[_Union[Toleration, _Mapping]]] = ..., annotations: _Optional[_Iterable[_Union[_common_pb2.KeyValue, _Mapping]]] = ..., allowed_ip_source_ranges: _Optional[_Iterable[str]] = ..., reserved_cpu_percentage: _Optional[int] = ..., reserved_memory_percentage: _Optional[int] = ..., gpu_type: _Optional[_Union[ClusterConfigurationGpuType, str]] = ..., restart_policy: _Optional[_Union[ClusterConfigurationRestartPolicy, str]] = ..., rebalance_strategy: _Optional[_Union[ClusterConfigurationRebalanceStrategy, str]] = ...) -> None: ...
335+
def __init__(self, last_modified_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., number_of_nodes: _Optional[int] = ..., version: _Optional[str] = ..., package_id: _Optional[str] = ..., additional_resources: _Optional[_Union[AdditionalResources, _Mapping]] = ..., database_configuration: _Optional[_Union[DatabaseConfiguration, _Mapping]] = ..., node_selector: _Optional[_Iterable[_Union[_common_pb2.KeyValue, _Mapping]]] = ..., tolerations: _Optional[_Iterable[_Union[Toleration, _Mapping]]] = ..., annotations: _Optional[_Iterable[_Union[_common_pb2.KeyValue, _Mapping]]] = ..., allowed_ip_source_ranges: _Optional[_Iterable[str]] = ..., service_type: _Optional[_Union[ClusterServiceType, str]] = ..., service_annotations: _Optional[_Iterable[_Union[_common_pb2.KeyValue, _Mapping]]] = ..., pod_labels: _Optional[_Iterable[_Union[_common_pb2.KeyValue, _Mapping]]] = ..., reserved_cpu_percentage: _Optional[int] = ..., reserved_memory_percentage: _Optional[int] = ..., gpu_type: _Optional[_Union[ClusterConfigurationGpuType, str]] = ..., restart_policy: _Optional[_Union[ClusterConfigurationRestartPolicy, str]] = ..., rebalance_strategy: _Optional[_Union[ClusterConfigurationRebalanceStrategy, str]] = ...) -> None: ...
319336

320337
class DatabaseConfiguration(_message.Message):
321338
__slots__ = ("collection", "storage", "service", "log_level", "tls", "inference")

gen/typescript/qdrant/cloud/cluster/v1/cluster_pb.d.ts

Lines changed: 68 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -764,23 +764,23 @@ export declare type ClusterConfiguration = Message<"qdrant.cloud.cluster.v1.Clus
764764
databaseConfiguration?: DatabaseConfiguration;
765765

766766
/**
767-
* The node selector for this cluster in a hybrid cloud.
767+
* The node selector for this cluster in a hybrid cloud environment.
768768
* It is ignored for managed cloud clusters. This is an optional field
769769
*
770770
* @generated from field: repeated qdrant.cloud.common.v1.KeyValue node_selector = 8;
771771
*/
772772
nodeSelector: KeyValue[];
773773

774774
/**
775-
* List of tolerations for this cluster in a hybrid cloud.
775+
* List of tolerations for this cluster in a hybrid cloud environment.
776776
* It is ignored for managed cloud clusters. This is an optional field
777777
*
778778
* @generated from field: repeated qdrant.cloud.cluster.v1.Toleration tolerations = 9;
779779
*/
780780
tolerations: Toleration[];
781781

782782
/**
783-
* List of annotations for this cluster in a hybrid cloud.
783+
* List of annotations for this cluster in a hybrid cloud environment.
784784
* It is ignored for managed cloud clusters. This is an optional field
785785
*
786786
* @generated from field: repeated qdrant.cloud.common.v1.KeyValue annotations = 10;
@@ -796,6 +796,30 @@ export declare type ClusterConfiguration = Message<"qdrant.cloud.cluster.v1.Clus
796796
*/
797797
allowedIpSourceRanges: string[];
798798

799+
/**
800+
* The type of service to use for this cluster in a hybrid cloud environment.
801+
* It is ignored for managed cloud clusters. This is an optional field, default is Cluster IP.
802+
*
803+
* @generated from field: optional qdrant.cloud.cluster.v1.ClusterServiceType service_type = 12;
804+
*/
805+
serviceType?: ClusterServiceType;
806+
807+
/**
808+
* List of annotations applied to the service of this cluster in a hybrid cloud environment.
809+
* It is ignored for managed cloud clusters. This is an optional field
810+
*
811+
* @generated from field: repeated qdrant.cloud.common.v1.KeyValue service_annotations = 13;
812+
*/
813+
serviceAnnotations: KeyValue[];
814+
815+
/**
816+
* List of labels applied to the pods of this cluster in a hybrid cloud environment.
817+
* It is ignored for managed cloud clusters. This is an optional field
818+
*
819+
* @generated from field: repeated qdrant.cloud.common.v1.KeyValue pod_labels = 14;
820+
*/
821+
podLabels: KeyValue[];
822+
799823
/**
800824
* The percentage of CPU resources reserved for system components
801825
* This is an optional field, default is 0.
@@ -1783,6 +1807,47 @@ export declare type CreateClusterFromBackupResponseValid = Message<"qdrant.cloud
17831807
*/
17841808
export declare const CreateClusterFromBackupResponseSchema: GenMessage<CreateClusterFromBackupResponse, {validType: CreateClusterFromBackupResponseValid}>;
17851809

1810+
/**
1811+
* ClusterServiceType defines the type of service to use for the cluster.
1812+
* See: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec
1813+
*
1814+
* @generated from enum qdrant.cloud.cluster.v1.ClusterServiceType
1815+
*/
1816+
export enum ClusterServiceType {
1817+
/**
1818+
* Service type is unspecified.
1819+
*
1820+
* @generated from enum value: CLUSTER_SERVICE_TYPE_UNSPECIFIED = 0;
1821+
*/
1822+
UNSPECIFIED = 0,
1823+
1824+
/**
1825+
* Use a service configured with type ClusterIP.
1826+
*
1827+
* @generated from enum value: CLUSTER_SERVICE_TYPE_CLUSTER_IP = 1;
1828+
*/
1829+
CLUSTER_IP = 1,
1830+
1831+
/**
1832+
* Use a service configured with type NodePort.
1833+
*
1834+
* @generated from enum value: CLUSTER_SERVICE_TYPE_NODE_PORT = 2;
1835+
*/
1836+
NODE_PORT = 2,
1837+
1838+
/**
1839+
* Use a service configured with type LoadBalancer.
1840+
*
1841+
* @generated from enum value: CLUSTER_SERVICE_TYPE_LOAD_BALANCER = 3;
1842+
*/
1843+
LOAD_BALANCER = 3,
1844+
}
1845+
1846+
/**
1847+
* Describes the enum qdrant.cloud.cluster.v1.ClusterServiceType.
1848+
*/
1849+
export declare const ClusterServiceTypeSchema: GenEnum<ClusterServiceType>;
1850+
17861851
/**
17871852
* ClusterConfigurationGpuType defines GPU types available for clusters.
17881853
*

gen/typescript/qdrant/cloud/cluster/v1/cluster_pb.js

Lines changed: 25 additions & 10 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)