This document serves to keep track of all changes made to the Runner init images and agents. Please follow the guidelines below while adding an entry:
- Each code change that is not related to tests or CI/CD should have its own entry under the
Edge
section. - Every entry should include the pull request number associated with the change.
- Internal changes with no visible or functional impact on users should be marked as 'Internal'.
By following these guidelines, we can easily determine which changes should be included in the public changelog located at https://circleci.com/changelog/runner/. Thank you for your contribution!
- #98 [INTERNAL] A small refactor to the builds and Dockerfiles in preparation for adding Windows support.
- #97 Add timeout for the "wait-for-readiness" check on startup. This is so that GOAT doesn't wait indefinitely if there's a problem, ensuring a timely reaping of the task pod.
- #89 [INTERNAL] Add an option to wait for a readiness file, which is used via a shared volume to signal the readiness of all containers in the task pod.
- #71 [INTERNAL] Bump
ex
tov1.0.12715-ada3e6b
and Go to1.23
, which also required a bump ingolangci-lint
to1.62.0
and addressing new lint errors that came along with that. - #54 [INTERNAL] Forward signals from the task orchestrator (PID 1) to the custom command.
- #48 [INTERNAL] Supplement task agent errors with stderr and an action to check logs.
- #43 [INTERNAL] Don't exit with an error if the orchestrator has been interrupted.
- #42 [INTERNAL] Correctly configure user's home directory when switching users to execute task-agent.
- #39 [INTERNAL] Fix
init
command matching on startup - #37 [INTERNAL] Refactored command execution structure within the orchestrator and ensured cleanup of the child process group spawned by the task agent.
- #36 [INTERNAL] Integrate the runner API client in the task orchestrator. This enables retrying or reporting infrastructure failures as appropriate.
- #33 [INTERNAL] Start signing the init images and manifests using Cosign.
- #32 [INTERNAL] Implement an HTTP client for the runner API to allow the orchestrator to retry or fail tasks directly in the future.
- #31 [INTERNAL] Wait on the task context finishing to stop the process reaper since the parent context can get cancelled first.
- #30 [INTERNAL] Add init-like behaviour (reaping child subprocesses to prevent them from becoming zombie processes) to the task orchestrator.
- #28 [INTERNAL] Pass orchestrator configuration through an environment variable from a Kubernetes Secret. This variable is stripped from the environment that is passed to the task agent command to prevent token leakage in the task environment.
- #27 [INTERNAL] Handle shutdown of a task with a termination grace period.
- #25 [INTERNAL] Implement the ability to execute a task and a custom entrypoint.
- #24 [INTERNAL] Add checksum validation of the task token to help detect transmission errors.
- #18 [INTERNAL] Set up the initial base for orchestrator's
run-task
command. This includes adding a health check server and the configuration required to execute task agent. - #17 [INTERNAL] Build server images.
- #16 [INTERNAL] Add an acceptance test framework and cases for the init command. In addition, some changes were made to the CLI configuration to account for limitations on positional arguments of the ex test runner.
- #14 [INTERNAL] Implement the init script as a mode of the orchestrator. This allows for the use of scratch for a minimal base image.
- #13 [INTERNAL] Use GoReleaser for building and pushing the images and manifests.
- #12 [INTERNAL] Use GoReleaser for building the binaries.
- #11 [INTERNAL] Download task agent binaries directly via the Dockerfile.
- #10 [INTERNAL] Set up linting tools, initiated a changelog, and performed other configurations in preparation for the orchestration agent.