Commit Graph

132 Commits

Author SHA1 Message Date
github-actions[bot] e21ce5b44f
chore: update Quarkus platform version to 2.12.2.Final (#1236)
Co-authored-by: Knative Automation <automation@knative.team>
2022-09-13 23:51:47 +00:00
github-actions[bot] 58a6d07fe6
chore: update Quarkus platform version to 2.12.1.Final (#1221)
Co-authored-by: Knative Automation <automation@knative.team>
2022-09-08 18:47:20 +00:00
github-actions[bot] f4a410ab0f
chore: update Quarkus platform version to 2.12.0.Final (#1208)
Co-authored-by: Knative Automation <automation@knative.team>
2022-08-31 16:06:18 +00:00
Gunjan Vyas 02c0ae775d
chore: update rust dependencies (#1201) 2022-08-30 17:05:16 +00:00
github-actions[bot] b3ced5ebd5
chore: update Quarkus platform version to 2.11.3.Final (#1187)
Co-authored-by: Knative Automation <automation@knative.team>
2022-08-24 14:21:32 +02:00
Gunjan Vyas e465348210
chore: update springboot dependencies (#1183) 2022-08-23 12:05:17 +00:00
github-actions[bot] 849c2cd7a1
chore: update Quarkus platform to 2.11.2.Final (#1157)
Co-authored-by: Knative Automation <automation@knative.team>
2022-08-08 14:17:24 +00:00
Jefferson Ramos f72b23fe76
doc: fix doc reference on nodejs template (#1154) 2022-08-04 14:35:21 +00:00
Matej Vasek a906b8866c
chore: update Quarkus templates to 2.10.3.Final (#1132)
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2022-07-20 17:24:01 +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 d4f96bb694
Preserve func.yaml for Quarkus BP build (#1092)
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2022-06-30 18:29:31 +00:00
Daniel 5f8c01829e
feat: introduce echo return for Python http template (#1078)
* Introduce echo return for Python http template

* Updated tests and regenerated zz* file

* Updated output to dict-only

* Changed output type from Python dict literal to proper JSON
2022-06-28 16:21:30 +00:00
Matheus Cruz f828b0998c
feat: add echo for springboot http template (#1072)
* feat: add echo func

* chore: package

* docs: update docs

* refactor: add space between headers

* refactor: regenerate zz file

* refactor: clean with pre-commit

* refactor: add func_yaml-schema.json file

* refactor: rename test and fix white-spaces

* refactor: remove .idea files

* test: change http test

* test: change expected result
2022-06-17 17:05:18 +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
Luke Kingland 867d4c26d6
feat: improved invoke verbosity (#1007)
* feat: improved invoke verbosity

* e2e test updates

* regen filesystem

* e2e tests: add to query what is expected as an echo
2022-05-11 19:16:35 +00:00
Matej Vasek 8949484ffb
Update S2I envvars to work with fast-jar (#1012)
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2022-05-10 18:21:33 +00:00
Matej Vasek 5ac6c25a4a
User fast-jar packaging for Quarkus (#1009)
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2022-05-09 15:37:33 +00:00
Matej Vasek 8661253be6
Remove unnecesary files from Java template (#1008)
* Remove unnecesary files from Quarkus template

The jar will be automatically downloaded first time maven wrapper is used.

Signed-off-by: Matej Vasek <mvasek@redhat.com>

* Remove unnecesary files from Sprint Boot templates

The jar will be automatically downloaded first time maven wrapper is used.

Signed-off-by: Matej Vasek <mvasek@redhat.com>
2022-05-06 15:06:29 +00:00
Lance Ball 31c1d66eb3
chore: use paketo builders for all runtimes (#1001)
All runtimes were actually using paketo builders already, but the
builders were still being explicitly set in manifest.yaml instead of
existing as a default in builder.go like all of the others.

Signed-off-by: Lance Ball <lball@redhat.com>
2022-05-06 01:23:28 +00:00
Thomas Risberg a694cf54b3
Update spring boot cloud and native versions (#999) 2022-04-30 17:00:55 +00: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
Luke Kingland 397ce65598
feat: s2i builder quarkus support (#993)
* feat: s2i builder quarkus support

* use manifest for quarkus s2i build envs
2022-04-27 00:40:56 +00:00
Matej Vasek bed3dfc9f6
Paketo BuildPack for Quarkus (#985)
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2022-04-20 19:26:29 +00:00
Lance Ball 5af934be8d
feat: enable Paketo builders for Python functions (#979)
This commit changes the Python functions to use the open source Paketo
builders. The Paketo builders allow the use of a Procfile to indicate
the desired default start process for the container, so this has been
added to invoke Parliament at startup.

Also, there were no README.md files for Python, so I added them too.

Signed-off-by: Lance Ball <lball@redhat.com>
2022-04-20 00:09:28 +00:00
Jefferson Ramos 01f113969a
CI enhancements (e2e tests) and Go template fix (#970)
* Adding timeout and additional logs on e2e http test

* Better revision check on e2e http update test

* ci: Adding workflow to run e2e for all runtimes

* fix: server error 500 for Go cloudevents template
2022-04-19 14:18:28 +00:00
Luke Kingland 3be1a77388
feat: s2i builder typescript support (#957) 2022-04-14 10:48:10 +00:00
Lance Ball 13d4222461
feat: make templates consistent across runtimes (#948)
* fix: make templates consistent across runtimes

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

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

* fixup: review feedback

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

* fixup: fix embedded fs

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

* fixup: fix whitespace

Signed-off-by: Lance Ball <lball@redhat.com>
2022-04-08 11:28:46 +00:00
Matej Vasek 1ee9fa163b
Update spring-boot in templates (#947)
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2022-04-06 18:11:45 +00:00
Luke Kingland a91bcc5fcf
feat: s2i builder with preliminary node support (#923)
* fix: stuck build ticker

* feat: s2i builder prototype

* default builders

* use s2i fork with updated docker

* in-code builder defaults

* s2i builder verbosity constructor arg

* typed errors

* typed error tests

* remove unneeded env code

* s2i build e2e test

* e2e tests

* update licenses

* cleanup

* codegen debug

* update licenses

* Revert "Update actions (#921)"

This reverts commit 8312b5c560.

* update licenses

* e2e test updates

* use GetDefaultDockerConfig for s2i config

* docker.NewClient docs
2022-04-05 13:08:44 +00:00
Lance Ball 4a4cebb1ea
fix: apply updated spring-boot-function dependency (#936)
This commit updates the spring-boot-function dependency explicitly as there
is not yet a CVE fix for spring-cloud 2021.0.1.

```
❯ ./mvnw clean install dependency:tree | grep spring-cloud-function
[INFO] |  +- org.springframework.cloud:spring-cloud-function-web:jar:3.2.2:compile
[INFO] +- org.springframework.cloud:spring-cloud-function-context:jar:3.2.3:compile (optional)
[INFO] |  +- org.springframework.cloud:spring-cloud-function-core:jar:3.2.2:compile (optional)
```

Fixes: https://github.com/knative-sandbox/kn-plugin-func/issues/929
Fixes: https://spring.io/blog/2022/03/29/cve-report-published-for-spring-cloud-function

Signed-off-by: Lance Ball <lball@redhat.com>
2022-04-04 16:52:43 +00:00
Thomas Risberg 9a6aaa5474
Support using 'func invoke' for springboot templates (#920)
* Support using 'func invoke' for springboot templates

- add README notes for using 'func invoke' to springboot templates
- update ce-type used for cloudevents template tests

* Re-generate zz_filesystem_generated.go after rebase
2022-03-23 09:31:18 -07:00
Thomas Risberg 03e53287d1
Update springboot http template (#914)
- http should match cloudevents template
- update Spring Boot version
- update README for cloudevents template
2022-03-22 08:31:12 -07: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
salaboy 57909f71fe
Updating to latest spring cloud release and refactoring code (#838)
* updating to latest spring cloud release and refactoring code

* new health endpoints

* implementing simplified echo function in template

* adding banner

* adding NL at EOF

* updating native to release

* fixing trailing whitespace

* adding invocation back

* adding Newline

* whitespaces

* fix lint and regenerate

* regenerate zz filesystem after rebase
2022-03-11 07:22:32 -08:00
Matej Vasek fa17dc9e4b
Update wrt switch from pkger to custom ZIP pkging (#889)
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2022-03-09 17:39:46 -08:00
salaboy b97fe9c4ec
Adding sample function in go template (#840)
* adding sample function in go template

* adding simple echo, using the correct signature

* fixing readme
2022-03-01 07:38:42 -08:00
Helio Frota efc3b208cb
fix: minor typos in docs (#862) 2022-02-23 07:25:39 -08: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
Matej Vasek 5fad42ba55
Update python builder version (#845)
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2022-02-22 08:17:03 -08:00
Lance Ball b8370c139e
chore: bump node builder to latest (#826)
Signed-off-by: Lance Ball <lball@redhat.com>
2022-02-11 05:54:17 -08:00
Matej Vasek b4e6318ce5
chore: update boson builder image references (#810)
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2022-02-02 05:06:33 -08:00
Lance Ball ece9ac3645
fix: use paketo base image for springboot (#792)
The build actually seems to require `base` vs `tiny.

Signed-off-by: Lance Ball <lball@redhat.com>
2022-01-27 09:26:47 -08:00
Lance Ball 6097b8d790
fix: use domain qualified registry for springboot (#789)
* fix: use domain qualified registry for springboot

The builder image name should include the registry name. Also it seems
that the tiny builder doesn't actually work. We need base.

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

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

* fixup: regenerate pkged.go with go 1.17

Signed-off-by: Lance Ball <lball@redhat.com>
2022-01-26 11:28:45 -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
Luke Kingland 4504b21369
src: simplify go templates (#741) 2022-01-10 13:59:12 -08:00
Fabian Lopez 866728dbc0
mitigate log4j dependency vulnerability (#723)
* mitigate log4j dependency vulnerability

* bump log4j version to 2.16.0

* update pkged.go

* manually fix pkged.go annotation

* Revert "manually fix pkged.go annotation"

This reverts commit dc67a48185.

* fix pkged.go

* podman test trigger

* e2e test trigger
2021-12-16 03:32:17 -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
Matej Vasek 834e8ae46c
fix: use specific version of paketo builder (#670)
For some reason latest version is not working with node.

Signed-off-by: Matej Vasek <mvasek@redhat.com>
2021-11-18 14:40:22 -08:00
Lance Ball 3935747b91
chore: use buildEnvs instead of custom buildpack (#663)
The TypeScript templates have been using a small buildpack from the boson
project. The sole purpose of the buildpack was to run the `npm run build`
command so that a TypeScript project would be transpiled before deployment.

The Paketo buildpack for Node.js supports using environment variables at
build time to enable additional scripts to be run, such as `build`. Prior
to the addition of `buildEnvs` by @salaboy in
https://github.com/knative-sandbox/kn-plugin-func/pull/646 it was not
possible to set this value for TypeScript projects. That new feature allows
us to stop using the small buildpack from boson.

Signed-off-by: Lance Ball <lball@redhat.com>
2021-11-16 17:37:33 -08:00
salaboy c70a21e9a4
feat: make SpringBoot template SpringNative by default (#649)
* move springboot template to use springnative

* improving templates to use spring-cloud-deps and ce-type routing

* updating readmes

* removing trailing spaces and adding newline at EOF
2021-11-16 10:31:53 -08:00