* refactor python http template
* python http scaffolding
* add python to make update-runtimes
* integrate python scaffolding with func run
* python http template
* reorganize python scaffolding
* cancellation stopgap
* documentation and logging cleanup
* Python Middleware v2 - Scaffolding
* base layer cache
* remove wsgi and flask templates
Inbuilt templates should be limited to a base http and cloudevent
integration, with anything beyond this falling to the officially
supported functions samples repository.
* update python cloudevents runtime in makefile
* python cloudevents middleware
* add python .venvs to gitignore
* clean up venvs on make
* add missing dependencies to python http tempklate
* set python cloudevents manifest
* further cleanup of repository impl
* cleanup
* ignore venv when building runtime container
* set listen address on python container
* remove unnecessary python runtime update from makefile
* remove debug statements and improved comments
* enable scaffolding python funcs in s2i builder
* set listen address on all containers built by s2i
* python s2i integration
* regen fs
* cleanup
* enable host builder
* fix manifest inheritance
* regen fs
* bug fixes
* regen docs
* cleanup and linter error fixes
* conditional python host builder test
* misspellings
* disable python E2E
Until the Python middleware is supported by the Pack builder, the E2E
tests will need to be disabled.
* install python for presubmit tests
* use linux for test builder runs
The target platform for a test needs to be a platform which is available
in all test base images. That's usually linux. Using current OS would
fail, for example, building python containers on MacOS because the
official Python base image has no darwin layer.
* fix ineffasign
* set python ce template to python 3.9
* regen fs
* windows python tests
* python templates README
* feat: enable s2i for python
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: update zz_filesystem_generated.go
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: test
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: test
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: test
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: script
Signed-off-by: Matej Vasek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vasek <mvasek@redhat.com>
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>
* 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>
* 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>