Skip to content

Commit

Permalink
Split function to create container and init container to 2 functions
Browse files Browse the repository at this point in the history
Signed-off-by: Itamar Holder <iholder@redhat.com>
  • Loading branch information
iholder101 committed Oct 13, 2021
1 parent b5df147 commit 27f1583
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
17 changes: 11 additions & 6 deletions pkg/container-disk/container-disk.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,9 +212,17 @@ func GenerateContainers(vmi *v1.VirtualMachineInstance, podVolumeName string, bi
return generateContainersHelper(vmi, podVolumeName, binVolumeName, false)
}

func GenerateKernelBootContainers(vmi *v1.VirtualMachineInstance, podVolumeName string, binVolumeName string) (container, initContainer *kubev1.Container) {
func GenerateKernelBootContainer(vmi *v1.VirtualMachineInstance, podVolumeName string, binVolumeName string) *kubev1.Container {
return generateKernelBootContainerHelper(vmi, podVolumeName, binVolumeName, false)
}

func GenerateKernelBootInitContainer(vmi *v1.VirtualMachineInstance, podVolumeName string, binVolumeName string) *kubev1.Container {
return generateKernelBootContainerHelper(vmi, podVolumeName, binVolumeName, true)
}

func generateKernelBootContainerHelper(vmi *v1.VirtualMachineInstance, podVolumeName string, binVolumeName string, isInit bool) *kubev1.Container {
if !util.HasKernelBootContainerImage(vmi) {
return nil, nil
return nil
}

kernelBootContainer := vmi.Spec.Domain.Firmware.KernelBoot.Container
Expand All @@ -232,10 +240,7 @@ func GenerateKernelBootContainers(vmi *v1.VirtualMachineInstance, podVolumeName
}

const fakeVolumeIdx = 0 // volume index makes no difference for kernel-boot container
createContainer := func(isInit bool) *kubev1.Container {
return generateContainerFromVolume(vmi, podVolumeName, binVolumeName, isInit, true, &kernelBootVolume, fakeVolumeIdx)
}
return createContainer(false), createContainer(true)
return generateContainerFromVolume(vmi, podVolumeName, binVolumeName, isInit, true, &kernelBootVolume, fakeVolumeIdx)
}

// The controller uses this function to generate the container
Expand Down
3 changes: 2 additions & 1 deletion pkg/virt-controller/services/template.go
Original file line number Diff line number Diff line change
Expand Up @@ -1195,7 +1195,7 @@ func (t *templateService) renderLaunchManifest(vmi *v1.VirtualMachineInstance, t
containersDisks := containerdisk.GenerateContainers(vmi, "container-disks", "virt-bin-share-dir")
containers = append(containers, containersDisks...)

kernelBootContainer, kernelBootInitContainer := containerdisk.GenerateKernelBootContainers(vmi, "container-disks", "virt-bin-share-dir")
kernelBootContainer := containerdisk.GenerateKernelBootContainer(vmi, "container-disks", "virt-bin-share-dir")
if kernelBootContainer != nil {
log.Log.Object(vmi).Infof("kernel boot container generated")
containers = append(containers, *kernelBootContainer)
Expand Down Expand Up @@ -1375,6 +1375,7 @@ func (t *templateService) renderLaunchManifest(vmi *v1.VirtualMachineInstance, t
// this causes containerDisks to be pre-pulled before virt-launcher starts.
initContainers = append(initContainers, containerdisk.GenerateInitContainers(vmi, "container-disks", "virt-bin-share-dir")...)

kernelBootInitContainer := containerdisk.GenerateKernelBootInitContainer(vmi, "container-disks", "virt-bin-share-dir")
if kernelBootInitContainer != nil {
initContainers = append(initContainers, *kernelBootInitContainer)
}
Expand Down

0 comments on commit 27f1583

Please sign in to comment.