From 222e411d6f45334bdd4157e77dacf46d3dc4c294 Mon Sep 17 00:00:00 2001 From: h0n9 Date: Tue, 4 Jun 2024 12:01:27 +0900 Subject: [PATCH] Make injector get injected as first init container --- webhook/mutator.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/webhook/mutator.go b/webhook/mutator.go index be49546..8cc8cef 100644 --- a/webhook/mutator.go +++ b/webhook/mutator.go @@ -69,8 +69,8 @@ func (mutator *Mutator) Handle(ctx context.Context, req admission.Request) admis VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}}, }) - // inject sidecar - pod.Spec.InitContainers = append(pod.Spec.InitContainers, corev1.Container{ + // create init container for injection + initContainer := corev1.Container{ Name: injectorName, Image: mutator.InjectorImage, Args: []string{ @@ -87,7 +87,10 @@ func (mutator *Mutator) Handle(ctx context.Context, req admission.Request) admis MountPath: csm.InjectorVolumeMountPath, }, }, - }) + } + + // append init container to pod's init containers + pod.Spec.InitContainers = append([]corev1.Container{initContainer}, pod.Spec.InitContainers...) // mount volume to every containers for i := range pod.Spec.Containers {