Skip to content

Commit

Permalink
feat: Install CDI when creating cluster
Browse files Browse the repository at this point in the history
  • Loading branch information
fengye87 committed Dec 21, 2022
1 parent 71989e4 commit 98ac43d
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ const (
VirtinkVersion = "v0.13.0"
VirtinkProviderVersion = "v0.6.0"
IPAddressManagerVersion = "v1.2.1"
CDIVersion = "v1.55.2"
)

var version string
Expand Down Expand Up @@ -101,6 +102,25 @@ func main() {
}
}

cdiCRDOutput, err := getCommandOutput(exec.Command("kubectl", "get", "crd", "datavolumes.cdi.kubevirt.io", "--ignore-not-found"))
if err != nil {
return fmt.Errorf("get CDI CRDs: %s", err)
}
if len(cdiCRDOutput) == 0 {
fmt.Println("Installing CDI")
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 {
return fmt.Errorf("install CDI operator: %s", err)
}
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 {
return fmt.Errorf("install CDI: %s", err)
}

fmt.Println("Waiting for CDI to be available...")
if err := runCommand(exec.Command("kubectl", "wait", "cdi", "cdi", "--for", "condition=Available", "--timeout", "-1s")); err != nil {
return fmt.Errorf("wait for CDI to be available: %s", err)
}
}

ipAddressManagerCRDOutput, err := getCommandOutput(exec.Command("kubectl", "get", "crd", "ippools.ipam.metal3.io", "--ignore-not-found"))
if err != nil {
return fmt.Errorf("get ip-address-manager CRDs: %s", err)
Expand Down

0 comments on commit 98ac43d

Please sign in to comment.