Skip to content

Commit b1d7cab

Browse files
committed
feat(vd): apply new controller design
Signed-off-by: Isteb4k <[email protected]>
1 parent c78d117 commit b1d7cab

File tree

87 files changed

+5956
-3267
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+5956
-3267
lines changed

.mirrord/mirrord.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@
66
},
77
"fs": {
88
"mode": "read",
9-
"read_only": "^/tmp/"
9+
"read_only": [ "^/tmp/", "^/var/" ]
1010
},
1111
"env": true
1212
},
1313
"agent": {
14-
"communication_timeout": 600,
15-
"startup_timeout": 5600
14+
"communication_timeout": 6000,
15+
"startup_timeout": 56000
1616
},
1717
"internal_proxy": {
18-
"start_idle_timeout": 1300,
19-
"idle_timeout": 150
18+
"start_idle_timeout": 13000,
19+
"idle_timeout": 1500
2020
},
2121
"target": {
2222
"namespace": "d8-virtualization",
+29-25
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,42 @@
1-
package cvicondition
1+
/*
2+
Copyright 2024 Flant JSC
23
3-
type Type = string
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
47
5-
const (
6-
DatasourceReady Type = "DatasourceReady"
7-
ProvisioningPodStarted Type = "ProvisioningPodStarted"
8-
UserUploadStarted Type = "UserUploadStarted"
9-
Ready Type = "Ready"
10-
)
8+
http://www.apache.org/licenses/LICENSE-2.0
119
12-
type DatasourceReadyReason = string
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
1316

14-
const (
15-
ContainerRegistrySecretNotFound DatasourceReadyReason = "ContainerRegistrySecretNotFound"
16-
ImageNotReady DatasourceReadyReason = "ImageNotReady"
17-
ClusterImageNotReady DatasourceReadyReason = "ClusterImageNotReady"
18-
)
17+
package cvicondition
1918

20-
type ProvisioningPodStartedReason = string
19+
type Type = string
2120

2221
const (
23-
PodNotStarted ProvisioningPodStartedReason = "PodNotStarted"
22+
DatasourceReadyType Type = "DatasourceReady"
23+
ReadyType Type = "Ready"
2424
)
2525

26-
type UserUploadStartedReason = string
27-
28-
const (
29-
NonUploadDataSource UserUploadStartedReason = "NonUploadDataSource"
30-
NotStartedYet UserUploadStartedReason = "NotStartedYet"
26+
type (
27+
DatasourceReadyReason = string
28+
ReadyReason = string
3129
)
3230

33-
type ReadyReason = string
34-
3531
const (
36-
BadImageChecksum ReadyReason = "BadImageChecksum"
37-
ImportFailed ReadyReason = "ImportFailed"
32+
DatasourceReadyReason_DatasourceReady DatasourceReadyReason = "DatasourceReady"
33+
DatasourceReadyReason_ContainerRegistrySecretNotFound DatasourceReadyReason = "ContainerRegistrySecretNotFound"
34+
DatasourceReadyReason_ImageNotReady DatasourceReadyReason = "ImageNotReady"
35+
DatasourceReadyReason_ClusterImageNotReady DatasourceReadyReason = "ClusterImageNotReady"
36+
37+
ReadyReason_WaitForUserUpload ReadyReason = "WaitForUserUpload"
38+
ReadyReason_Provisioning ReadyReason = "Provisioning"
39+
ReadyReason_ProvisioningNotStarted ReadyReason = "ProvisioningNotStarted"
40+
ReadyReason_ProvisioningFailed ReadyReason = "ProvisioningFailed"
41+
ReadyReason_Ready ReadyReason = "Ready"
3842
)

api/core/v1alpha2/data_source.go

+4-6
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,8 @@ type Checksum struct {
4141
type DataSourceType string
4242

4343
const (
44-
DataSourceTypeHTTP DataSourceType = "HTTP"
45-
DataSourceTypeContainerImage DataSourceType = "ContainerImage"
46-
DataSourceTypeObjectRef DataSourceType = "ObjectRef"
47-
DataSourceTypeUpload DataSourceType = "Upload"
48-
DataSourceTypeVirtualDiskSnapshot DataSourceType = "VirtualDiskSnapshot"
49-
DataSourceTypePersistentVolumeClaim DataSourceType = "PersistentVolumeClaim"
44+
DataSourceTypeHTTP DataSourceType = "HTTP"
45+
DataSourceTypeContainerImage DataSourceType = "ContainerImage"
46+
DataSourceTypeObjectRef DataSourceType = "ObjectRef"
47+
DataSourceTypeUpload DataSourceType = "Upload"
5048
)

api/core/v1alpha2/finalizers.go

+10-8
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@ limitations under the License.
1717
package v1alpha2
1818

1919
const (
20-
FinalizerPodProtection = "virtualization.deckhouse.io/pod-protection"
21-
FinalizerServiceProtection = "virtualization.deckhouse.io/svc-protection"
22-
FinalizerIngressProtection = "virtualization.deckhouse.io/ingress-protection"
23-
FinalizerSecretProtection = "virtualization.deckhouse.io/secret-protection"
24-
FinalizerDVProtection = "virtualization.deckhouse.io/dv-protection"
25-
FinalizerPVCProtection = "virtualization.deckhouse.io/pvc-protection"
26-
FinalizerPVProtection = "virtualization.deckhouse.io/pv-protection"
20+
FinalizerClusterVirtualImageProtection = "virtualization.deckhouse.io/cvi-protection"
21+
FinalizerVirtualDiskProtection = "virtualization.deckhouse.io/vd-protection"
22+
FinalizerPodProtection = "virtualization.deckhouse.io/pod-protection"
23+
FinalizerServiceProtection = "virtualization.deckhouse.io/svc-protection"
24+
FinalizerIngressProtection = "virtualization.deckhouse.io/ingress-protection"
25+
FinalizerSecretProtection = "virtualization.deckhouse.io/secret-protection"
26+
FinalizerDVProtection = "virtualization.deckhouse.io/dv-protection"
27+
FinalizerPVCProtection = "virtualization.deckhouse.io/pvc-protection"
28+
FinalizerPVProtection = "virtualization.deckhouse.io/pv-protection"
2729

2830
FinalizerCVMIProtection = "virtualization.deckhouse.io/cvi-protection"
2931
FinalizerVMIProtection = "virtualization.deckhouse.io/vi-protection"
@@ -33,8 +35,8 @@ const (
3335
FinalizerVMCPUProtection = "virtualization.deckhouse.io/vmcpu-protection"
3436

3537
FinalizerCVICleanup = "virtualization.deckhouse.io/cvi-cleanup"
38+
FinalizerVDCleanup = "virtualization.deckhouse.io/vd-cleanup"
3639
FinalizerVMICleanup = "virtualization.deckhouse.io/vi-cleanup"
37-
FinalizerVMDCleanup = "virtualization.deckhouse.io/vd-cleanup"
3840
FinalizerVMCleanup = "virtualization.deckhouse.io/vm-cleanup"
3941
FinalizerIPAddressClaimCleanup = "virtualization.deckhouse.io/vmip-cleanup"
4042
FinalizerIPAddressLeaseCleanup = "virtualization.deckhouse.io/vmipl-cleanup"

api/core/v1alpha2/image_status.go

+7
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,13 @@ type ImageStatus struct {
4545
FailureMessage string `json:"failureMessage,omitempty"`
4646
}
4747

48+
type StatusSpeed struct {
49+
Avg string `json:"avg,omitempty"`
50+
AvgBytes string `json:"avgBytes,omitempty"`
51+
Current string `json:"current,omitempty"`
52+
CurrentBytes string `json:"currentBytes,omitempty"`
53+
}
54+
4855
type ImageStatusSpeed struct {
4956
Avg string `json:"avg,omitempty"`
5057
AvgBytes string `json:"avgBytes,omitempty"`
+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/*
2+
Copyright 2024 Flant JSC
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package vdcondition
18+
19+
type Type = string
20+
21+
const (
22+
DatasourceReadyType Type = "DatasourceReady"
23+
ReadyType Type = "Ready"
24+
ResizedType Type = "Resized"
25+
)
26+
27+
type (
28+
DatasourceReadyReason = string
29+
ReadyReason = string
30+
ResizedReason = string
31+
)
32+
33+
const (
34+
DatasourceReadyReason_DatasourceReady DatasourceReadyReason = "DatasourceReady"
35+
DatasourceReadyReason_ContainerRegistrySecretNotFound DatasourceReadyReason = "ContainerRegistrySecretNotFound"
36+
DatasourceReadyReason_ImageNotReady DatasourceReadyReason = "ImageNotReady"
37+
DatasourceReadyReason_ClusterImageNotReady DatasourceReadyReason = "ClusterImageNotReady"
38+
39+
ReadyReason_WaitForUserUpload ReadyReason = "WaitForUserUpload"
40+
ReadyReason_Provisioning ReadyReason = "Provisioning"
41+
ReadyReason_ProvisioningNotStarted ReadyReason = "ProvisioningNotStarted"
42+
ReadyReason_ProvisioningFailed ReadyReason = "ProvisioningFailed"
43+
ReadyReason_Ready ReadyReason = "Ready"
44+
ReadyReason_Lost ReadyReason = "PVCLost"
45+
46+
ResizedReason_NotRequested ResizedReason = "NotRequested"
47+
ResizedReason_InProgress ResizedReason = "InProgress"
48+
ResizedReason_TooSmallDiskSize ResizedReason = "TooSmallDiskSize"
49+
ResizedReason_Resized ResizedReason = "Resized"
50+
)

api/core/v1alpha2/virtual_disk.go

+18-12
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,19 @@ type VirtualDiskSpec struct {
4343
}
4444

4545
type VirtualDiskStatus struct {
46-
DownloadSpeed VirtualDiskDownloadSpeed `json:"downloadSpeed"`
47-
Capacity string `json:"capacity,omitempty"`
48-
Target DiskTarget `json:"target"`
49-
Progress string `json:"progress,omitempty"`
50-
UploadCommand string `json:"uploadCommand,omitempty"`
51-
Phase DiskPhase `json:"phase"`
52-
FailureReason string `json:"failureReason"`
53-
FailureMessage string `json:"failureMessage"`
46+
DownloadSpeed VirtualDiskDownloadSpeed `json:"downloadSpeed"`
47+
Capacity string `json:"capacity,omitempty"`
48+
Target DiskTarget `json:"target"`
49+
Progress string `json:"progress,omitempty"`
50+
UploadCommand string `json:"uploadCommand,omitempty"`
51+
Phase DiskPhase `json:"phase"`
52+
AttachedToVirtualMachines []AttachedVirtualMachine `json:"attachedToVirtualMachines,omitempty"`
53+
Conditions []metav1.Condition `json:"conditions,omitempty"`
54+
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
55+
}
56+
57+
type AttachedVirtualMachine struct {
58+
Name string `json:"name"`
5459
}
5560

5661
type VirtualDiskDataSource struct {
@@ -80,7 +85,7 @@ type VirtualDiskDownloadSpeed struct {
8085
}
8186

8287
type DiskTarget struct {
83-
PersistentVolumeClaim string `json:"persistentVolumeClaimName"`
88+
PersistentVolumeClaim string `json:"persistentVolumeClaimName,omitempty"`
8489
}
8590

8691
type VirtualDiskPersistentVolumeClaim struct {
@@ -102,8 +107,9 @@ const (
102107
DiskPending DiskPhase = "Pending"
103108
DiskWaitForUserUpload DiskPhase = "WaitForUserUpload"
104109
DiskProvisioning DiskPhase = "Provisioning"
105-
DiskReady DiskPhase = "Ready"
106110
DiskFailed DiskPhase = "Failed"
107-
DiskPVCLost DiskPhase = "PVCLost"
108-
DiskUnknown DiskPhase = "Unknown"
111+
DiskLost DiskPhase = "Lost"
112+
DiskReady DiskPhase = "Ready"
113+
DiskResizing DiskPhase = "Resizing"
114+
DiskTerminating DiskPhase = "Terminating"
109115
)

api/core/v1alpha2/zz_generated.deepcopy.go

+45-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)