Commit Graph
100 Commits
Author SHA1 Message Date
Soam VasaniandGitHub 04c9ee637d Environment warning message bugfix (#725) 2018-06-07 14:17:27 -07:00
Soam VasaniandGitHub 15a29b17b1 Fission metrics integration (#677)
Add prometheus metrics collection endpoints to router and executor. Add prometheus annotations to router and executor pods.
2018-05-21 13:57:18 -07:00
Soam VasaniandGitHub 3ef9967f92 --spec flags for env and trigger creates (#607) 2018-04-06 09:00:01 -07:00
Soam VasaniandGitHub e58c63e7d2 E2E test for NATS-streaming trigger (#338)
E2E test for NATS-streaming trigger: move ad-hoc shell script into CI tests.
2018-04-05 10:07:00 -07:00
Soam VasaniandGitHub 3935b79ac0 Spec validator, better errors, apply waits for previous build (#560)
Adds a validator, invoked through `fission spec validate` and before `fission spec apply`. The validator checks for duplicate names, dangling references, and unused resources.

Also attempts to fix a race between CLI and builder.  Avoids replacing a package while it's building, instead waiting for the build status to change from pending before updating it.
2018-04-02 14:33:31 -07:00
Soam VasaniandGitHub 05e49521e0 Add verbosity flag and verbose logs for portforwarder (#575)
Also, parse flags before connecting to server.
2018-03-26 12:23:45 -07:00
Soam Vasani e25a28ef8b Update release checklist 2018-03-22 14:05:51 -07:00
Soam Vasani e7956b1657 Update generated changelog 2018-03-22 14:03:02 -07:00
Soam Vasani 7582b616ae Bump version in charts, forgot one file 2018-03-22 11:33:23 -07:00
Soam Vasani f4e6151f20 Bump version in charts 2018-03-22 11:26:58 -07:00
Soam Vasani 12f48e5c2a Release checklist updates 2018-03-22 11:26:41 -07:00
Soam Vasani 22ae81e614 use specific go env version in example 2018-03-11 11:54:30 -07:00
Soam VasaniandGitHub 9f60c83960 Docs update (#542)
* Misc doc updates

* Some theme updates: no all caps headers, remove blue arrows
2018-03-09 11:26:15 -08:00
Soam VasaniandGitHub 38860445e5 Release script updates (#541) 2018-03-08 13:48:57 -08:00
Soam Vasani 07522d8956 Version update: 0.6.0 2018-03-01 13:43:59 -08:00
Soam VasaniandGitHub 0a6b9bd877 Release checklist (#522)
* release checklist

* release checklist updates
2018-03-01 12:46:56 -08:00
Soam VasaniandGitHub c118253be0 Add chart version to job name (#516) 2018-03-01 12:17:17 -08:00
Soam VasaniandGitHub 26f4777822 Detect fission namespace in cli (#519)
Remove the hard coded default "fission" namespace that was added in the last PR, replacing it with some logic to figure out where fission is installed and connecting to it if there's exactly one installation. If there is more than one fission installation, error out with a useful message.

Also improve the error message for a missing kubeconfig file.
2018-03-01 12:16:50 -08:00
Soam VasaniandGitHub 879ff9ab55 Default values for FISSION_* env vars (#518)
This makes set up easier for new users.  Users can still set
FISSION_NAMESPACE but it will default to "fission".  Users can also
still set KUBECONFIG, but it will default to $HOME/.kube/config.

Also, update the post-install chart notes.txt and the install guide to
use "fission function test" as the first step after install.  This
means that if there's anything wrong with the setup, the user will see
useful errors instead of "internal server error".  Also, they can test
their setup without worrying about nodeports or ingresses or whatever.

All existing functionality of FISSION_URL and FISSION_ROUTER continues
to work.
2018-02-28 18:14:57 -08:00
Soam VasaniandGitHub 06e9c49bb4 Go: Set image to right version, update example readme (#497) 2018-02-15 20:39:25 -08:00
Soam VasaniandGitHub 1fbfc26cde Remove a noisy log from the router (#495) 2018-02-12 16:27:55 -08:00
Soam VasaniandGitHub b2e7171e90 Go builder for single file functions (#492)
Add support to go builder for building a single file (otherwise even a single file needs to be archived in a .zip)
2018-02-08 18:55:49 -08:00
Soam VasaniandGitHub 41415f51f0 Helm hook bugfixes: run on upgrade, delete on completion (#473) 2018-02-06 15:06:21 -08:00
Soam VasaniandGitHub 0d5dc56205 Declarative application specifications for Fission (#422)
This change enables users to have declarative specifications for Fission resources. Users can specify their "app" in a set of spec files, and use a new fission CLI command to "apply" these specs to a running cluster.

The new "spec" CLI also includes archiving of local source files, and a file watcher that re-builds archives and uploads them on file changes, and a package build watcher that waits for package builds on the CLI. 

A "--spec" option is also added to "function create", and will be added to other resources in future changes.  This option causes a YAML to be outputted to the specs directory instead of the resource being created on the cluster.

The CLI "fission spec --help" outputs usage information.
2018-02-05 21:58:44 -08:00
Soam VasaniandGitHub 0cb13dc20d Fix broken redirect (#467)
By default, flask turns redirects into absolute URLs. This is
undesired behaviour on Kubernetes, because the Pod's own IP address is
not really useful to any client that's not in the cluster (and even
within the cluster most clients will want to use the address of a
Service, not a Pod).
2018-01-30 12:00:30 -08:00
Soam VasaniandTa-Ching Chen 1394fce118 Build and push fluentd image on release; update chart to use that image (#462)
* build and push logger image during release
* Update chart to get the right fluentd image
2018-01-30 21:35:13 +08:00
Soam Vasani 06b158447f Version -> 0.4.1 2018-01-20 06:15:11 -08:00
Soam Vasani a993f34a5b Version -> 0.4.1 2018-01-20 06:05:19 -08:00
Soam VasaniandGitHub 67961fd8a9 Integration test improvements (#447)
A few improvements to the integration test:

* Search for test files recursively in the test dir
* Output a test report at the end for a quick summary of what tests passed/failed/were skipped
* Add support skipping test files; skip the logging test since it's broken (#446 is tracking this)
* Switch to latest helm version
* Cleanup namespace
2018-01-15 16:08:38 -08:00
Soam Vasani f49d5fa9e4 Demo script bugfix 2018-01-02 14:10:23 +05:30
Soam Vasani 55b79c02d1 Update install link 2017-12-07 17:33:24 -06:00
Soam VasaniandGitHub 2c2c000d78 Golang v2 environment -- runtime and builder (#427)
v2 environment for Go; includes runtime and builder.
2017-12-06 23:03:05 -06:00
Soam Vasani e7bde66dbd minor comment update in fetcher 2017-12-01 10:45:31 -08:00
Soam Vasani 08503c3918 script to update and copy hugo site 2017-11-23 09:55:16 -08:00
Soam Vasani 2757b3d19f Chart version update 2017-11-15 13:25:28 -08:00
Soam Vasani b9ad1d8ab8 update version to 0.4.0 in docs 2017-11-15 13:18:50 -08:00
Soam Vasani 3b57ff12e3 update version to 0.4.0 2017-11-15 13:18:22 -08:00
Soam Vasani dac80365f9 only set nodeports when servicetype == nodeport 2017-11-15 13:18:22 -08:00
Soam Vasani 9c8c3516ca Build both python 3.5 and 2.7 images from the same env 2017-11-09 14:01:02 -08:00
Soam Vasani fb857471f0 release script: use helm package to create charts 2017-11-09 13:38:01 -08:00
Soam Vasani 730ac8c03e rename readme to format markdown 2017-11-09 08:12:47 -08:00
Soam Vasani ededdff483 multifile example 2017-11-09 08:11:02 -08:00
Soam Vasani 7aa138561c hugo config 2017-11-08 17:15:54 -08:00
Soam Vasani d2504836de chart version update 2017-11-08 15:51:23 -08:00
Soam Vasani 813d2f24a9 0.4.0rc version update 2017-11-08 12:45:09 -08:00
Soam Vasani ee76864aa9 Upgrade guide doc update 2017-11-07 15:45:39 -08:00
Soam Vasani d751093067 update compiling.md to use helm 2017-10-05 16:24:25 -07:00
Soam Vasani dc0211e3fb doc formatting fixes 2017-10-02 14:54:40 -07:00
Soam Vasani 7131026b31 set versions to 0.3.0 2017-09-28 23:44:53 -07:00
Soam VasaniandGitHub ec4b7bcd81 dotnet20 build fixes (#365)
Fix the dotnet20 build, use docker for builds, and re-enable dotnet20 in the release script.
2017-09-28 23:36:11 -07:00
Soam VasaniandGitHub 8b66729e35 Differentiate by environment in fscache eviction (#361) 2017-09-28 10:00:23 -07:00
Soam Vasani eca427dd70 Time out post-install hooks in 5 sec 2017-09-27 19:03:45 -07:00
Soam Vasani c547ff88ca Disable dotnet20 build for now (issue #359) 2017-09-27 07:46:00 -07:00
Soam Vasani d08fe908ba chmod +x dotnet20/build.sh 2017-09-27 06:55:54 -07:00
Soam Vasani b968b6a793 Set version to 0.3.0-rc 2017-09-26 23:35:08 -07:00
Soam VasaniandGitHub 14b0686183 Dump package resources at the end of tests (#357) 2017-09-26 12:55:03 -07:00
Soam Vasani e975949885 Add dotnet20 to release.sh 2017-09-21 11:47:11 -07:00
Soam VasaniandGitHub 409551a5db Fix internal route setup bug (#335)
Fixes #334 which broke internal routes, and adds a test.
2017-09-20 06:51:56 -07:00
Soam VasaniandGitHub 61121c043d Post-install hook to poke analytics function (#325)
Send chart name and chart version after installation to an analytics function. Users can opt-out with --set analytics=false.
2017-09-19 15:39:36 -07:00
Soam VasaniandGitHub b0959eb0f3 Function service cache partial support for multiple specialization (#332)
This adds partial support for multiple specialization to the
function service cache. It allows Add() to succeed if the pod and
address maps already contain entries.

But it doesn't deal with DeletePod and TouchByAddress. That's ok for
now, because the workflow engine never deletes the environment pod
(that pod is the workflow engine).

However, if/when we want full support for multiple specialization,
that will require updating both DeletePod and TouchByAddress.
2017-09-18 15:57:06 -07:00
Soam Vasani 153dce6ced fix broken helm download command in instructions, again 2017-09-12 16:46:39 -07:00
Soam Vasani d83f92102b fix broken helm download command in instructions 2017-09-12 16:45:33 -07:00
Soam VasaniandGitHub 9118dbe013 update readme with latest install instructions (#324) 2017-09-12 15:16:56 -07:00
Soam Vasani 23e02af72c Release script bugfix 2017-09-11 20:11:06 -07:00
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