diff --git a/api/core/v1alpha2/virtual_machine.go b/api/core/v1alpha2/virtual_machine.go index 5633a02610..51f848406c 100644 --- a/api/core/v1alpha2/virtual_machine.go +++ b/api/core/v1alpha2/virtual_machine.go @@ -41,7 +41,7 @@ const ( // +kubebuilder:subresource:status // +kubebuilder:resource:categories={all,virtualization},scope=Namespaced,shortName={vm},singular=virtualmachine // +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="The phase of the virtual machine." -// +kubebuilder:printcolumn:name="PhaseAge",type="date",JSONPath=".status.stats.phasesTransitions[-1].timestamp",description="Time since the virtual machine entered the current phase." +// +kubebuilder:printcolumn:name="Uptime",type="date",JSONPath=".status.conditions[?(@.reason==\"Running\")].lastTransitionTime",description="Time since the virtual machine started running." // +kubebuilder:printcolumn:name="Cores",priority=1,type="string",JSONPath=".spec.cpu.cores",description="The number of cores of the virtual machine." // +kubebuilder:printcolumn:name="CoreFraction",priority=1,type="string",JSONPath=".spec.cpu.coreFraction",description="Virtual machine core fraction. The range of available values is set in the `sizePolicy` parameter of the VirtualMachineClass; if it is not set, use values within the 1–100% range." // +kubebuilder:printcolumn:name="Memory",priority=1,type="string",JSONPath=".spec.memory.size",description="The amount of memory of the virtual machine." diff --git a/crds/doc-ru-virtualmachines.yaml b/crds/doc-ru-virtualmachines.yaml index 9998fc1112..d825e07ef2 100644 --- a/crds/doc-ru-virtualmachines.yaml +++ b/crds/doc-ru-virtualmachines.yaml @@ -626,7 +626,9 @@ spec: `.metadata.generation`, на основе которого было установлено условие. Например, если `.metadata.generation` в настоящее время имеет значение `12`, а `.status.conditions[x].observedgeneration` имеет значение `9`, то условие устарело. reason: - description: Краткая причина последнего перехода состояния. + description: | + Краткая причина последнего перехода состояния. + Значение `Running` используется для отображения времени работы ВМ в колонке `Uptime`. status: description: | Статус условия. Возможные значения: `True`, `False`, `Unknown`. diff --git a/crds/virtualmachines.yaml b/crds/virtualmachines.yaml index 88162c552b..9243b4fb32 100644 --- a/crds/virtualmachines.yaml +++ b/crds/virtualmachines.yaml @@ -1422,9 +1422,9 @@ spec: jsonPath: .status.phase name: Phase type: string - - description: Time since the virtual machine entered the current phase. - jsonPath: .status.stats.phasesTransitions[-1].timestamp - name: PhaseAge + - description: Time since the virtual machine started running. + jsonPath: '.status.conditions[?(@.reason=="Running")].lastTransitionTime' + name: Uptime type: date - description: Real number of the virtual machine cores. jsonPath: .status.resources.cpu.cores diff --git a/images/virtualization-artifact/pkg/controller/vm/internal/lifecycle.go b/images/virtualization-artifact/pkg/controller/vm/internal/lifecycle.go index 4f694654c0..370a26d909 100644 --- a/images/virtualization-artifact/pkg/controller/vm/internal/lifecycle.go +++ b/images/virtualization-artifact/pkg/controller/vm/internal/lifecycle.go @@ -213,8 +213,12 @@ func (h *LifeCycleHandler) syncRunning(ctx context.Context, vm *v1alpha2.Virtual } for _, c := range kvvmi.Status.Conditions { if c.Type == virtv1.VirtualMachineInstanceReady { + reason := getKVMIReadyReason(c.Reason) + if c.Status == corev1.ConditionTrue && c.Reason == "" { + reason = vmcondition.ReasonVirtualMachineRunning + } cb.Status(conditionStatus(string(c.Status))). - Reason(getKVMIReadyReason(c.Reason)). + Reason(reason). Message(c.Message) conditions.SetCondition(cb, &vm.Status.Conditions) return nil