Commit Graph

429 Commits

Author SHA1 Message Date
David Fridrich f6e6021693
Remove container flag - variant I (#2987) 2025-08-20 13:18:49 +00:00
Rayyan 065006cfb1
fix: force container=true for pack/s2i builders when not explicitly set (#2966)
* fix: force container=true for pack/s2i builders when not explicitly set

- Added logic to automatically set container=true for containerized builders (pack/s2i)
  when --container flag is not explicitly provided by user
- Fixes issue where 'func run --builder=pack' would incorrectly run on host instead of container
- Solution checks if builder is pack/s2i and --container flag wasn't changed by user
- Resolves #2955

* fix: enforce container mode for pack/s2i builders

- Auto-set container=true for pack/s2i when --container not explicitly set
- Validate and error on incompatible --builder=pack --container=false combinations
- Handle both flags and FUNC_CONTAINER environment variable

Fixes #2955
Addresses @gauron99 feedback on explicit container=false validation

* added logic to prevent test failure in testfunctionwithoutcontainer and also fixed some formatting issues to prevent test failure

* refactored the way of implementation based on the  suggestion provided also added the test as requested to do so

* fixed the linting errors

* fimplemented  smart builder/container auto-selection
automatically handles pack->container=true and container=false->host builder. also updated the e2e test and added new smartbuilderselection test in run_test.go

* fix linting errors
2025-08-07 12:46:49 +00:00
Rayyan 5ec715f7ac
fix: update console output to show both host and port (#2953)
* fix: update console output to show both host and port using net.JoinHostPort

Signed-off-by: RayyanSeliya <rayyanseliya786@gmail.com>

* test: update regex to match new 'Function running on' output format

Signed-off-by: RayyanSeliya <rayyanseliya786@gmail.com>

* fix(e2e): parse only port from 'Function running on' output

Signed-off-by: RayyanSeliya <rayyanseliya786@gmail.com>

---------

Signed-off-by: RayyanSeliya <rayyanseliya786@gmail.com>
2025-07-30 05:27:39 +00:00
David Fridrich 4c0fa017b7
feat: func invoke get requests (#2942) 2025-07-22 13:18:07 +00:00
David Fridrich 211df1657f
base builder flag (#2935) 2025-07-11 19:58:06 +00:00
Matej Vašek 648c7cd346
doc: prefer ipv6 in sample instead of ipv4 (#2905)
Signed-off-by: Matej Vašek <mvasek@redhat.com>
2025-07-02 08:55:54 +00:00
Luke Kingland 58fb81a41a
feat: add labels to func describe (#2882)
return typed error on describe of uninitialized Function

adds describe tests
2025-07-01 08:12:53 +00:00
Luke Kingland 84d2ad08ad
feat: add noninteractive flow to labels config (#2886) 2025-06-30 09:49:17 +00:00
Luke Kingland 1b83f0b294
feat: improved error on remote deploy without local source (#2885) 2025-06-30 09:49:10 +00:00
Luke Kingland 56e1b0f7f5
feat: add json output to func run (#2893) 2025-06-30 08:02:10 +00:00
Luke Kingland e8ccb1bdcf
feat: add --address option to func run (#2887) 2025-06-27 09:17:07 +00:00
Luke Kingland ffd997c448
feat: add noninteractive path to func config envs remove (#2879) 2025-06-27 07:37:07 +00:00
Luke Kingland c990659a11
feat: check and warn on local to remote branches mismatch (#2884) 2025-06-27 07:26:08 +00:00
Luke Kingland a384d6e728
feat: add noninteractive flow to volume config (#2883) 2025-06-27 07:10:14 +00:00
Luke Kingland 347a901c16
fix: remove redundant initialized check (#2881) 2025-06-27 07:10:08 +00:00
Kapil Sareen 0ed0efbe27
mcp: adds func mcp command (#2836)
Signed-off-by: KapilSareen <kapilsareen584@gmail.com>
2025-06-09 01:41:30 +00:00
Jefferson Ramos f598fa45d0
chore: add tasks related images to func environment (#2839) 2025-05-27 13:41:18 +00:00
Matej Vašek 8e0b752edc
Apply linter suggestions (#2786)
* Refactor: if-elif-else => switch

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* Cleanup: calls to embedded fields

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* Fix: add missing err checks

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* Cleanup: fix format of error messages

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* Cleanup: omit type where possible

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* Cleanup: apply De Morgan's law

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* Cleanup: call ReplaceAll where possible

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* Cleanup: fix format of error messages

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* Cleanup: fix format of error messages

Signed-off-by: Matej Vašek <mvasek@redhat.com>

---------

Signed-off-by: Matej Vašek <mvasek@redhat.com>
2025-04-15 09:43:13 +00:00
Matej Vašek f12acd34de
Refactor if-elif-else => switch (#2785)
Signed-off-by: Matej Vašek <mvasek@redhat.com>
2025-04-14 12:02:16 +00:00
Matej Vašek 3e75e25506
Fix Python S2I On-Cluster build (#2770)
Signed-off-by: Matej Vašek <mvasek@redhat.com>
2025-04-04 05:27:11 +00:00
Luke Kingland 9f6a135702
Python Middleware v2 Scaffolding (#2685)
* 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
2025-04-02 10:44:05 +00:00
Kapil Sareen 4ade4ab3d9
refactor data member of the InvokeMessage to be []byte (#2733)
Signed-off-by: KapilSareen <kapilsareen584@gmail.com>
2025-03-06 13:45:00 +00:00
Kapil Sareen 91daa09682
Bug: Fixes Incorrect Implementation of --file Option (#2715)
Signed-off-by: KapilSareen <kapilsareen584@gmail.com>
2025-02-26 19:23:29 +00:00
Luke Kingland 1d26629b51
feat: remote storage class (#2693)
* feat: remote storage class

* why isn't the schema regenerated on each make
2025-02-19 07:35:47 +00:00
Matej Vašek 9c0c216193
Optimise func-utils image (#2686)
* Use command instad of script in some tkn tasks

The "script" requires /bin/sh present in the image.

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* Add s2i-generate command to func-util image

The command encompasses some logic previously implemented as shell
script defined in tekton task. This allows us to remove sh/shell from
the func-util image.

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* Make func-util image "FROM scratch"

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* Change func-utils image tag latest->v2

Since there are backward incompatible changes we must not change how
'latest' tag work (at least for some time).

For this reason we change tag to v2, so newer versions of func use that
and older use 'latest' that is compatible with them.

Signed-off-by: Matej Vašek <mvasek@redhat.com>

---------

Signed-off-by: Matej Vašek <mvasek@redhat.com>
2025-02-06 07:02:13 +00:00
Matej Vašek 4de372564a
Go tar (#2672)
* Fixed pod readiness check

Detect also if pod did not exited prematurely.

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* Removed dependency on sh/tar from alpine image

This commit removes depencency on sh and tar binaries by implementing
the logic in our func-util binary.

Signed-off-by: Matej Vašek <mvasek@redhat.com>

---------

Signed-off-by: Matej Vašek <mvasek@redhat.com>
2025-01-28 00:45:56 +00:00
David Fridrich 020dd96d61
test for func run with digested image override (#2650)
* run test for digested img

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

* misspell

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

---------

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
2025-01-21 18:48:09 +00:00
David Fridrich cd59f97595
Remove gauron image references in code (#2647)
* remove gauron image references

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

* remove image

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

* remove gauron username

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

---------

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
2025-01-10 19:03:17 +00:00
David Fridrich 582536f922
add repository to the credentials prompt (#2596)
* simplify more

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

* fix

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

* fix creds test

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

* name fix

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

* naming

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

---------

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
2024-12-02 16:22:45 +00:00
Matej Vašek 3d19d9bda3
Update golangci-lint (#2606)
Signed-off-by: Matej Vašek <mvasek@redhat.com>
2024-12-02 14:40:48 +00:00
Tarun Chinthakindi bf9a70a648
Add Validation check to see if func is already initialized (#2574)
* Add Validation check to see if func is already initialized

* Refactor func init check in build.go
2024-11-15 13:07:43 +00:00
Matthias Wessendorf ff6053a92d
💄 make array when filters is nil (#2569)
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
2024-11-05 14:05:39 +00:00
Luke Kingland eb17ea77e8
fix: make image digest check more permissive (#2510)
* fix: make image digest check more permissive

* use extant implementation for digest check
2024-09-24 07:14:48 +00:00
Matej Vašek 63e3e52294
Implement minimalistic socat in Go (#2479)
Signed-off-by: Matej Vašek <matejvasek@gmail.com>
2024-09-24 05:57:35 +00:00
Matej Vašek 42ed4d8096
Fix test failures in OCP prow CI (#2503)
* Fix test failures in OCP prow CI

Ensure that ServeRepo() make copy of repo from ./testdata and serves the
repo from that copy.

Signed-off-by: Matej Vašek <matejvasek@gmail.com>

* fixup: typo

Signed-off-by: Matej Vašek <matejvasek@gmail.com>

---------

Signed-off-by: Matej Vašek <matejvasek@gmail.com>
2024-09-16 06:57:35 +00:00
David Fridrich 8dce9bcaa7
fix: HOME with different permissions (#2361)
* fixed integration tests

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* docker config.json credentials test when HOME not defined

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* pack test

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* simplify

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* og creds, small fixes

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* s2i test no home

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* remove unnecessary stuff

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* deploy test without home

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* confict fix after rebase

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* move test, dont delete

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* runtime change

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* node image signals fixed and smaller size for GH actions

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* return err

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* clean up comments

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* creds and test

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* test return commented code

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* config warning

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* cleanup

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* cleanup

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* fix

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* fix

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* skip test for windows

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* skip for prow

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

* fix repo on create, move warning up a function

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

* fix print

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

---------

Signed-off-by: gauron99 <fridrich.david19@gmail.com>
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
2024-09-09 07:20:04 +00:00
David Fridrich a13056e4ee
migrate client-pkg to client/pkg (#2477)
* migrate

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

* migrate more

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

* sort imports

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

---------

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
2024-09-04 10:08:32 +00:00
Matej Vašek e937035dae
Incorporate s2i CLI into func-utils image. (#2473)
Signed-off-by: Matej Vašek <matejvasek@gmail.com>
2024-09-03 13:03:21 +00:00
Matej Vašek 2e4d157162
On cluster s2i build for Go (alternative version) (#2471)
* Prepare util image to accomodate multiple cmds

As of now func-util image has only one command of our own -- "deploy".
This commits prepares grounds for one additional command named "scaffolding".
The commands will be implemented in one binary and dispatched over
argv[0] using symlinks. Kinda like busybox does.

Signed-off-by: Matej Vašek <matejvasek@gmail.com>

* Add scaffolding for on-cluster build

Added new build step in tekton pipeline that scaffolds main() for Go
porject when using s2i builder.

Signed-off-by: Matej Vašek <matejvasek@gmail.com>

* Better docker build caching

This will cache dependencies between docker builds.

Signed-off-by: Matej Vašek <matejvasek@gmail.com>

* fixup: perms

Signed-off-by: Matej Vašek <matejvasek@gmail.com>

* fixup: remove broken check

Signed-off-by: Matej Vašek <matejvasek@gmail.com>

* fixup: remove test because of 'no space left on device'

Signed-off-by: Matej Vašek <matejvasek@gmail.com>

* Make func-util rootfull

Signed-off-by: Matej Vašek <matejvasek@gmail.com>

---------

Signed-off-by: Matej Vašek <matejvasek@gmail.com>
2024-09-03 12:33:17 +00:00
David Fridrich ca61712d4b
allow digested images to be 'run' (#2445)
* init fix

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* dont override direct deploy tag, more tests

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* fix

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* dont validate with tagged image, fix comment

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* init run fix for --image

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* init

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* int test, add valid untdigested images to run

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* check images passed to runner for func run command

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* fix build/deploy image passing bug add test

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* fix

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* remove extra printing

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* merge functions to digested

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* misspell

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* simplify

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

* quick fix

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

* remove prints, comment

Signed-off-by: David Fridrich <fridrich.david19@gmail.com>

---------

Signed-off-by: gauron99 <fridrich.david19@gmail.com>
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
2024-08-28 06:13:02 +00:00
David Fridrich bda9487aa8
fix: Allow undigested images to be deployed directly (#2390)
* init fix

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* dont override direct deploy tag, more tests

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* fix

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* dont validate with tagged image, fix comment

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* fix

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* simplify

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* comments

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

---------

Signed-off-by: gauron99 <fridrich.david19@gmail.com>
2024-07-16 14:08:55 +00:00
Matej Vašek a2a97dbd85
Fix linter issues (#2420)
* chore: fixed typos

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* chore: removed trailing whitespaces

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* chore: added EoLs at EoFs

Signed-off-by: Matej Vašek <mvasek@redhat.com>

---------

Signed-off-by: Matej Vašek <mvasek@redhat.com>
2024-07-09 13:48:22 +00:00
Matej Vašek 3e8dc4ddc1
feat: embed tkn tasks in func binary (#2396)
* feat: embed tkn tasks in func binary

Embed Tekton tasks for direct on cluster build.

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* feat: embed tkn tasks in func binary

Embed Tekton tasks for PaC build.

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* feat: added tkn-tasks sub-command

This new command prints tektons tasks in form of multi-document yaml,
these tekton tasks may requird to be installed for some advanced
functionality.

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* chore: remove unused files

Signed-off-by: Matej Vašek <mvasek@redhat.com>

* feat: make deployer image settable via linker

Signed-off-by: Matej Vašek <mvasek@redhat.com>

---------

Signed-off-by: Matej Vašek <mvasek@redhat.com>
2024-06-26 17:48:06 +00:00
norbjd d8793d48d9
Clarify registry-insecure flag description (#2348)
Related to #2335
2024-06-11 13:56:01 +00:00
norbjd 056f3ff744
Honor registry-insecure flag in deploy command (#2335) 2024-06-07 00:04:43 +00:00
David Fridrich aa909bdc44
Run func without HOME defined/ unaccessible .config dir (#2236)
* fixed integration tests

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* def creds back

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* docker config.json credentials test when HOME not defined

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* pack test

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* simplify

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* og creds, small fixes

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* s2i test no home

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* remove unnecessary stuff

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* deploy test without home

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* confict fix after rebase

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* move test, dont delete

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* runtime change

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* node image signals fixed and smaller size for GH actions

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* return err

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* cred test

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

* clean up comments

Signed-off-by: gauron99 <fridrich.david19@gmail.com>

---------

Signed-off-by: gauron99 <fridrich.david19@gmail.com>
2024-06-04 00:04:52 +00:00
Luke Kingland e6fa020f78
fix: test and namespace isolation (#2187)
* fix: namespace logic cleanup and test isolation

- Pulls logic for defaulting to active namespace (K8S) moved UP to CLI during
  flag default calculation.
- Pushes logic of deciding between f.Namespace vs f.Deploy.Namespace down into
  implementations.
- Updates some tests which needed to have their environment cleared.
- Refactors Pipelines tests to use client API.
- Removes namespaces as a state variable all structures, instead passing as
  an argument.
- Moves FromTempDirectory to testing package for use outside cmd.

* fix spelling errors

* fix: pipelines remover always returned (empty) error

* update tekton namespace handling

* fix: remove deprecated GitLab config: max_concurrency
2024-05-17 08:25:46 +00:00
Matej Vašek 6b78b7f5c5
Improve utility image (#2246)
* The socat/tar image is now build in GH Actions.
* We use new tiny deploy binary for deployment instead of whole func.

Signed-off-by: Matej Vasek <mvasek@redhat.com>
2024-03-26 11:30:56 +00:00
Luke Kingland 9beea04064
Basic auth (#2242)
* feat: host builder basic auth

* update tests

* mark oci basic auth flags hidden

* cleanup
- Remove debug statements
- Fix test race
- Update licenses

* spelling and linting errors
2024-03-26 09:17:21 +00:00
Luke Kingland e0c4d7bf91
cleanup unused args (#2240) 2024-03-25 08:02:00 +00:00