Add concrete-mode pod assembly for the Kubernetes executor
Summary
Adds the Concrete-mode pod shape for the Kubernetes executor:
build container running steps serve, optional user services, single
init-steps-bootstrap init container, and a single scripts emptyDir
shared between the init and build containers.
The bootstrap init container delivers the helper binary into the
shared emptyDir. The init container's TerminationMessagePolicy is
set to FallbackToLogsOnError so the consumer in MR 2 can detect a
helper image that predates the steps subcommand from the terminated
state.
This MR is feature-inert: the new code has no consumer until MR 2 lands. FF_CONCRETE is off by default; existing K8s users see no behaviour change.
Part of the !6794 (closed) split.
Origin commits (from !6794 (closed))
13647552b8Add Concrete-mode pod assembly for the Kubernetes executor
What does this MR do?
- New file
executors/kubernetes/steps_pod.go: pod-shape assembly (ensureStepsPod,setupStepsPod,stepsPreparePodConfig, build/init container builders, volumes and mounts, helper-binary path computation). - New file
executors/kubernetes/steps_pod_test.go: unit tests pinning the pod-shape contracts (containers present/absent, scripts mount, repo emptyDir behaviour).
Test plan
- Unit tests in
steps_pod_test.go. - CI pipeline (this MR).
- Integration coverage lands in MR 3 of the chain.
close step-runner#466 (closed)
Edited by Romuald Atchadé