Added an interface for container. This is an initial version. This could evolve further.
Created implementation of ContainerClientInterface for docker.
Added a helper method which will load the client based on the module path provided via ENV CONTAINER_CLIENT_PATH. Defaults to docker client.
Updated the PDM lock file.
Changed log type of container outputs as DEBUG instead of INFO.
Why
The above refactoring should allow us to use different types of container engines.
How
We will make interface implementations for each container engine. Client can be selected dynamically using ENV. At a time it will only support 1 engine.
Can this PR break any existing features. If yes, please list possible items. If no, please explain why. (PS: Admins do not merge the PR without this section filled)
Most probably not since we haven't made any changes in the behaviour of code. Only refactoring is done. But logical errors are possible
Database Migrations
No
Env Config
CONTAINER_CLIENT_PATH - Module path to client for container engine.
Relevant Docs
-
Related Issues or PRs
-
Dependencies Versions
-
Notes on Testing
Tested locally by executing a workflow from UI.
Screenshots
Checklist
I have read and understood the [Contribution Guidelines]().
What
CONTAINER_CLIENT_PATH
. Defaults to docker client.Why
How
Can this PR break any existing features. If yes, please list possible items. If no, please explain why. (PS: Admins do not merge the PR without this section filled)
Database Migrations
Env Config
CONTAINER_CLIENT_PATH
- Module path to client for container engine.Relevant Docs
-
Related Issues or PRs
-
Dependencies Versions
-
Notes on Testing
Screenshots
Checklist
I have read and understood the [Contribution Guidelines]().