...
1
19
20 package v1alpha1
21
22 import (
23 k8sv1 "k8s.io/api/core/v1"
24 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
25
26 virtv1 "kubevirt.io/api/core/v1"
27 )
28
29 const (
30 VirtualMachinePoolKind = "VirtualMachinePool"
31 )
32
33
34
35
36
37
38
39 type VirtualMachinePool struct {
40 metav1.TypeMeta `json:",inline"`
41 metav1.ObjectMeta `json:"metadata,omitempty"`
42
43 Spec VirtualMachinePoolSpec `json:"spec" valid:"required"`
44 Status VirtualMachinePoolStatus `json:"status,omitempty"`
45 }
46
47
48 type VirtualMachineTemplateSpec struct {
49
50
51 ObjectMeta metav1.ObjectMeta `json:"metadata,omitempty"`
52
53 Spec virtv1.VirtualMachineSpec `json:"spec,omitempty" valid:"required"`
54 }
55
56
57 type VirtualMachinePoolConditionType string
58
59 const (
60
61
62 VirtualMachinePoolReplicaFailure VirtualMachinePoolConditionType = "ReplicaFailure"
63
64
65
66 VirtualMachinePoolReplicaPaused VirtualMachinePoolConditionType = "ReplicaPaused"
67 )
68
69
70 type VirtualMachinePoolCondition struct {
71 Type VirtualMachinePoolConditionType `json:"type"`
72 Status k8sv1.ConditionStatus `json:"status"`
73
74 LastProbeTime metav1.Time `json:"lastProbeTime,omitempty"`
75
76 LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
77 Reason string `json:"reason,omitempty"`
78 Message string `json:"message,omitempty"`
79 }
80
81
82 type VirtualMachinePoolStatus struct {
83 Replicas int32 `json:"replicas,omitempty" optional:"true"`
84
85 ReadyReplicas int32 `json:"readyReplicas,omitempty" optional:"true"`
86
87
88 Conditions []VirtualMachinePoolCondition `json:"conditions,omitempty" optional:"true"`
89
90
91 LabelSelector string `json:"labelSelector,omitempty"`
92 }
93
94
95 type VirtualMachinePoolSpec struct {
96
97
98
99 Replicas *int32 `json:"replicas,omitempty"`
100
101
102
103 Selector *metav1.LabelSelector `json:"selector" valid:"required"`
104
105
106 VirtualMachineTemplate *VirtualMachineTemplateSpec `json:"virtualMachineTemplate" valid:"required"`
107
108
109
110 Paused bool `json:"paused,omitempty" protobuf:"varint,7,opt,name=paused"`
111 }
112
113
114
115
116
117 type VirtualMachinePoolList struct {
118 metav1.TypeMeta `json:",inline"`
119 metav1.ListMeta `json:"metadata,omitempty"`
120 Items []VirtualMachinePool `json:"items"`
121 }
122
View as plain text