11package v1
22
33import (
4+ "encoding/json"
45 "fmt"
56
67 corev1 "k8s.io/api/core/v1"
@@ -898,6 +899,42 @@ type QdrantClusterStatus struct {
898899 // This version can differ from the spec, because version updates need to be done in order (see `update-path` annotation)
899900 // +optional
900901 Version string `json:"version,omitempty"`
902+ // The last response from the cluster-manager manage endpoint
903+ // +optional
904+ ClusterManagerReponse * ClusterManagerReponse `json:"clusterManagerResponse,omitempty"`
905+ }
906+
907+ type ClusterManagerReponse struct {
908+ // The last time the cluster-manager responded in UTC
909+ // +optional
910+ LastResponseTime * metav1.Time `json:"lastResponseTime,omitempty"`
911+ // ExecutedActions are the actions that have been executed by the cluster-manager
912+ // +optional
913+ ExecutedActions * []json.RawMessage `json:"executed_actions,omitempty"`
914+ // RequiredActions are the actions that are required to be executed by the operator as instructed by cluster-manager
915+ // +optional
916+ RequiredActions * []json.RawMessage `json:"required_actions,omitempty"`
917+ // SuggestedActions are suggested but not required actions to be executed by the operator as instructed by cluster-manager
918+ // +optional
919+ SuggestedActions * []json.RawMessage `json:"suggested_actions,omitempty"`
920+ }
921+
922+ type KubernetesEventInfo struct {
923+ // Event message
924+ // +optional
925+ Message string `json:"message,omitempty"`
926+ // Event reason
927+ // +optional
928+ Reason string `json:"reason,omitempty"`
929+ // How many times the event has occurred
930+ // +optional
931+ Count int32 `json:"count,omitempty"`
932+ // The first time the event was seen
933+ // +optional
934+ FirstTimestamp metav1.Time `json:"firstTimestamp,omitempty"`
935+ // The last time the event was seen
936+ // +optional
937+ LastTimestamp metav1.Time `json:"lastTimestamp,omitempty"`
901938}
902939
903940type NodeStatus struct {
@@ -917,6 +954,64 @@ type NodeStatus struct {
917954 // This is needed to beter report recovery process to the user.
918955 // +optional
919956 Liveness bool `json:"liveness,omitempty"`
957+
958+ // Status phase of the Pod of the node
959+ // +optional
960+ PodPhase corev1.PodPhase `json:"podPhase,omitempty"`
961+ // Conditions of the Pod of the node
962+ // +optional
963+ PodConditions []corev1.PodCondition `json:"podConditions,omitempty"`
964+ // Status message of the Pod of the node
965+ // +optional
966+ PodMessage string `json:"podMessage,omitempty"`
967+ // Status reason of the Pod of the node
968+ // +optional
969+ PodReason string `json:"podReason,omitempty"`
970+ // Details container statuses of the Pod of the node
971+ // +optional
972+ ContainerStatuses []corev1.ContainerStatus `json:"containerStatuses,omitempty"`
973+ // Recent Kubernetes Events related to the Pod of the node
974+ // Events that happened in the last 30 minutes are stored.
975+ // +optional
976+ PodEvents []KubernetesEventInfo `json:"events,omitempty"`
977+
978+ // The number of times the main qdrant container has been restarted.
979+ // +optional
980+ RestartCount int32 `json:"restartCount,omitempty"`
981+
982+ // Status of the database storage PVC
983+ // +optional
984+ DatabasePVCStatus NodePVCStatus `json:"databasePVCStatus,omitempty"`
985+ // Status of the snapshots storage PVC
986+ // +optional
987+ SnapshotsPVCStatus NodePVCStatus `json:"snapshotsPVCStatus,omitempty"`
988+ }
989+
990+ type NodePVCStatus struct {
991+ // Name of the StorageClass used by the PVC
992+ // +optional
993+ StorageClassName string `json:"storageClassName,omitempty"`
994+ // Status phase of the PVC
995+ // +optional
996+ Phase corev1.PersistentVolumeClaimPhase `json:"phase,omitempty"`
997+ // Conditions of the PVC
998+ // +optional
999+ Conditions []corev1.PersistentVolumeClaimCondition `json:"conditions,omitempty"`
1000+ // Recent Kubernetes Events related to the PVC
1001+ // Events that happened in the last 30 minutes are stored.
1002+ // +optional
1003+ Events []KubernetesEventInfo `json:"events,omitempty"`
1004+ // capacity represents the actual resources of the underlying volume.
1005+ // +optional
1006+ Capacity corev1.ResourceList `json:"capacity,omitempty"`
1007+ // currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using.
1008+ // When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim
1009+ // +optional
1010+ CurrentVolumeAttributesClassName * string `json:"currentVolumeAttributesClassName,omitempty"`
1011+ // ModifyVolumeStatus represents the status object of ControllerModifyVolume operation.
1012+ // When this is unset, there is no ModifyVolume operation being attempted.
1013+ // +optional
1014+ ModifyVolumeStatus * corev1.ModifyVolumeStatus `json:"modifyVolumeStatus,omitempty"`
9201015}
9211016
9221017//+kubebuilder:object:root=true
0 commit comments