Machine runner 3.0 is now Generally Available, providing improvements to usability, setup, and maintenance of machine runners.
Container runners and machine runners are now built using the same framework. Launch agent users will need to upgrade to the new application, but existing container runner installations will not require any additional action.
Faster feature enhancements: We’ll now bring many network resilience feature enhancements to both types of self-hosted runners (machine and container).
Improved usability: With more uniform logs and metrics, CircleCI’s machine runners ensure consistent and reliable performance and a seamless experience for users regardless of their runner setup.
Setup and maintenance: CircleCI’s machine runner 3.0 simplifies the setup and maintenance process by offering convenient packages that allow you to easily integrate with your preferred cloud templating tools.
Add lifecycle pre-stop command to gracefully terminate task agent on shutdown
Ensure all Task lifecycle step events can be sent, even on shutdown of the agent and the context is cancelled
Don’t delete the task pod if task agent is still running
This is related to issue https://github.com/kubernetes/client-go/issues/724. The remotecommand package may not always handle network disconnects on the exec command, returning a nil error. Therefore, we don’t delete the task pod in this case, giving a chance for the task to complete in an “orphaned” state.
Prevent Task lifecycle step output from being lost during long-running jobs
Improve task cleanup liveness check robustness and add extra logging
Fix draining and cleanup of a task on shutdown of the runner agent
Use stricter task pod config parsing with more helpful error messaging