@@ -26,6 +26,7 @@ const (
26
26
VirtinkVersion = "v0.13.0"
27
27
VirtinkProviderVersion = "v0.6.0"
28
28
IPAddressManagerVersion = "v1.2.1"
29
+ CDIVersion = "v1.55.2"
29
30
)
30
31
31
32
var version string
@@ -101,6 +102,25 @@ func main() {
101
102
}
102
103
}
103
104
105
+ cdiCRDOutput , err := getCommandOutput (exec .Command ("kubectl" , "get" , "crd" , "datavolumes.cdi.kubevirt.io" , "--ignore-not-found" ))
106
+ if err != nil {
107
+ return fmt .Errorf ("get CDI CRDs: %s" , err )
108
+ }
109
+ if len (cdiCRDOutput ) == 0 {
110
+ fmt .Println ("Installing CDI" )
111
+ if err := runCommand (exec .Command ("kubectl" , "apply" , "-f" , fmt .Sprintf ("https://github.com/kubevirt/containerized-data-importer/releases/download/%s/cdi-operator.yaml" , CDIVersion ))); err != nil {
112
+ return fmt .Errorf ("install CDI operator: %s" , err )
113
+ }
114
+ if err := runCommand (exec .Command ("kubectl" , "apply" , "-f" , fmt .Sprintf ("https://github.com/kubevirt/containerized-data-importer/releases/download/%s/cdi-cr.yaml" , CDIVersion ))); err != nil {
115
+ return fmt .Errorf ("install CDI: %s" , err )
116
+ }
117
+
118
+ fmt .Println ("Waiting for CDI to be available..." )
119
+ if err := runCommand (exec .Command ("kubectl" , "wait" , "cdi" , "cdi" , "--for" , "condition=Available" , "--timeout" , "-1s" )); err != nil {
120
+ return fmt .Errorf ("wait for CDI to be available: %s" , err )
121
+ }
122
+ }
123
+
104
124
ipAddressManagerCRDOutput , err := getCommandOutput (exec .Command ("kubectl" , "get" , "crd" , "ippools.ipam.metal3.io" , "--ignore-not-found" ))
105
125
if err != nil {
106
126
return fmt .Errorf ("get ip-address-manager CRDs: %s" , err )
0 commit comments