237 Commits

Author SHA1 Message Date
Alex Ellis (VMware)
cba817c499 Allow copyright verbiage
Allows: OpenFaaS Author(s)

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-07-09 22:06:57 +01:00
Alex Ellis (VMware)
5f6b6bf953 Update header
From Project to Author(s) for the catch-all. This file has my
copyright which is retained through the catch-all statement.

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-07-09 21:25:03 +01:00
Edward Wilde
28c9ccd0aa Changes from pull request feedback
1. Use httptest.ResponseRecorder instead of custom implementation
StringResponseWriter.

2. Remove verbose log line in infohandler

Signed-off-by: Edward Wilde <ewilde@gmail.com>
2018-07-06 17:50:48 +01:00
Edward Wilde
aca2c7fe2a Enhance info endpoint to include gateway version
Extend the health endpoint and add gateway version information

Resolves: #733
Signed-off-by: Edward Wilde <ewilde@gmail.com>
2018-07-06 17:50:48 +01:00
Vivek Singh
e55c018c17 Update default secret mount path to /run/secrets/
This commit reverts the changes done in #738 to update the default
secret mount path to `/run/secrets/`

Signed-off-by: Vivek Singh <vivekkmr45@yahoo.in>
2018-07-02 19:22:59 +01:00
Alex Ellis (VMware)
f4aab9197d Move from functions ns to openfaas for Hub
Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-07-02 12:45:53 +01:00
Vivek Singh
ced39bcda7 Updated default secret mount path value
This changes updates the secret mount path default value to
/var/openfaas/secrets at serveral places. It has been changed
from /run/secrets/ to /var/openfaas/secrets after version 0.8.2

Signed-off-by: Vivek Singh <vivekkmr45@yahoo.in>
2018-06-28 21:37:10 +03:00
Edward Wilde
e39dbd9584 Update nats-queue-worker package to 0.4.7
This package version supports running OpenFaas on hosts the contain `.`
in their hostname i.e. computer-a.acme.com

Signed-off-by: Edward Wilde <ewilde@gmail.com>
2018-06-21 23:00:01 +01:00
Alex Ellis (VMware)
223c561706 Vendor new queue-worker version
Introduces 0.4.6 of queue-worker - see upstream repo for changes.

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-06-18 20:10:46 +01:00
Lucas Roesler
6676d1b807 Trim tailing slash from service name before proxy
**What**
- When determining the service name of the function, remove any trailing
slashes, the slashes are not allowed in service names for either Swarm
or K8S, so this can only be a left over from the url path

**Why**
- This was preventing service resolution, and hence failed functions,
    when the function was called with a trailing slash

Fixes #714

Signed-off-by: Lucas Roesler <roesler.lucas@gmail.com>
2018-06-16 16:05:09 -07:00
Sean Smith
2292aab829 Update to golang 1.9.7
Issue #660 has been open for a while to update to 1.9.6, this
performs the update to the latest in the 1.9 release (1.9.7)

Signed-off-by: Sean Smith <sean@wwsean08.com>
2018-06-16 08:37:11 -07:00
Alex Ellis (VMware)
8133414183 Read secrets from variable path
This change enables secrets to be read from any mount on disk
rather than hard-coding a certain location which suits Swarm or
K8s. The default value if not specified will look in the Swarm
location of /run/secrets/

README.md (docs) updated and set to off by default.

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-05-23 11:42:42 +01:00
Alex Ellis (VMware)
a38931ce69 Enable basic auth on gateway
Fixes https://github.com/openfaas/faas/issues/687 allowing the
gateway to handle the responsibility of basic auth for when it is
in use.

To enable set basic_auth env-var to true and then mount two
secrets or plaintext files under /var/secrets/

basic_auth_user, basic_auth_password

Tested with faas-cli list/deploy and with Safari browser.

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-05-23 11:42:42 +01:00
Alex Ellis (VMware)
0e0fde27dc Bump arm gateway go version
Moving minor version to 1.9.6

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-05-21 15:39:54 +01:00
Alex Ellis (VMware)
4123270235 Add health and info endpoints
Fixes issue 689 by enabling /healthz and /system/info, see
swagger for more details.

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-05-20 19:11:21 +01:00
Ivana Yovcheva (VMware)
7f6295c9cf Update alpine version to 3.7
This updates alpine version to 3.7 in sample-functions, gateway
and some markdown docas.

Signed-off-by: Ivana Yovcheva (VMware) <iyovcheva@vmware.com>
2018-05-11 14:14:59 +01:00
Rillian Grant
829262e493 Add message for when JavaScript is disabled
- Added padding to the "You need JavaScript page"
 - Added padding to the "You need JavaScript page" - Added info about the CLI tthe "You need JavaScript" page
 - Added a message for people who don't have JavaScript enabled

Signed-off-by: Rillian Grant <rillian.grant@hotmail.com>
2018-04-26 12:48:22 +01:00
ovation22
3c7e222ab2 Add blankslate to gateway UI
Adds a more informative screen when a function is not selected
or when there are no functions to select from.

Provides a button to deploy a new function
and more information on how to deploy using
faas-cli.

Signed-off-by: ovation22 <john@1north.com>
2018-04-25 17:55:33 +01:00
Alex Ellis (VMware)
811bbe6031 Apply gofmt
Previous PR from Simon or Ken broke build due to missing gofmt
in the PR. This PR applies it to resolve the build issue.

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-04-11 20:46:20 -07:00
Templum
0b28e96a58 Adjusted code accordingly to feedback
Based on the received feedback I updated the documentation of the function. Also replaced variable temp by an more declaritive variable.
Signed-off-by: Simon Pelczer <templum.dev@gmail.com>
2018-04-11 19:30:43 -07:00
Templum
6cd6975fe5 Moved label extraction to dedicated function.
Further I created some unit test which should cover all relevant scenarios for the created function.

Signed-off-by: Simon Pelczer <templum.dev@gmail.com>
2018-04-11 19:30:43 -07:00
Simon Pelczer
7fe67d7af6 Implemented the autoscaling steps to be proportions of the max replicas.
Introduced an new label to set the scaling factor that is used to calculate th proportions, setting it to 0 also allows to disable scaling.
Updated the tests to reflect the changes and added a new test which shows that setting the scaling factor to 0 indeed does disable scaling.
Ensured that the scaling factor is always between [0 and 100].

Signed-off-by: Simon Pelczer <templum.dev@gmail.com>
2018-04-11 19:30:43 -07:00
Ken Fukuyama
8f249792fe On funcstore error, change to manual tab
Fixed the UI so that when an error occurs, the tab automatically changes
to the manual tab in order to show the errors.

Signed-off-by: Ken Fukuyama <kenfdev@gmail.com>
2018-04-10 14:06:51 -07:00
Ken Fukuyama
e6a6aea422 Moved unit test files inside same directory as test target
The unit tests were inside the `gateway/tests` directory which had no
effect to the coverage for `go test`. Therefore, moved the tests inside
the same directory as the test target.

Signed-off-by: Ken Fukuyama <kenfdev@gmail.com>
2018-04-06 14:13:14 +01:00
Alex Ellis (VMware)
daa79aef75 Deprecate routeless proxy test
Routeless proxy allowed no HTTP path to be given when a Header
X-Function: name was given. This has been deprecated - I am
unaware of any usage of the feature.

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-04-03 17:55:44 +01:00
Alex Ellis (VMware)
5e0569f75a Update TestGet_Rejected
Get is a supported method so this test failed, I've now changed
this to an unsupported method - i.e. HEAD to trigger the error
and keep the test.

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-04-03 17:55:44 +01:00
Alex Ellis (VMware)
bbbb4b536a Bump watchdog to 1.9.4
Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-04-03 17:55:44 +01:00
Alex Ellis (VMware)
65ed8457af Fix issue in passing-through of proxy body
Proxy body was being passed correctly due to placement of defer
statement. This has been moved into outer scope to resolve issue.

Tested with new e2e tests in certifier component.

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-03-27 21:12:38 +01:00
Alex Ellis (VMware)
58bd87c811 Update proxy to pass query-string
HTTP proxy was not passing query-string upstream. This change
reinstates the behaviour through TDD - adding test coverage and
automated regression testing.

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-03-27 19:33:43 +01:00
Alex Ellis (VMware)
9a1b119c9f Remove Prometheus tracking for forwarded requests
Forwarded requests were being logged in the function metrics and
I saw this when doing some testing on auto-scaling with K8s.

This change removes the call to the Prometheus notifier for any
calls which are forwarded to the provider and retains them for the
functions.

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-03-26 13:12:29 +01:00
Ken Fukuyama
4877a60aee Changed the download functionality to cover IE.
Since IE doesn't work well with `.click()` (because of access denied) we
can take advantage of the `navigator.msSaveOrOpenBlob`.
https://stackoverflow.com/questions/46232980/click-giving-access-denied-in-ie11/46233123#46233123

Signed-off-by: Ken Fukuyama <kenfdev@gmail.com>
2018-03-23 16:43:38 +00:00
Ivana Yovcheva
c633fbb96d Fix mouse click error on IE11
MouseEvent initialization was failing on IE11.
Add a separate case for IE11 that fixes the issue.

Signed-off-by: Ivana Yovcheva <iyovcheva@vmware.com>
2018-03-23 16:43:38 +00:00
Ivana Yovcheva
0f126ce241 Fix crypto breaking error for IE11
window.crypto is throwing an error on IE11
which required a modification to use window.msCrypto
instead in case of running on IE11

Signed-off-by: Ivana Yovcheva <iyovcheva@vmware.com>
2018-03-23 16:43:38 +00:00
David Muckle
5824d865c6 Add a title to the index.html for the gateway
This will replace the gateway URL showing up as the title.

Signed-off-by: David Muckle <dvdmuckle@dvdmuckle.xyz>
2018-03-23 16:38:19 +00:00
John McCabe
fac3345668 Use http package consts for http methods
This commit replaces occurences of http method strings with the
corresponding consts from the http package.

*Note* UPDATE is not strictly speaking a valid method and as such isn't
part of the http package (should be a PUT or PATCH?)

Signed-off-by: John McCabe <john@johnmccabe.net>
2018-03-23 16:37:33 +00:00
Alex Ellis
0c7e59fe8a Add direct_functions mode to gateway for tuning
Adds a pair of configuration options for performance tuning. The
gateway can now invoke functions directly and can bypass the
provider. See updated table in README.md for configuration values.

BaseURLResolver is added with unit tests that decouples resolving
upstream URL from the reverse proxy client code.

- SingleHostBaseURLResolver resolves a single upstream host
- FunctionAsHostBaseURLResolver resolves host based upon conventions
within the URL of the request to a function for direct access

Tested with Kubernetes (faas-netes) and faas-swarm through UI, CLI
calling system endpoints and functions directly.

Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-03-23 16:35:37 +00:00
Alex Ellis (VMware)
c716c54868 Break out logging / metrics for functions in forwarding_proxy
Signed-off-by: Alex Ellis (VMware) <alexellis2@gmail.com>
2018-03-20 09:51:42 +00:00
Alex Ellis
3897d1f54e Bump swarm versions
Signed-off-by: Alex Ellis <alexellis2@gmail.com>
2018-03-13 17:30:28 +00:00
Ken Fukuyama
7d860bff41 fixed unexpected behavior where the selected function properties don't get
updated after adding/deleting a different function.

Signed-off-by: Ken Fukuyama <kenfdev@gmail.com>
2018-03-08 22:30:45 +01:00
Ken Fukuyama
02642ffb3f Edited unnecessary fields and $scopes.
Signed-off-by: Ken Fukuyama <kenfdev@gmail.com>
2018-03-08 22:30:45 +01:00
Alex Ellis
b9d705ebd4 UI: in-line ready directive
Signed-off-by: Alex Ellis <alexellis2@gmail.com>
2018-03-08 22:30:45 +01:00
Alex Ellis
a8d91590ab UI: fix ng-model complaint
Signed-off-by: Alex Ellis <alexellis2@gmail.com>
2018-03-08 22:30:45 +01:00
Alex Ellis
ccfb8f7be4 Make UI block until function reports readiness
Signed-off-by: Alex Ellis <alexellis2@gmail.com>
2018-03-08 22:30:45 +01:00
Alex Ellis
37ef024df7 Proxy fix - copy request headers into upstream
Signed-off-by: Alex Ellis <alexellis2@gmail.com>
2018-03-05 15:31:25 +00:00
Alex Ellis
6efaee5b4f Add upstream_timeout as env-var
Signed-off-by: Alex Ellis <alexellis2@gmail.com>
2018-03-05 12:49:25 +00:00
Alex Ellis
30928739ee Use context for upstream timeouts
Signed-off-by: Alex Ellis <alexellis2@gmail.com>
2018-03-05 12:49:25 +00:00
Ken Fukuyama
4cc51adffb added missing return statement
Signed-off-by: Ken Fukuyama <kenfdev@gmail.com>
2018-03-03 17:41:56 +00:00
Ken Fukuyama
d96674468c fixed another missing closing tag.
Signed-off-by: Ken Fukuyama <kenfdev@gmail.com>
2018-03-03 17:41:56 +00:00
Ken Fukuyama
a6a657295f fixed ES6 syntax accidentally used in JavaScript.
fixed markup closing typo.

Signed-off-by: Ken Fukuyama <kenfdev@gmail.com>
2018-03-03 17:41:56 +00:00
Alex Ellis
76526b0be3 Bump LTS Go version
Signed-off-by: Alex Ellis <alexellis2@gmail.com>
2018-03-03 17:36:33 +00:00