This commit is contained in:
Терехов Андрей 2026-08-05 14:34:16 +03:00
parent 1e13020fe5
commit fef8865348

View File

@ -430,7 +430,7 @@ func reconcilePodSpec(
Drop: []corev1.Capability{"ALL"}, Drop: []corev1.Capability{"ALL"},
}, },
} }
sidecarTemplate.RestartPolicy = ptr.To(corev1.ContainerRestartPolicyAlways)
sidecarTemplate.Resources = config.resources sidecarTemplate.Resources = config.resources
sidecarTemplate.Args = append(sidecarTemplate.Args, config.additionalArgs...) sidecarTemplate.Args = append(sidecarTemplate.Args, config.additionalArgs...)
@ -492,6 +492,8 @@ func reconcilePodSpec(
return err return err
} }
wrapMainContainerCommandWithSocketWait(spec, mainContainerName, sidecarTemplate.Name)
return nil return nil
} }
@ -557,15 +559,15 @@ func injectPluginSidecarPodSpec(
return errors.New("main container not found") return errors.New("main container not found")
} }
for i := range spec.InitContainers { for i := range spec.Containers {
if spec.InitContainers[i].Name == sidecar.Name { if spec.Containers[i].Name == sidecar.Name {
sidecarContainerFound = true sidecarContainerFound = true
spec.InitContainers[i] = *sidecar spec.Containers[i] = *sidecar
} }
} }
if !sidecarContainerFound { if !sidecarContainerFound {
spec.InitContainers = append(spec.InitContainers, *sidecar) spec.Containers = append(spec.Containers, *sidecar)
} }
return nil return nil
@ -642,3 +644,21 @@ func getCNPGJobRole(job *batchv1.Job) string {
return "" return ""
} }
func wrapMainContainerCommandWithSocketWait(spec *corev1.PodSpec, mainContainerName, sidecarName string) {
socketPath := fmt.Sprintf("/plugins/%s.sock", sidecarName)
waitScript := fmt.Sprintf(
`i=0; while [ ! -S %s ] && [ "$i" -lt 60 ]; do i=$((i+1)); sleep 1; done; exec "$@"`,
socketPath,
)
for i := range spec.Containers {
container := &spec.Containers[i]
if container.Name != mainContainerName {
continue
}
fullCommand := append(append([]string{}, container.Command...), container.Args...)
container.Command = []string{"/bin/sh", "-c", waitScript, "--"}
container.Args = fullCommand
}
}