Commit Graph

1303 Commits

Author SHA1 Message Date
Gerardo Viedma
348bbaf36b support runner TLS certificates with specified certificate Common Names (#900)
* support runner TLS certificates with specified certificate Common Names

* removes duplicate constant

* run in insecure mode by default but expose ability to create tls-secured runner pools programmatically

* fixes runner tests to use new tls interfaces
2018-03-28 13:57:15 +01:00
CI
966890ac8f fnserver: 0.3.396 release [skip ci] 2018-03-27 18:37:30 +00:00
Denis Makogon
fe0763825b Fix SQL UP migration (#895) 2018-03-27 11:28:03 -07:00
CI
4537a5eb91 fnserver: 0.3.395 release [skip ci] 2018-03-27 14:42:23 +00:00
CI
ae191628f2 fnserver: 0.3.394 release [skip ci] 2018-03-26 22:52:31 +00:00
Reed Allman
8af605cf3d update thrift, opencensus, others (#893)
* update thrift, opencensus, others

* stats: update to opencensus 0.6.0 view api
2018-03-26 15:43:49 -07:00
CI
0ce5c4500b fnserver: 0.3.393 release [skip ci] 2018-03-26 21:40:53 +00:00
CI
ef6549b639 fnserver: 0.3.392 release [skip ci] 2018-03-26 18:29:14 +00:00
Denis Makogon
3c15ca6ea6 App ID (#641)
* App ID

* Clean-up

* Use ID or name to reference apps

* Can use app by name or ID

* Get rid of AppName for routes API and model

 routes API is completely backwards-compatible
 routes API accepts both app ID and name

* Get rid of AppName from calls API and model

* Fixing tests

* Get rid of AppName from logs API and model

* Restrict API to work with app names only

* Addressing review comments

* Fix for hybrid mode

* Fix rebase problems

* Addressing review comments

* Addressing review comments pt.2

* Fixing test issue

* Addressing review comments pt.3

* Updated docstring

* Adjust UpdateApp SQL implementation to work with app IDs instead of names

* Fixing tests

* fmt after rebase

* Make tests green again!

* Use GetAppByID wherever it is necessary

 - adding new v2 endpoints to keep hybrid api/runner mode working
 - extract CallBase from Call object to expose that to a user
   (it doesn't include any app reference, as we do for all other API objects)

* Get rid of GetAppByName

* Adjusting server router setup

* Make hybrid work again

* Fix datastore tests

* Fixing tests

* Do not ignore app_id

* Resolve issues after rebase

* Updating test to make it work as it was

* Tabula rasa for migrations

* Adding calls API test

 - we need to ensure we give "App not found" for the missing app and missing call in first place
 - making previous test work (request missing call for the existing app)

* Make datastore tests work fine with correctly applied migrations

* Make CallFunction middleware work again

 had to adjust its implementation to set app ID before proceeding

* The biggest rebase ever made

* Fix 8's migration

* Fix tests

* Fix hybrid client

* Fix tests problem

* Increment app ID migration version

* Fixing TestAppUpdate

* Fix rebase issues

* Addressing review comments

* Renew vendor

* Updated swagger doc per recommendations
2018-03-26 11:19:36 -07:00
CI
4e90844a67 fnserver: 0.3.391 release [skip ci] 2018-03-26 17:34:42 +00:00
Denis Makogon
6393cf6777 API extensions: Route listerens (#887) 2018-03-26 10:25:13 -07:00
CI
7810b3cb9b fnserver: 0.3.390 release [skip ci] 2018-03-23 23:44:15 +00:00
Tolga Ceylan
0addcb8911 fn: pre-fork pool for namespace/network speedup (#874)
* fn: pre-fork pool experimental implementation
2018-03-23 16:35:35 -07:00
CI
0da7d9fcda fnserver: 0.3.389 release [skip ci] 2018-03-23 10:37:14 +00:00
Gerardo Viedma
101236f7d8 Remove npm remnants (#882)
* create an Annotation map of the right size to avoid resizing

* removes all references to deprecated nodepool manager
2018-03-23 10:29:32 +00:00
Gerardo Viedma
0c47dbf26d create an Annotation map of the right size to avoid resizing (#881) 2018-03-23 10:29:07 +00:00
CI
6db99f6ecc fnserver: 0.3.388 release [skip ci] 2018-03-22 20:16:08 +00:00
Dario Domizioli
8df8ed6360 Expose route and app models to RunnerCall for extensions (alternative 2) (#880) 2018-03-22 20:07:39 +00:00
CI
563a4576ef fnserver: 0.3.387 release [skip ci] 2018-03-21 23:08:50 +00:00
Reed Allman
b9ff601098 fix machine id to 48 bits, add test (#877)
another bone head fail here. hopefully can leave this alone meow...

newID does not get inlined, but doesn't allocate to trigger any stack
expansion either. net perf hit on my laptop is 5ns, and we get a test out of
it. it will push a new stack, so it's not negligible overhead and we could
avoid it. we could keep the logic in both places just to have a test for it
separate instead of re-using the function in the hot path. up to us.
2018-03-21 16:01:18 -07:00
CI
86fda80240 fnserver: 0.3.386 release [skip ci] 2018-03-21 20:20:53 +00:00
Reed Allman
412362b682 i bring great shame to my family (#876) 2018-03-21 13:13:04 -07:00
CI
fd83bbeaa6 fnserver: 0.3.385 release [skip ci] 2018-03-20 19:02:39 +00:00
Reed Allman
1c7e2c46b2 migratex: return more robust errors (#873)
the error itself from up/down & dirty can be improved to show direction and
version information to help a user of the package determine where things went
wrong, which is useful when a series of migrations are run and the db error
itself is not clear about what went wrong exactly.
2018-03-20 11:53:30 -07:00
CI
dcb68060dd fnserver: 0.3.384 release [skip ci] 2018-03-20 18:11:17 +00:00
Owen Cliffe
d25b5af59d Add annotations to routes and apps (#866)
Adds 'annotations' attribute to Routes and Apps
2018-03-20 18:02:49 +00:00
CI
845f40ee86 fnserver: 0.3.383 release [skip ci] 2018-03-20 14:06:56 +00:00
Dario Domizioli
27ffb561e8 Hide details of delegated agents for PR and LB, to disable docker for LB (#872)
* Move delegated agent creation within NewLBAgent so we can hide the fact we disable docker
* Move delegated agent creation within NewPureRunner for better encapsulation
2018-03-20 13:45:45 +00:00
CI
38eebf69cd fnserver: 0.3.382 release [skip ci] 2018-03-19 12:19:38 +00:00
CI
a13960f6cd fnserver: 0.3.381 release [skip ci] 2018-03-16 15:48:46 +00:00
Gerardo Viedma
1cae6f988e Make PKI data and RunnerFactory public objects (#865)
* Make PKI data and RunnerFactory public objects

* removes unnecessary nullRunner object

* renames secure factory to point out MTLS
2018-03-16 15:40:58 +00:00
CI
62de4a5c9a fnserver: 0.3.380 release [skip ci] 2018-03-16 13:53:35 +00:00
Gerardo Viedma
73ae77614c Moves out node pool manager behind an extension using runner pool abstraction (Part 2) (#862)
* Move out node-pool manager and replace it with RunnerPool extension

* adds extension points for runner pools in load-balanced mode

* adds error to return values in RunnerPool and Runner interfaces

* Implements runner pool contract with context-aware shutdown

* fixes issue with range

* fixes tests to use runner abstraction

* adds empty test file as a workaround for build requiring go source files in top-level package

* removes flappy timeout test

* update docs to reflect runner pool setup

* refactors system tests to use runner abstraction

* removes poolmanager

* moves runner interfaces from models to api/runnerpool package

* Adds a second runner to pool docs example

* explicitly check for request spillover to second runner in test

* moves runner pool package name for system tests

* renames runner pool pointer variable for consistency

* pass model json to runner

* automatically cast to http.ResponseWriter in load-balanced call case

* allow overriding of server RunnerPool via a programmatic ServerOption

* fixes return type of ResponseWriter in test

* move Placer interface to runnerpool package

* moves hash-based placer out of open source project

* removes siphash from Gopkg.lock
2018-03-16 13:46:21 +00:00
CI
1a390dc067 fnserver: 0.3.379 release [skip ci] 2018-03-16 11:58:14 +00:00
Dario Domizioli
362e910d9d Make dataplane system test behave deterministically (#849)
Make dataplane system test deterministic by injecting capacity constraints
2018-03-16 11:50:44 +00:00
CI
9ed3dd86ea fnserver: 0.3.378 release [skip ci] 2018-03-15 17:32:10 +00:00
Tolga Ceylan
1b6f8cb24a fn: add docker-containerd to prometheus processes (#863)
*) switch to /proc/<pid>/cmdline due to /proc/<pid>/status
process name truncation.
*) Optional override with FN_PROCESS_COLLECTOR_LIST
2018-03-15 10:24:27 -07:00
CI
a7743a03ea fnserver: 0.3.377 release [skip ci] 2018-03-15 10:36:17 +00:00
Gerardo Viedma
6bc1220d8b Adds extension points for runner pools in load-balanced mode (Patch 1/2) (#851)
* adds extension points for runner pools in load-balanced mode

* adds error to return values in RunnerPool and Runner interfaces
2018-03-15 10:28:56 +00:00
CI
7df6863678 fnserver: 0.3.376 release [skip ci] 2018-03-14 22:56:10 +00:00
Tolga Ceylan
cb61a678d9 fn: add storage opt size support (#860)
Added env FN_MAX_FS_SIZE_MB, which if defined and non-zero
is passed to docker as storage opt size. We do not validate
if this option is supported by docker currently. This is
because it's difficult to actually validate this since it
not only depends on storage driver and its backing filesystem,
but also the mount options used to mount that fs.
2018-03-14 15:47:34 -07:00
CI
603af80bd1 fnserver: 0.3.375 release [skip ci] 2018-03-14 16:26:02 +00:00
CI
70af65d35a fnserver: 0.3.374 release [skip ci] 2018-03-14 16:05:51 +00:00
CI
0f5afa3970 fnserver: 0.3.373 release [skip ci] 2018-03-14 01:46:37 +00:00
Tolga Ceylan
74a51f3f88 fn: reorg agent config (#853)
* fn: reorg agent config

*) Moving constants in agent to agent config, which helps
with testing, tuning.
*) Added max total cpu & memory for testing & clamping max
mem & cpu usage if needed.

* fn: adjust PipeIO time
* fn: for hot, cannot reliably test EndOfLogs in TestRouteRunnerExecution
2018-03-13 18:38:47 -07:00
CI
1988d92c83 fnserver: 0.3.372 release [skip ci] 2018-03-13 23:05:04 +00:00
Reed Allman
9eaf824398 add jaeger support, link hot container & req span (#840)
* add jaeger support, link hot container & req span

* adds jaeger support now with FN_JAEGER_URL, there's a simple tutorial in the
operating/metrics.md file now and it's pretty easy to get up and running.
* links a hot request span to a hot container span. when we change this to
sample at a lower ratio we'll need to finagle the hot container span to always
sample or something, otherwise we'll hide that info. at least, since we're
sampling at 100% for now if this is flipped on, can see freeze/unfreeze etc.
if they hit. this is useful for debugging. note that zipkin's exporter does
not follow the link at all, hence jaeger... and they're backed by the Cloud
Empire now (CNCF) so we'll probably use it anyway.

* vendor: add thrift for jaeger
2018-03-13 15:57:12 -07:00
CI
a7347a88b7 fnserver: 0.3.371 release [skip ci] 2018-03-13 22:52:34 +00:00
Reed Allman
7fbbd75349 fn, dockerd pid collector & go collector metrics (#837)
* fn, dockerd pid collector & go collector metrics

the prometheus client we're using has a nice collector for process metrics and
for go metrics. these are things we are very interested in operationally and
recently the benevolent team at opencensus made this possible again, so this
hooks it up for us with added dockerd sugar.

nannying the dockerd we're using should be super useful since that thing likes
to get carried away, it'll be nice to differentiate memory/cpu usage between
dockerd  / the host / fn. this will basically only work in a 'dind'
environment, or on a linux host that is running fn outside of docker that is
configured with the permissions to be able to check this.  otherwise, it will
simply fail. we also probably want disk i/o and net i/o information for that
as well, or at least it would be interesting to differentiate from the host,
but this isn't hooked up in the default collectors unfortunately.

dockerd:

```
dockerd_process_cpu_seconds_total 520.74
dockerd_process_max_fds 1.048576e+06
dockerd_process_resident_memory_bytes 9.033728e+07
dockerd_process_start_time_seconds 1.52029677322e+09
dockerd_process_virtual_memory_bytes 1.782509568e+09
```

fn:

```
fn_process_cpu_seconds_total 0.14
fn_process_max_fds 1024
fn_process_open_fds 12
fn_process_resident_memory_bytes 2.7348992e+07
fn_process_start_time_seconds 1.52056274238e+09
fn_process_virtual_memory_bytes 7.20068608e+08
```

go:

```
go_gc_duration_seconds{quantile="0"} 4.4194e-05
go_gc_duration_seconds{quantile="0.25"} 9.8118e-05
go_gc_duration_seconds{quantile="0.5"} 0.000105989
go_gc_duration_seconds{quantile="0.75"} 0.000106251
go_gc_duration_seconds{quantile="1"} 0.000157864
go_gc_duration_seconds_sum 0.000512416
go_gc_duration_seconds_count 5
go_goroutines 30
go_memstats_alloc_bytes 3.897696e+06
go_memstats_alloc_bytes_total 1.2916016e+07
go_memstats_buck_hash_sys_bytes 1.45034e+06
go_memstats_frees_total 75399
go_memstats_gc_sys_bytes 450560
go_memstats_heap_alloc_bytes 3.897696e+06
go_memstats_heap_idle_bytes 868352
go_memstats_heap_inuse_bytes 5.750784e+06
go_memstats_heap_objects 29925
go_memstats_heap_released_bytes_total 0
go_memstats_heap_sys_bytes 6.619136e+06
go_memstats_last_gc_time_seconds 1.520562751182639e+09
go_memstats_lookups_total 239
go_memstats_mallocs_total 105324
go_memstats_mcache_inuse_bytes 3472
go_memstats_mcache_sys_bytes 16384
go_memstats_mspan_inuse_bytes 90592
go_memstats_mspan_sys_bytes 98304
go_memstats_next_gc_bytes 6.31304e+06
go_memstats_other_sys_bytes 710548
go_memstats_stack_inuse_bytes 720896
go_memstats_stack_sys_bytes 720896
go_memstats_sys_bytes 1.0066168e+07
```

* cache pid until it stops working
2018-03-13 15:42:43 -07:00
CI
139f12b19b fnserver: 0.3.370 release [skip ci] 2018-03-13 21:42:32 +00:00