Container initialization phase consumes resource tracker
resources (token), during lengthy operations.
In order for agent stability/liveness, this phase has
to be evictable/cancelable and time bounded.
With this change, introducing a new system wide environment setting
to bound the time spent in container initialization phase. This phase
includes docker-pull, docker-create, docker-attach, docker-start
and UDS wait operations. This initialization period is also now
considered evictable.
Now obsoleted driver.PrepareCookie() call handled image and
container creation. In agent, going forward we will need finer
grained control over the timeouts implied by the contexts.
For this reason, with this change, we split PrepareCookie()
into Validate/Pull/Create calls under Cookie interface.
This implements a "detached" mechanism to get an ack from the runner
once it actually starts to run a function. In this scenario the response
returned back is just a 202 if we placed the function in a specific
time-frame. If we hit some errors or we fail to place the fn in time we
return back different errors.
* go modified
fiddling with vendor
got rid of the vendor directory
revendored but with the exact same versions of things
maybe better
added mods for the images
revendored
using `GOFLAGS` instead of repeating my self
vendor everything to the exact same commit hash as before
and fixed ugorji
Delete Deproxy.toml
empty file
cleaned up some file
cleaned up some cruft
get rid of some unused packages and exclude some Microsoft packages
added flags to the variables that get pushed into docker in the makefile
It works I suppose
added noop
excluded what we did not want
even less hacky
reverted to a version that has not been mangled
* get rid of my experiment
Moving the timeout management of various docker operations
to agent. This allows for finer control over what operation
should use. For instance, for pause/unpause our tolerance
is very low to avoid resource issues. For docker remove,
the consequences of failure will lead to potential agent
failure and therefore we wait up to 10 minute.
For cookie create/prepare (which includes docker-pull)
we cap this at 10 minutes by default.
With new UDS/FDK contract, health check is now obsoleted
as container advertise health using UDS availibility.
* improve contribution guide
* at least a stub security bug section, this works as a policy most likely
until we can improve this (TODO we need an email for this!)
* adds info in CONTRIBUTING.md for creating helpful normal issues for us, this
is much the same info as the template
* coding style section. This was lacking, and led to wishy washy reviews. now
we have an official reference in place to point at for 'do this this way
please' and not just random opinions. everyone should read this if they
haven't! I have it bookmarked...
* info on creating useful commit messages and commit formatting, like code
reviews, its nice to have this in the contrib guide to reference when asking
people to do this so that it's not just a one off opinion
tried to make this pretty lax, the last thing i/we want is for the
contributing process to be overbearing, I do think the contribution guide
serves the dual purpose of best practice enforcement as well as helping people
to maneuver the process to make it easier for all of us (them included).
open to idears. this is a convergence of a few guides from popular repos
* update what's in core section to reduce confusion
* get rid of old format stuff, utils usage, fix up for fdk2.0 interface
* pure agent format removal, TODO remove format field, fix up all tests
* shitter's clogged
* fix agent tests
* start rolling through server tests
* tests compile, some failures
* remove json / content type detection on invoke/httptrigger, fix up tests
* remove hello, fixup system tests
the fucking status checker test just hangs and it's testing that it doesn't
work so the test passes but the test doesn't pass fuck life it's not worth it
* fix migration
* meh
* make dbhelper shut up about dbhelpers not being used
* move fail status at least into main thread, jfc
* fix status call to have FN_LISTENER
also turns off the stdout/stderr blocking between calls, because it's
impossible to debug without that (without syslog), now that stdout and stderr
go to the same place (either to host stderr or nowhere) and isn't used for
function output this shouldn't be a big fuss really
* remove stdin
* cleanup/remind: fixed bug where watcher would leak if container dies first
* silence system-test logs until fail, fix datastore tests
postgres does weird things with constraints when renaming tables, took the
easy way out
system-tests were loud as fuck and made you download a circleci text file of
the logs, made them only yell when they goof
* fix fdk-go dep for test image. fun
* fix swagger and remove test about format
* update all the gopkg files
* add back FN_FORMAT for fdks that assert things. pfft
* add useful error for functions that exit
this error is really confounding because containers can exit for all manner of
reason, we're just guessing that this is the most likely cause for now, and
this error message should very likely change or be removed from the client
path anyway (context.Canceled wasn't all that useful either, but anyway, I'd
been hunting for this... so found it). added a test to avoid being publicly
shamed for 1 line commits (beware...).
Previously evictor did not perform an eviction
if total cpu/mem of evictable containers was less
than requested cpu/mem. With this change, we
try to perform evictions based on actual needed cpu & mem
reported by resource tracker.
Currently the default time format, time.RFC3339, is used, which doesn't include any
subsecond resolution information. This makes it hard to understand the
ordering of log messages when viewing in a log aggregator, like
Kibana.
This change sets the TimestampFormat of the logrus JSONFormatter to
time.RFC3339Nano.