* Define and use an interface for logging.
This allows alternative implementations to use whatever logging package
they want.
Currently the interface just mimicks what logrus already implements,
with minor modifications to not rely on logrus itself. I think the
interface is pretty solid in terms of logging implementations being able
to do what they need to.
* Make tracing interface to coalesce logging/tracing
Allows us to share data between the tracer and the logger so we can
simplify log/trace handling wher we generally want data to go both
places.
* Don't start things in New
* Move http server handling up to daemon.
This removes the burdern of dealing with listeners, http servers, etc in
the core framework.
Instead provide helpers to attach the appropriate routes to the
caller's serve mux.
With this change, the vkubelet package only helps callers setup HTTP
rather than forcing a specific HTTP config on them.
* Refactor provider init
This moves provider init out of vkubelet setup, instead preferring to
initialize vkubelet with a provider.
* Split API server configuration from setup.
This makes sure that configuration (which is done primarily through env
vars) is separate from actually standing up the servers.
This also makes sure to abort daemon initialization if the API servers
are not able to start.
This refactors a bit of the http handler code.
Moves error handling for handler functions to a generic handler.
This also has a side-effect of being able to propagate errors from the
provider to send the correct status code, provided the error type
matches a pre-defined interface.
The exec command as extracted from the query comprises only the first
part of the command and does not include potentially supplied
parameters. E.g.,
$ kubectl exec pod -- ls -t /usr
> command: ls
This change fixes the problem by moving away from the Query.Get API.
$ kubectl exec pod -- ls -t /usr
> command: [ls -t /usr]
Update k8s client and the dependencies
ACI client change for Mocking
Add ACI Provider Mock Tests
Add the Windows development environment
Add UT for Default Resource Requests
Enable the make test in Docker file
Update the vendors