length check
github-actions opened this issue · 1 comments
github-actions commented
pod.Spec.AutomountServiceAccountToken = &automountServiceAccountToken
pod.Spec.Volumes = []corev1.Volume{
{Name: "util", VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}}},
{Name: "manifests", VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}}},
}
pod.Spec.RestartPolicy = corev1.RestartPolicyNever
if bundle.Spec.Source.Type == "git" {
// Note: use host networking (hack) so we can resolve https://github.com references in the
// Bundle's spec.Source.Git.Repository. Maybe we should revisit having the user inline https://github.com?
pod.Spec.HostNetwork = true
}
targetInitContainers := 1
if bundle.Spec.Source.Type == "git" {
targetInitContainers = 2
}
if len(pod.Spec.InitContainers) != targetInitContainers {
pod.Spec.InitContainers = make([]corev1.Container, targetInitContainers)
}
pod.Spec.InitContainers[0].Name = "install-unpack"
pod.Spec.InitContainers[0].Image = r.UnpackImage
pod.Spec.InitContainers[0].ImagePullPolicy = corev1.PullIfNotPresent
pod.Spec.InitContainers[0].Command = []string{"cp", "-Rv", "/unpack", "/util/unpack"}
pod.Spec.InitContainers[0].VolumeMounts = []corev1.VolumeMount{{Name: "util", MountPath: "/util"}}
// Note: initContainer so we can ensure the repository has been cloned
// at the bundle.Spec.Source.Git.Ref before we unpack the Bundle contents
// that are stored in the repository.
if bundle.Spec.Source.Type == "git" {
pod.Spec.InitContainers[1].Name = "clone-repository"
pod.Spec.InitContainers[1].Image = "bitnami/git:latest"
pod.Spec.InitContainers[1].ImagePullPolicy = corev1.PullIfNotPresent
// TODO: length check
// TODO: function responsible for determine which ref to use
// TODO: bundle unpack failing silently when pod log stream is empty (e.g. `{}`)
// TODO: bundle has an image custom column -- maybe we need a source type configuration instead?
// TODO: bundleinstance reporting a successful installation state despite installing nothing.
source := bundle.Spec.Source.Git
repository := source.Repository
directory := "./manifests"
if source.Directory != "" {
directory = source.Directory
}
checkedCommand := fmt.Sprintf("git clone %s && cd %s && git checkout %s && cp -r %s/* /manifests", repository, strings.Split(repository, "/")[4], source.Ref.Commit, directory)
pod.Spec.InitContainers[1].Command = []string{"/bin/bash", "-c", checkedCommand}
pod.Spec.InitContainers[1].VolumeMounts = []corev1.VolumeMount{{Name: "util", MountPath: "/util"}, {Name: "manifests", MountPath: "/manifests"}}
}
if len(pod.Spec.Containers) != 1 {
pod.Spec.Containers = make([]corev1.Container, 1)
}
if bundle.Spec.Source.Type == "image" {
pod.Spec.Containers[0].Name = bundleUnpackContainerName
pod.Spec.Containers[0].Image = bundle.Spec.Source.Image.Ref
pod.Spec.Containers[0].ImagePullPolicy = corev1.PullAlways
pod.Spec.Containers[0].Command = []string{"/util/unpack", "--bundle-dir", "/manifests"}
pod.Spec.Containers[0].VolumeMounts = []corev1.VolumeMount{{Name: "util", MountPath: "/util"}}
return nil
}
if bundle.Spec.Source.Type == "git" {
pod.Spec.Containers[0].Name = bundleUnpackContainerName
pod.Spec.Containers[0].Image = "bitnami/git:latest"
pod.Spec.Containers[0].ImagePullPolicy = corev1.PullAlways
pod.Spec.Containers[0].Command = []string{"/util/unpack", "--bundle-dir", "/manifests"}
pod.Spec.Containers[0].VolumeMounts = []corev1.VolumeMount{{Name: "util", MountPath: "/util"}, {Name: "manifests", MountPath: "/manifests"}}
return nil
}
return nil
})
}
github-actions commented
Closed in 9a12f17