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))

  • 13647552b8 Add 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é

Merge request reports

Loading