* feat: PaC for Gitlab
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: different approach to hostname resolution
Resolve '[*.]127.0.0.1.sslip.io' to cluster node IP.
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: error handling
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: added TODO
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: small refactor
Signed-off-by: Matej Vasek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vasek <mvasek@redhat.com>
Allows buildpacks to be updated by updating to a newer version of
func. Previously, buildpacs were fixed at time of function creation
without a manual edit of func.yaml. Currently using Go as the reference
implementation in this commit.
Refactors PVCSize to treat the Function member as a custom setting,
and the in-code constant as the default.
- Fixes a bug where the PVCSize would reset to the default on deploy
- Allows the default to be changed by future func version, only pinning
the value if explicitly requested by the user.
* fix: deploy task explicitly sets --image flag
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fix: PaC with `pack` sets image param for deploy task
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: unify output of s2i and pack build task
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: unify passing of produced image by build tasks
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: style
Signed-off-by: Matej Vasek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vasek <mvasek@redhat.com>
This commit adds a new error type `UninitializedError` to minimize
redundancy across commands, and applies it in all of the commands which
need an initialized function to operate.
Fixes: https://github.com/knative/func/issues/1744
Signed-off-by: Lance Ball <lball@redhat.com>
- The .gitignore file was always relative to process' current working
directory. Now correctly uses the function root
- The .gitignore file was always being updated, causing its modification
timestamp to be updated multiple times throughout the executaion of
any client commands.
- Adds the ability to override this behavior by commenting out the line
in the .gitignore.
- Adds the ability to request that stamping create an ongoing journal
via a build log file with timestamp prefix (for debugging)
Some Rust libraries using system libraries need pkg-config installed and
it is not present in the base builder, only in the full one.
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* feat: job scaffolding
- Local jobs use a directory rather than filename
This sets up for upcoming scaffolding to use as a space for job
scaffolding code.
- Places all jobs within a 'runs' directory in ./func rather than
'instances' to further differentiate between an instance and a local
run task invoked via .Run
- Updates Jobs' stop handler to have an error return.
- Adds tests which ensure creating and stopping a job are reflected in
the client's .Instances().Local() accessor.
- Adds verbose logging support to the Job implementation.
- Adds a cleanup task which will remove orphaned jobs by, in addition to
previous logic, checking that there is no longer a process listening
on the port indicated by the job.
* fix spelling errors
* fix lint errors
* log job stop errors
* use temp dir for tests
* add back docker build tags and wait
* feat: func domain route
Adds the --domain flag which, when provided sets the value of the
func.domain label on the deployed knative service. The cluster can then
use this to choose which route to create for multi-route clusters.
Optional.
* fix whitespace
* feat: build stamp and log
- Adds an explicit "Stamp" step to client builds
- Building always "Stamps" the function, allowing builds to cache
- Commands which alter function in inconsequential ways update the stamp
as-needed.
- Tests updated to use the API rather than hard-coding func.yaml
* fix misspellings
* temporarily disable Quarkus tests
* stamping also creates necessary run directory
* reenable Quarkus tests
* comments
* feat: func run build options and host runs
- Refactors the run command to include all options from build, in the same
manner as deploy.
- Adds the --container flag (currently defaults to true) which will, when
disabled, invoke the localhost-based runner which, in this commit, is not
yet active.
- Updates help text to match the other command format, and lays the verbal
groundwork for the difference between containerized (currently default)
and non-containerized runs.
* fix e2e
* Update cmd/deploy.go
Co-authored-by: Lance Ball <lball@redhat.com>
* Update pkg/functions/client.go
Co-authored-by: Lance Ball <lball@redhat.com>
* Update cmd/run.go
Co-authored-by: Lance Ball <lball@redhat.com>
---------
Co-authored-by: Lance Ball <lball@redhat.com>
* feat: Envs type
Creates a type for []Env with a String and Slice method for presenting
a set of environment variables in common formats.
* fix: Envs tests
In order to not conflict with (and be confused with) the actual Instance
struct name which is introduced in the scaffolding func runtimes
middleware, the Instance struct herein is renamed InstanceRefs to more
accurately reflect its usage as a manager of references to instances.
* Add Python templates for gunicorn and uwsgi + Flask
These templates represents the most common and simple ways
how to implement FAAS in Python either directly via gunicorn
or using Flask and uwsgi.
* feat: runtime envvar definition in templates
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: use APP_MODULE not app.sh
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: update docs
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* test: better diffing in tests
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: update tests
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: style
Signed-off-by: Matej Vasek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vasek <mvasek@redhat.com>
Co-authored-by: Matej Vasek <mvasek@redhat.com>
* feat: add pvc-size flag to deploy command (#851)
* feat: move pvc-size from deploy to build func configuration section (#851)
* feat: add setting default value for pvc-size in func.yaml (#851)
* feat: change pvc-size to camel case (#851)
* feat: add omitempty to pvcSize (#851)
* feat: regenerate func yaml schema (#851)
* feat: update docs for deploy command (#851)
* feat: update usage help for the pvc-size flag (#851)
The 'go run' does internally compile and it prolongs perceived run-time.
This may lead to timeout in some tests.
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fix: node s2i build when node_modules present
This is workaround for two bug in another components:
* The s2i CLI/library is not honoring the `--exclude` flag when used with
the `--as-dockerfile` flag.
* The node s2i image is not working if project contains `node_modules`
directory with NodeJS modules.
If only one of the bugs above were fixed this commit wouldn't be
necessary.
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fix: project root escape link detection
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fix: ignore node_modules for s2i on cluster build
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: style
Signed-off-by: Matej Vasek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vasek <mvasek@redhat.com>
About the same time that buildStamp was computed .gitignore was modified.
This caused non-deterministic results, because sometimes the
modification was taken into account and sometimed it was not.
Signed-off-by: Matej Vasek <mvasek@redhat.com>
The helper Function constructor which uses a passed function as defaults
was missing map initializations. This could lead to nil pointer
exceptions as it is used by client.Init.
* 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>
* feat(templates): remove liveness and readiness from defaults
The liveness and readiness URLs are defined in code as defaulting to
`/health/liveness` and `/health/readiness` respectively. The deploy
command handles these defaults without requiring them to exist in the
`func.yaml` file. Existing tests for defaults and overrides already
exist, so this change does not require additional tests to be included.
Signed-off-by: Lance Ball <lball@redhat.com>
* fixup: remove default endpoints from repository.go
Signed-off-by: Lance Ball <lball@redhat.com>
---------
Signed-off-by: Lance Ball <lball@redhat.com>
* add option 'branch' to command 'repository add'
* Format go code (#1407)
Signed-off-by: Knative Automation <automation@knative.team>
* chore: refactor repository layout (#1554)
Signed-off-by: Zbynek Roubalik <zroubalik@gmail.com>
* fixup: removes --branch tag from repo commands
Removes the currently in-flight work on the `--branch` tag, simply
supporting a `refspec` on the repository URI. For example,
https://github.com/knative-sandbox/func-tastic#metacontroller will pull
the `func-tastic` repo, and set the currently active HEAD to the
`metacontroller` branch. Adds support for displaying this with the
command `func repo list -v`.
Signed-off-by: Lance Ball <lball@redhat.com>
* fixup: add example to `func repo add` documentation
Signed-off-by: Lance Ball <lball@redhat.com>
* fixup: adjust test output expectations
Signed-off-by: Lance Ball <lball@redhat.com>
---------
Signed-off-by: Knative Automation <automation@knative.team>
Signed-off-by: Zbynek Roubalik <zroubalik@gmail.com>
Signed-off-by: Lance Ball <lball@redhat.com>
Co-authored-by: Yingchun Guo <yingchun.guo@intel.com>
Co-authored-by: knative-automation <automation@knative.team>
Co-authored-by: Zbynek Roubalik <zroubalik@gmail.com>