Commit Graph

17 Commits

Author SHA1 Message Date
Lance Ball 36489f3a55
chore: bump faas-js-runtime and cloudevents for node & TS (#1873)
* chore: bump faas-js-runtime and cloudevents for node & TS

The Node.js and TypeScript templates have been bumped to the latest
versions of faas-js-runtime (2.2.2) and CloudEvents (7.0.1).

There is an issue with the `expectType` test for TypeScript CloudEvent
functions which I can't quite figure out, but the type test is not
critical and does not do anything to validate other than whether the
function signature is what's expected by faas-js-runtime, and in this
case, I think type exported type for faas-js-runtime may actually be the
issue here.

Signed-off-by: Lance Ball <lball@redhat.com>

* chore: pin all github actions to go 1.20.2

There was a change in how go parses URLs in versions higher than 1.20.2
(likely 1.20.6 and up) which breaks the Docker API's handling of daemon
URIs. This fix pins the Go version at a version known to work with the
existing Docker API and `func` implementation.

Signed-off-by: Lance Ball <lball@redhat.com>

---------

Signed-off-by: Lance Ball <lball@redhat.com>
2023-07-19 04:17:11 +00:00
Lance Ball 177c15bfb3
feat: custom health checks for node and typescript (#1682)
* feat: custom health checks for node and typescript

This commit bumps the faas-js-runtime for Node.js and TypeScript
dependencies to version 1.1.0, which includes an API allowing function
developers to override the liveness and readiness checks for their
functions.

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup

Signed-off-by: Lance Ball <lball@redhat.com>

---------

Signed-off-by: Lance Ball <lball@redhat.com>
2023-04-25 06:31:44 +00:00
Lance Ball c20c887cd2
chore: update faas-js-runtime to 0.10.0 (#1570)
* chore: update faas-js-runtime to 0.10.0

Fixes: https://github.com/nodeshift/faas-js-runtime/issues/120

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: try ignoring package-lock.json files in linter

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: actually add package-lock.json

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: better globbing

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: best globbing

Signed-off-by: Lance Ball <lball@redhat.com>

---------

Signed-off-by: Lance Ball <lball@redhat.com>
2023-02-20 20:32:25 +00:00
Lance Ball 7b1e0c0f99
deps(node,typescript): update dependencies (#1468)
Updates dependencies in Node.js and TypeScript functions to eliminate
some security warnings and bump to faas-js-runtime 0.9.7, which allows
for ESM modules now.

Signed-off-by: Lance Ball <lball@redhat.com>

Signed-off-by: Lance Ball <lball@redhat.com>
2023-01-16 02:33:53 +00:00
David Fridrich 13fde9025d
feat: Change Invocation.format to Invoke (#1415)
* test1

* d

* templates/* manifest remove http

* docs fix

* migration test a template tests

* docs func_run

* docs last

* misspell

* suggested changes

* def http

* zz

* zz

* change invocation struct name

* zz file
2022-11-11 11:20:19 +00:00
Lance Ball 06693859be
enhancement(templates): use latest faas-js-runtime + cloudevents (#1422)
* enhancement(templates): use latest faas-js-runtime + cloudevents

Better typing of handle functions and return values for typescript based functions.

/kind enhancement

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: improvements

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: missing FUNC_LOG_LEVEL

Signed-off-by: Lance Ball <lball@redhat.com>

Signed-off-by: Lance Ball <lball@redhat.com>
2022-11-10 12:59:15 +00:00
Lance Ball 64e7452c9a
chore(deps): update node and typescript deps (#1394)
Eliminates some security issues found by dependabot and bumps to latest faas-js-runtime. Also cleans up the typescript code to be slightly less ugly.

/kind chore

Signed-off-by: Lance Ball <lball@redhat.com>

Signed-off-by: Lance Ball <lball@redhat.com>
2022-10-31 21:59:12 +00:00
Lance Ball 5adec03c7b
chore: update all references to kn-plugin-func (#1311)
* chore: update all references to kn-plugin-func

I did not change references in CHANGELOG.md but otherwise, I believe
this should cover all configuration settings, image names, package
names, etc.

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: fix instances_test.go

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: still some stray kn-plugin-func

Signed-off-by: Lance Ball <lball@redhat.com>

Signed-off-by: Lance Ball <lball@redhat.com>
2022-10-13 16:31:53 +00:00
Lance Ball 29f3aadb47
chore: update node and typescript dependencies (#1110)
This commit updates both the Node.js and TypeScript cloudevents
templates to use the most recent version of the CloudEvents module, and
bumps transitive dependencies that needed updates via `npm audit fix`.

Signed-off-by: Lance Ball <lball@redhat.com>
2022-07-14 08:02:14 +00:00
Matej Vasek 041bb9fd66
Make JS/TS Function templates async by default (#1020)
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2022-05-27 16:03:09 +02:00
Lance Ball 83c081d34a
chore(deps): bump faas-js-runtime version (#1000)
* chore(deps): bump faas-js-runtime version

There were a couple of bug fixes in the latest release. This commit
picks those up for functions projects in JavaScript and TypeScript.

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: update package-lock.json for node/typescript tmpls

Signed-off-by: Lance Ball <lball@redhat.com>
2022-04-29 13:08:54 +00:00
Lance Ball 166313b541
improve template comments for Node.js and TypeScript (#902)
* improve template comments for Node.js and TypeScript

See: https://github.com/knative-sandbox/kn-plugin-func/issues/572

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: add zz_ file

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: whitespace

Signed-off-by: Lance Ball <lball@redhat.com>
2022-03-15 15:36:59 -07:00
Lance Ball ad42f3a258
chore: update manifest.yamls (#846)
* chore: update manifest.yamls

In a couple of cases, the `invoke` parameter was missing. And there was an
outdated use of a typescript buildpack in the typescript/cloudevent templates.

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: I should set VSCode to autosave on focus change

Signed-off-by: Lance Ball <lball@redhat.com>
2022-02-22 09:10:04 -08:00
Luke Kingland e918f74b9e
feat!: invoke (#705)
* feat!: rename 'emit' to 'invoke' and default to local

This commit renames 'func emit' command to 'func invoke' and makes the
default behavior to send an event to localhost. The special '--sink'
value 'local' is changed to 'cluster' to indicate that the function
should be invoked on the cluster instead of locally. All other behavior
has remained the same.

BREAKING CHANGE

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: update commands.md doc

Signed-off-by: Lance Ball <lball@redhat.com>

* squash: change Emitter interface to Invoker

Changes Emit() to Send() in the (now named) Invoker interface, and changes
Emit() to Invoke() in the client.

BREAKING CHANGE

Signed-off-by: Lance Ball <lball@redhat.com>

* squash: use a common Invoker interface for HTTP and events

Signed-off-by: Lance Ball <lball@redhat.com>

* checkpoint

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: change Emitter to EventInvoker

Signed-off-by: Lance Ball <lball@redhat.com>

* Invoke v2 Draft

* feat: client invoke function

* static invoke defaults and methods

* remove assimilated invoker package

* includes an ignored .func directory on create

* Instances manager with local and remote defaults

Funciton Info is now Instance, representing a Function in a given
environment.

Describing a Function instance is now Instances().Get(f, environment)

Moves Runner to be async with a Stop method to enable returning runtime pid
and port for persisting.

Instances now have a place for primary Route in addition to all routes slice

Running Functions write PID and Port to .func

* cascading targets: local vs remote vs ad-hoc endpoint

* runner start signals and cancel cleanup

* return run on context done or err on channel

* async runner

Refactors the image runner to start the container asynchronously,
reporting back the port on which it started.  Errors are communicated
back via a provided channel and stop is signaled using context
cancelation.

* pid neither required nor available

* add withTransport option

Incorporates addition of custom transport of the emitter into the
renamed version invoker. Flag and help text cleanup.  Re-additionof the
Info accessor.

* schema now includes invocation data

* loop build msg

* run jobs

Externally exposed port is now chosen based on availability, with 8080
preferred and falling back to an os-chosen open port.
The Client Run method is now async, returning the port assigned to the
running Function, a stop/cleanup function and a runtime errors channel.
The Runner is internally divided into the runner and its started Jobs.

* job metadata

Extracts job metadata tracking to a Job object in the core,
Handles multiple instances of the same Function by creating a single
file for each instances in .func/instances/<port>

* remove superfluous error types and flag bindings

* feat: enable invoke target remote

* feat: preferentially invoke local, remote if running

* feat: read --file for invoke

* feat: invoke confirm prompts

* fixup cli tests

- Updates to handle asynchronous Runner
- Standardize on the naming convention for selective running

* docker runner tests and lint errors

* test refactor

* feat: invoke format override

* comments, spelling and other cleanup

* invoke command doc

* feat: invoke format interactive option

* rename runjob.go to job.go

* e2e test flag update

* test naming homoginization

* silence build activity messages when verbose

* test debugging

* code review updates

- return Job from Client.Run rather than constituent members
- Treat .gitignore as contentious, punting on feature to mutate if
  extant.
- docs wording changes
- add invocation format to pertinent manifest.yaml files

* help text spelling etc.

Co-authored-by: Lance Ball <lball@redhat.com>
2022-01-21 12:04:05 -08:00
Lance Ball d7cfe6ead7
feat: add telemetry to Node.js and TypeScript function templates (#719)
* feat: add telemetry to Node.js and TypeScript function templates

This commit pulls in the latest version of faas-js-runtime which supports
metrics exposed at /metrics. Also, concidentally, adds CloudEvent batch
support, so Node.js and TypeScript functions may be invoked with a set of
more than one event simultaneously.

Fixes: https://github.com/knative-sandbox/kn-plugin-func/issues/710

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: regenerate and commit pkged.go

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: remove stray go.sum and update pkged.go file

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: try to make knative code style happy

Signed-off-by: Lance Ball <lball@redhat.com>

* Revert "fixup: try to make knative code style happy"

This reverts commit 91d625be7b.

* fixup: update package-lock.json files

Signed-off-by: Lance Ball <lball@redhat.com>
2021-12-15 03:00:29 -08:00
Lance Ball fb7504a900
src: improve usability of Node.js and TypeScript templates (#608)
* src: improve usability of Node.js and TypeScript templates

Fixes: https://github.com/knative-sandbox/kn-plugin-func/issues/596
Related: https://github.com/knative-sandbox/kn-plugin-func/issues/572

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: whitespace again

Signed-off-by: Lance Ball <lball@redhat.com>
2021-10-27 04:39:01 -07:00
Lance Ball 68b0904b17
feat!: rename event templates to 'cloudevents' (#584)
* feat!: rename event templates to 'cloudevents'

This commit renames the templates for cloudevents to be named "cloudevents".

BREAKING CHANGE

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: update commands.md doc

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: fix make test-templates

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: missed an e2e test change

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: gitignore and pkged.go

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: adjust Makefile recipe for pkged.go

Signed-off-by: Lance Ball <lball@redhat.com>
2021-10-13 14:19:42 -07:00