This allows setting the service account for the resulting knative
service, which must pre-exist in the namespace to let the deployment
succeed.
Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
* fix: bad connection handling for in cluster dialer
Connections were closed from wrong end of io.Pipe
which resulted in confusing error logs.
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* feat: DialContext() better error handling
Now DialContext() returns some errors immediately
instead of deferring it Read/Write operation on the returned connection.
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* feat: DialContext() more better error handling
Now ContextDial() tries to parse socat's stderr and translate it to Go's net.OpError
instead of just creating error with whole stderr embedded in it.
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Apply suggestions from code review
Co-authored-by: Lance Ball <lball@redhat.com>
---------
Signed-off-by: Matej Vasek <mvasek@redhat.com>
Co-authored-by: Lance Ball <lball@redhat.com>
Plumbs through the platform CLI flag to the individual builders by
creating a client-level BuildOption functional option, and modifying the
builder interface to accept an optional set of requested target
platforms.
* test: integration tests for Tekton builds
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: disable s2i integration test for now
Signed-off-by: Matej Vasek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* chore: clean up PaC GitLab test
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: missing EOL
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: generate random password for GitLab
Signed-off-by: Matej Vasek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* 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>