Commit Graph
100 Commits
Author SHA1 Message Date
Soam Vasani 21ea4dda08 set versions to v0.2.1 2017-09-11 18:32:25 -07:00
Soam VasaniandGitHub 90c18a8f79 Upgrade tool for 0.1 -> 0.2.1 (#320)
Allows dumping v0.1 state to a json file and restoring it into a new v0.2.1 fission installation.

Usage guide is at: /Documentation/docs-site/content/upgrade-from-v0.1.md
2017-09-11 18:31:36 -07:00
Soam Vasani 29830b28d4 release script: replace existing binaries 2017-09-11 07:25:44 -07:00
Soam Vasani 7455591ed6 0.2.1-rc2 docs version update 2017-09-10 12:29:39 -07:00
Soam VasaniandGitHub 7c1a83473e Release automation script -- attach helm charts, tag env images (#318)
Remove yaml manipulation from release script, package up and attach helm charts.
Build, tag and push fetcher image and all environment runtimes.
2017-09-10 09:16:16 -07:00
Soam Vasani 8612ea64e5 set version to 0.2.1-rc2 2017-09-10 00:36:50 -07:00
Soam Vasani 29c9e5774a update helm chart urls 2017-09-08 23:28:39 -07:00
Soam Vasani 9cd845cc88 Set version to 0.2.1-rc in CLI, API and helm charts 2017-09-08 20:48:00 -07:00
Soam Vasani eb8622b3bb Doc updates: base url, minor bugfixes 2017-09-08 20:36:31 -07:00
Soam Vasani 4eeea2962d Parameterize logger nodeport; remove ui service 2017-09-08 20:19:32 -07:00
Soam Vasani 4f9b74426a remove compiled hugo site 2017-09-08 20:09:37 -07:00
Soam Vasani 0242048863 doc theme 2017-09-08 19:13:41 -07:00
Soam Vasani bd56be9355 Install and upgrade guide updates 2017-09-08 19:12:16 -07:00
Soam Vasani e1b58bc787 futz with doc css 2017-09-08 19:12:04 -07:00
Soam Vasani 5a7b4eb37a remove inadvertently created submodule 2017-09-08 19:05:28 -07:00
Soam VasaniandGitHub e2004778a2 Hugo-based documentation site (#317)
Not much content yet; this is a start.
2017-09-08 16:47:59 -07:00
Soam VasaniandGitHub 279f5c014f Move builds to package level (#297)
Introduce _Archives_ as a type to reference arbitrary blobs.

_Packages_ are a pair of Source and Deployment archives. Packages have an environment reference.

Functions reference a package. Multiple functions can reference the same package.
2017-09-08 14:19:39 -07:00
Soam VasaniandGitHub 952d026698 Storage service helm chart integration + bugfixes (#315)
Add storage service and a persistent volume claim to helm charts. A few bugfixes for the api proxy.
2017-09-08 04:49:14 -07:00
Soam VasaniandGitHub 2b8a19b06c Large functions: API proxy for storage svc, upload support in the CLI (#304)
This change contains CLI support for uploading large functions to the storage service.

It also adds a reverse proxy into the storage service to the fission API.

The helm chart is not yet updated to actually run the storage service -- that will come in the next change.
2017-08-31 15:42:59 -07:00
Soam VasaniandGitHub e418d6e20c Storage service and client (#300)
A very rudimentary storage service for archives larger than what can
fit in TPR/CRD resources. The library used allows for using local
files, AWS S3, or other cloud storage APIs. For now only local paths
are set up.

The storage service doesn't know anything about functions or packages;
it can be used for arbitrary archives.

There's no CLI integration yet.
2017-08-31 00:44:25 -07:00
Soam VasaniandGitHub 5b36a798f7 Split out the Package type into a first class Kubernetes resource (#295)
Split out the Package type into a first class Kubernetes resource. Before this change, packages were implicitly tied to functions.

This wasn't ideal because:
 * Functions will need to share packages
 * A package storage system may be more generally useful than just
   functions (for example, for storing static assets)

This change does the following:
* Updates the fission and tpr types to add a new Package and PackageSpec.  It also creates a PackageRef type, and a FunctionPackageRef type. The PackageRef simply references a package, but the FunctionPackageRef includes the name of a function within the package. This allows us to share packages between different functions.
* Updates fetcher and other components for first-class packages
* Allows customization of fetcher image pull policy in the helm charts
2017-08-25 13:40:45 -07:00
Soam Vasani 9e79a3632c Reduce slack spam 2017-08-24 11:10:41 -07:00
Soam Vasani 80d5a7ce19 Project credits: link to Platform9 and contributor list 2017-08-23 11:25:09 -07:00
Soam Vasani 501138f4d1 Add slack notification token to travis 2017-08-23 08:11:29 -07:00
Soam VasaniandGitHub 18570742e6 Helm chart bugfixes + end to end test bugfixes (#293)
Helm Chart fixes: bump chart version, parameterize image pull policy, pass poolmgr url to router.

E2E test: add a simple hello world test. Make test runner dump fission logs after test.
2017-08-23 07:00:49 -07:00
Soam Vasani beda70d9ac tpr description typo 2017-08-21 15:12:10 -07:00
Soam Vasani 625eb1e9aa Empty commit to kick ci 2017-08-18 16:11:35 -07:00
Soam Vasani 5e55ed8e9e Scripts for a couple of simple fission demos 2017-08-16 15:18:31 -07:00
Soam VasaniandGitHub bc19b0b490 Fix bug that causes us to skip our new e2e tests (#285)
Various e2e test bugfixes. The test runner now compiles fission bundle and cli, installs helm, installs kubectl, and uses helm to install fission, run all scripts under test/tests/, and uninstalls fission.

The change also removes go tip tests -- I think we can get by without them, but we'll add them back if the next go version update brings some surprises.
2017-08-15 17:00:27 -07:00
Soam VasaniandGitHub 0e43784c61 End to end test runner (#281)
Build fission-bundle and fission cli. Install the fission-bundle using
the fission-all helm chart. Run all files matching test_*.sh from the
tests/ directory.

This change doesn't contain any real tests, just the build and test
runner scripts.

Skips the tests when there are no cluster credentials available.
2017-08-14 16:17:24 -07:00
Soam Vasani b4638c2d03 Update with our new codeofconduct@ alias 2017-08-11 17:36:53 -07:00
Soam Vasani 635d17bb49 Don't set KUBECONFIG when there is no reachable cluster
Travis doesn't pass secret env vars to tests run on forks, so we need
a way to skip the tests when there are no credentials passed in.

This change unsets KUBECONFIG when there's no reachable cluster. The
Go tests already check for KUBECONFIG and skip when it's not defined.
2017-08-11 15:02:14 -07:00
Soam VasaniandGitHub 604cc2cae0 Helm chart updates (#273)
Remove hardcoded "fission" namespace in various places.

Remove etcd deployment and service, since we use K8s APIs now.

Add ClusterRoleBinding for the fission service account, to allow fission components to access TPRs. We currently make the service account a cluster admin. This is more permissive than it should be; we should define a specific role for just fission resources.
2017-08-09 23:52:13 -07:00
Soam Vasani 2d8f009676 Remove retries from poolmgr eagerPoolCreator
This was initially added to avoid restarts if poolmgr starts before
fission api; but we don't really need that since k8s will restart
it. Also, poolmgr now talks to the k8s api directly instead of the
fission api.
2017-08-09 22:37:55 -07:00
Soam VasaniandGitHub 88b77f7edb Kubernetes access for Travis CI tests (#272)
Sets up Travis CI tests to use a Kubernetes cluster on GKE. All tests have access to $KUBECONFIG which points at a kubeconfig file with credentials to a cluster.

I had to skip the poolmgr unit test because it currently assumes NodePort services; that will be fixed in another change.

Also, because some of the tests don't work properly in parallel, I've ended up reducing the concurrency to 1. If this becomes a problem we'll have to fix the tests, but for now I don't mind just waiting a few minutes longer.
2017-08-08 17:01:34 -07:00
Soam VasaniandGitHub 2f3ff18551 V2 types and TPR (#266)
This changes the core fission function, environment and trigger types. It also changes Fission's storage to use ThirdPartyResources.

 - Functions are now specified by packages. Functions can also have both source and deployment packages. A package can be specified by a literal, or by a URL.
 - Environments have a build and runtime component.
 - Triggers reference functions by a FunctionReference. This is a layer of indirection between triggers and functions, and will allow things like incremental function upgrades in future releases.

See Documentation/wip/env-v2.md for design discussion about points 1 and 2.

Changes:

* V2 Types

All types now have a spec, following the pattern of K8s objects.

Functions now have source and deployment packages. A Package can be
specified by literal, or by URL.

Environments now have a builder and runtime component.

All triggers use a new FunctionReference to specify the function. This
for now only uses a function name, but in the future can be extended
to be more flexible.

A new FunctionLoadRequest type is added for specialization requests to
the environment runtime.

* TPR types, TPR init code, and a "fission client"

Implements TPR types using the spec types in fission/types.go.

Adds code for adding creating TPR types, and convenient types for crud
operations on each of our resource types.

Adds code for connecting to K8s API and configuring a REST client with
fission types set up.

* Change old stateful controller into a thin apiserver

This apiserver is now simply a stateless api layer on top of the TPR
types. At the moment it doesn't do anything that couldn't be done by
simply talking to the TPR types. In the future we can have better
validation and potentially some higher level APIs (like versioning for
example) in here.

* Split controller client into files and update for v2 types.

* Update CLI for v2 types.

As far as possible we keep the CLI flags the same. We'll have to add
flags for source/deploy packages and builder/runtime
environments. That will come in the next change.

* Update poolmgr and fetcher for v2 types.

Also adds a poolmgr_test.

* Update router for new types.

Also adds a function reference resolver, which separates out the job
of resolving a FunctionReference to a function.

* Update kubewatcher and timer for v2 types.

* Update Message Queue trigger type for v2 types.

* Minor odds and ends.

* Fission bundle CLI updates

Remove controllerUrl flag, since we don't need it any more.

* Remove etcd deployment (replaced by storing state in TPR)

Also update the poolmgr commandline, and use an env var for the
fetcher image URL.

* Explicit ChecksumType and consts

* Clarify separation of environment interface types
2017-08-05 01:18:30 -07:00
Soam Vasani f4c32d8328 Update install guide links to latest release 2017-07-05 17:49:40 -07:00
Soam Vasani f6bb059141 Fix curl command in install instructions (#248) 2017-07-03 16:29:09 -07:00
Soam Vasani 8d621ba43b Environment v2 interface doc (wip) 2017-06-30 09:23:35 -07:00
Soam Vasani 81aab8c9c1 release helper script 2017-06-28 15:50:25 -07:00
Soam Vasani dfe0c207f1 add sections to cli download 2017-06-28 15:07:23 -07:00
Soam Vasani 412901b251 Install docs improvements
Keep install docs in one place INSTALL.md instead of two.

Use github releases for all YAMLs and CLIs. This has a few advantages:
 (a) it makes releasess more transparent
 (b) all yaml/cli files are transferred over HTTPS
 (c) CLIs and YAMLs being from the same release ensures that people
     always get compatible versions (we will still occasionally break
     api compatibility, until beta)
2017-06-28 15:00:42 -07:00
Soam Vasani 1089106c0a Remove image tags from yamls 2017-06-21 00:09:31 -07:00
Soam Vasani 5604f0b773 Fix image version in fission-openshift.yaml 2017-06-17 21:14:27 -07:00
Soam VasaniandGitHub 23a10691b0 Specify full golang version in Dockerfiles and build helper script (#227)
Addresses #222.

Plugins and the binaries loading them need to be built with the exact
same go version.

Also update README instructions.
2017-06-09 15:36:09 -07:00
Soam VasaniandGitHub 30645a208e Update golang instructions 2017-06-07 10:52:11 -07:00
Soam Vasani 58a3e1af29 Roadmap doc links 2017-05-18 15:21:36 -07:00
Soam Vasani db6b617ea4 Roadmap doc formatting 2017-05-18 15:04:01 -07:00
Soam Vasani 43806ccf0f Roadmap.md for an overview of roadmap and areas 2017-05-18 12:17:33 -07:00
Soam Vasani 62481106f3 update guestbook example css 2017-04-25 12:09:19 -07:00
Soam Vasani 3b873b869c Update fission.yaml to 3/28 image 2017-04-24 08:25:38 -07:00
Soam Vasani 1d2b2f2432 Work around 'too old resource version' 2017-03-28 12:42:59 +02:00
Soam Vasani 885212c203 Better error checking in watch restarts 2017-03-28 12:06:07 +02:00
Soam Vasani 0aa9b5dc27 Track resourceVersion from event objects 2017-03-28 10:01:11 +02:00
Soam Vasani 97ada3f654 Pass last resource version to restart watch 2017-03-28 10:01:11 +02:00
Soam Vasani a4fbdeb264 Restart watches when they stop unexpectedly 2017-03-28 10:01:11 +02:00
Soam VasaniandGitHub c3971eea39 Go build helper script (#163)
Create a docker container and a script to call it, to help people build go plugins for use with fission.
2017-03-27 23:26:59 -07:00
Soam Vasani fd7b468a10 Bugfixes in nodejs environment server and examples 2017-03-19 19:36:00 -07:00
Soam Vasani 743d51c985 Drop Go 1.7, use Go 1.8 2017-03-16 09:18:49 -07:00
Soam VasaniandGitHub 6d5605e45a Symlink user function's node_modules to server's node_modules (#133)
Fixes #132
2017-02-23 10:19:42 -08:00
Soam Vasani 65805ed00f Add a default handler for the / route
Before this change, if the user doesn't define a route for /, the
router happily 404s at that path.  This breaks GKE Ingress, which uses
that request as a health check.  So this change adds a handler for
"GET /", unless the user already has one.

Also, log the delay for slow requests.
2017-02-20 23:57:40 -08:00
Soam Vasani abf00f197f Instructions in the README were leading to a malformed file
Switch to using a curl command to download sample code, instead of
dealing with nested quotes and stuff.

Addresses #128.
2017-02-17 15:34:02 -08:00
Soam VasaniandGitHub 356a9a8cd4 Handle errors in filestore init (#127)
Fixes issue #108
2017-02-17 15:21:36 -08:00
Soam Vasani 53c3e44b73 Initial test script
Test script that sets up fission on a cluster, runs tests and
uninstalls it.

Yet to come:

1. The actual tests
2. Builds (for fission-bundle, client, and envs)
3. Automation with github pull requests
2017-02-16 12:55:38 -08:00
Soam Vasani 39dcb7fe71 Use Helm's built-in support for namespaces
Remove our non-standard namespace variable and use .Release.Namespace
to put fission deployments and services into.

(We still need the functionNamespace parameter, to customize what
namespace fission puts functions into.)
2017-02-16 12:01:26 -08:00
Soam Vasani f4b790bd3c Add fission and fission-function namespaces to template variables
Also, update readme.
2017-02-16 11:08:47 -08:00
Soam Vasani 389e4575c2 Update use cases, talk a bit about implementation 2017-02-15 11:21:51 -08:00
Soam VasaniandGitHub 4cfba6034d Merge pull request #117 from tobias/gitignore-updates
Update gitignore to include dev artifacts
2017-02-10 14:10:50 -08:00
Soam VasaniandGitHub 83fa43f621 Merge pull request #114 from fission/issue-113
Don't wait for ready pod in MakeGenericPool
2017-02-09 16:27:17 -08:00
Soam Vasani 1d314b32d2 Don't wait for ready pod in MakeGenericPool
Addresses issue #113.  poolmgr.MakeGenericPool does not need to wait
for a ready pod.  Kubernetes already retries image fetching, so
there's no need to repeat the task in fission.  And if it's a
non-retriable error (like the image URL being wrong), then the
deployment will stay broken, and the user can fix the environment with
'fission env update' (or 'fission env delete' followed by 'fission env
create').
2017-02-09 15:27:57 -08:00
Soam Vasani 26d957acf9 Add README to NodeJS env 2017-02-08 16:43:19 -08:00
Soam VasaniandGitHub 2bc50ccdfa Merge pull request #109 from tobias/build-sh-as-sh
Make build an actual sh script
2017-02-06 18:02:25 -08:00
Soam VasaniandGitHub fe9b2ca8f9 Merge pull request #110 from tobias/readme-updates
Minor improvements to build instructions in README
2017-02-06 18:01:23 -08:00
Soam VasaniandGitHub 9399795b50 Merge pull request #106 from kaustubhvp/fix-func-validations
Fixing validations of fn actions
2017-02-06 09:12:43 -08:00
Soam VasaniandGitHub 93f604782c Merge pull request #105 from ktrance/master
Http request support
2017-02-06 09:12:00 -08:00
Soam VasaniandGitHub bbf1594144 kubewatcher example: send watch updates to slack (#96)
This example sends change events from a watch to a Slack webhook.
2017-01-31 12:23:45 -08:00
Soam VasaniandGitHub 9379352071 Merge pull request #94 from andrewstuart/bugfix/https
bugfix (cli) Update the URL check to work with https
2017-01-31 11:37:08 -08:00
Soam Vasani 1b04f042cd Note limitations of dynamic loading in pods 2017-01-26 22:18:38 -08:00
Soam VasaniandGitHub 7485dca7d8 Merge pull request #84 from ktrance/master
Added support for running C# code in a dotnet core environment
2017-01-26 11:39:21 -08:00
Soam VasaniandGitHub 20baa2ee9d Wait for Pod IP while waiting for pod ready (#89)
Addresses issue #88.
2017-01-25 15:32:34 -08:00
Soam Vasani 2fc9fd9603 Update YAML to point at alpha20170124 fission-bundle image 2017-01-24 11:27:01 -08:00
Soam VasaniandGitHub 0465ccd352 Merge pull request #87 from AlekSi/patch-1
Make go vet happy
2017-01-24 08:40:55 -08:00
Soam Vasani cb08118164 Update README, create separate install instructions 2017-01-23 23:55:23 -08:00
Soam Vasani 043ae0c2b1 Add a contributing.md 2017-01-23 22:36:15 -08:00
Soam Vasani bba71d65a2 Fix incorrect log printf 2017-01-23 19:49:13 -08:00
Soam VasaniandGitHub f3e1f8b88c Merge pull request #86 from fission/travis-failure
Ignore glide cache in gofmt check
2017-01-23 19:43:47 -08:00
Soam Vasani da15e5cdb7 Ignore glide cache in gofmt check 2017-01-23 19:29:45 -08:00
Soam Vasani 90e7f0212a Programming model doc update 2017-01-23 19:13:02 -08:00
Soam Vasani 000b74d4ad Doc updates 2017-01-23 19:11:37 -08:00
Soam VasaniandGitHub 8339e120ce Merge pull request #81 from fission/bugfix-internal-routes
Bugfix for internal routes
2017-01-19 09:54:00 -08:00
Soam Vasani 1d4875ff74 Bugfix for internal routes
Poolmgr removed the default-latest-version semantics to simplify
caching.  But this broke the router's internal function routes, which
are used by kubeWatcher.  The router now exposes a versionless url
and regularly updates that to point to the latest version.
2017-01-19 09:27:05 -08:00
Soam Vasani e0c7682996 Improve environment doc 2017-01-18 16:59:39 -08:00
Soam Vasani 4f9b36b042 Add README to python env 2017-01-18 16:53:03 -08:00
Soam Vasani e268ae68e7 Create python env conditionally 2017-01-18 15:43:29 -08:00
Soam Vasani 928d96c080 A trivial guestbook app
Functions for GET and POST endpoints. A redis.yaml to deploy redis on
kubernetes.  And a deploy.sh to deploy the fission functions with
routes.
2017-01-18 15:30:51 -08:00
Soam Vasani 9ffba72c11 Add redis client to python env 2017-01-17 23:42:05 -08:00
Soam VasaniandGitHub b1cf2a0182 Merge pull request #79 from fission/router-handle-method-bug
Bug fix for handling a route's HTTP method in router
2017-01-17 22:27:44 -08:00
Soam Vasani 3ed5e772cf Update test to include method 2017-01-17 22:06:02 -08:00
Soam Vasani 3f02ccaf34 Bug fix for handling a route's HTTP method in router 2017-01-17 18:42:54 -08:00
Soam VasaniandGitHub 324af61192 Merge pull request #77 from frodenas/namespace-flag
fission-bundle: allow setting the namespace
2017-01-13 11:22:37 -08:00