* Make build binds more similar to runtime binds
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* Added comments on struct
Signed-off-by: Matej Vašek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* Added tests for s2i build with private Go module
The test is for now skipped since host binds are not yet implemented for s2i.
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* User "host" network mode for s2i build on Linux
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* Implement host binds for local s2i build
Signed-off-by: Matej Vašek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* 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
* Allow host mounts for build pahse.
This is in particular useful for using paket bindings,
e.g. to inject git credentials into build process.
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* Mark test as a integration test
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* fixup: style
Signed-off-by: Matej Vašek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* Use tiny instead of base BP builder.
* Decrease minimal required Go version.
* Make the self-signed certificate CA==true so it works with update-ca-trust utility.
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* gomod
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* create hack/main.go, delegate, init dynamic updatic of version in allocate.sh, bump github version, unify those versions to v68
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* new file, fix, more updates
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* fix
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* bump
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* fix
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* simplify
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* pr exists, check
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* simplify, fix some stuff
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* simplify further
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* fix sed error, more comments
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* return to main, dont exit
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* single execute, dont force push, return Run()
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* fix printing because no 'ready' is at the end
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* misspell
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* context moved to main
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* updt-builder
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* update-knative-components fixes, pagination, simplify using go templates, json file as source of truth
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* fix error check
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* add json, add kind version, comments
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* fix versions json
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* add newline
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* add tests, fix structs, locally generate files
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* fix comment inline
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* redo the structure to use cmd/ instead of big hack/main, separate, add \n to generated .json
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* simplify test, fix linter errors
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* small additions, comments
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* update autogen comment
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* gomod
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* localize const to test
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* suggestions
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* makefile
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* makefile, update builder target
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* prefix target with wf
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
---------
Signed-off-by: David Fridrich <fridrich.david19@gmail.com>
* 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>
Some tools dislike having questionable symlinks in git repository so we
must create this symlinks dynamically in the test instead of having it
committed into the repository.
Signed-off-by: Matej Vašek <matejvasek@gmail.com>
* 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>
* Remove usage of ttl.sh
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* Fix detection of host resolution failure
Signed-off-by: Matej Vašek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* Fix some linter errors
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* fixup: set func registry
Signed-off-by: Matej Vašek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* 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>
* Improve build caching for s2i local build
Use 'RUN --mount=type=cache...' to cache build artifacts,
e.g. the local maven repostory.
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* Update podman version in tests
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* fixup: set buildopt version to buildkit
Signed-off-by: Matej Vašek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vašek <mvasek@redhat.com>
When running on Windows the path separators in symlink target is
backslash. This must be fixed up when uploading source code into docker
daemon or into cluster volume.
Signed-off-by: Matej Vašek <matejvasek@gmail.com>
* fix: allow sub-pkgs in Go functions
Signed-off-by: Matej Vašek <matejvasek@gmail.com>
* fixup
Signed-off-by: Matej Vašek <matejvasek@gmail.com>
* fixup
Signed-off-by: Matej Vašek <matejvasek@gmail.com>
* fixup
Signed-off-by: Matej Vašek <matejvasek@gmail.com>
---------
Signed-off-by: Matej Vašek <matejvasek@gmail.com>
It appears that Go's MatchReader() returns true only if some new lines
are written to the writer after the searched word. It mostly all right
because socat actually writes several more lines to stderr. However this
new implementation is better it should signal immediately when searched
patter is written to the writer.
Signed-off-by: Matej Vašek <matejvasek@gmail.com>
* 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>
* 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>
* 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>
* 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>
* tests: remote unncessary software from GH VM
Previously tests were failing with no space left on device.
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* fixup: updated generated code
The codegen should have been updated in prior PR but we forget do do it
there.
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* test: wait for gitlab setting effect
Signed-off-by: Matej Vašek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* Fixed detection of PaC controller URL for unprivileged users.
* Use fn.Deploy.Image before fn.Image since the fn.Image may not be
populated.
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* test: fix error when setting gitlab settings
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* test: replace sleep with active condition check
Signed-off-by: Matej Vašek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* chore: update tekton
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* fixup: param introduced in new version of gitlab lib
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* chore: update tekton,PaC used in test env
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* fixup: disable affinity assistant for tekton
The affinity assistant is causing troubles in testing KinD cluster.
Signed-off-by: Matej Vašek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* Always try daemon push first
Daemon push is now tried always first withouth using
net.DefaultResolver.LookupHost() to guess if the registry is reachable
from the daemon. If the daemon returns error contaning "no such host"
then use manual push with custom transport.
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* Rework image pusher tests
Merged daemon push and non-daemon tests to one table driven test.
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* Use image index not just image
This results in "multi-arch" image with single architecture this may
seems weird but it helps multi-arch clusters to run pods on approprieate
nodes.
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* fixup: style
Signed-off-by: Matej Vašek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* fix: default NS for PaC
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* fix: make error non-fatal
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* fix: pass correct image to PaC
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* chore: enable gitlab test
---------
Signed-off-by: Matej Vašek <mvasek@redhat.com>
* 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
The current binaries and allocation scrips are very CI-centric, this PR
takes a few steps to make them more friendly to running in a dev
environment; mainly centered around not polluting global scope (keeping
filesystem mutations in a relative local directory).
- binaries (and kind kubeconfig) are installed in ./hack/bin
- adds /hack/bin to .gitignore
- binary paths can be overridden via env vars FUNC_TEST_{name}
- binary fallback is system-installed (when binaries.sh not run)
- Cleanup of the UX, including colors and some shared helpers via
library.sh
- Removes `yq` as the hack that required it appears to no longer be necessary.
- Adds some notes for Nix users
- Better error messaging when !linux
- Refactors the installers to pipe directly to tar rather than touch
disk.
- begin to standardize on hyphens in filenames
* 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>
* fix env var casing otherwise flags with hyphens will continue to have hyphens
* Introduce an --registry-insecure flag
* fix build tests
* fix TestList
* fix insecure (http) push
* update go-http templates to match new idiomatic handler
* update embedded templates
* bump func-go dependency
* regenerate templates
* update template deps again
* run embed again
* update test fixtures
* use go1.22 in CI
* setup metallb right after creating k8s cluster
* func-go v1.21.2
* revert static http handler signature update
Since the Pack and S2I builders do not yet use the new func-go
middleware, we are not yet able update the static static handler template.
* func-go v0.21.3
* revert static handler template test
* update embedded template fs
* try go 1.21 throughout
---------
Co-authored-by: Luke Kingland <luke@lukekingland.com>
* forced namespace change, deletes old func, kind works
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* new .deploy.image field
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* building
* building
* add first iteration of complete functionality with f.Build.Image and f.Deploy.Image that STILL contains a workaround for image digest which is populated on Push instead of Build
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* base tests fixes for compile
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* fix base tests2 for now, integration test has a possible TODO
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* new generated schema
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* fix some tests using .Image and create new test
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* remove nested .func
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* get rid of test
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* remove my debug test
* fix namespace change test
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* fix pipeline run to use .Deploy.Image
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* fix TestDeploy_ConfigApplied and change pipelines image being used
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* fix some tests
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* fix actions - return value, configApplied and registry on subsequent deploy different
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* update empty image in tests issue
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* fix client.Apply tests with passing image value to .Deploy after push
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* openshift override on namespace change forced, remove useless print
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* printing fixes, reviewdog, buildConfig return
* fix pipelines test by feeding image name to .Deploy, comments
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* update more tests
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* fix
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* new test, comment
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* misspell
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* remove unnecessary comments
* fix from review
* namespace updated with 2 fields; new error definitions; deploy functionality cleanup
* remove k8s service host var in test
* error definition; fix client tests; cli delete fixup
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* new schema
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* namespace fixes; remover arguments fix
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* delete_test cmd
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* schema, new local remote flag instead of deploy
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* fix test to have now required namespace
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* add namespace check, test action
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* fix integration deploy test, comments
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* fix wrongly removed namespace
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* small changes to remover and ns added to its tests
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* test moving logic to client
* fix deploy bug, remove verbose for better logs
* pipelines, clean remover
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* newline
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* namespace required in remover, and fixed remote deployer - returns ns
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* fix integ test for pipelines.Run
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* cleanup
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* registry update change on deploy, some prints
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* new deploy tests and mock update
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* new tests, ns determination in mocks
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* deploy digested img doesnt populate build
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* comments
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* remove todo
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
---------
Signed-off-by: gauron99 <fridrich.david19@gmail.com>
* host builder nonregular files
* disallow links outside root
* add back in correct path support for windows
* code review updates
* host builder file test
* windows-specific absolute link check
* windows-specific test
* refactor
Resolve the link target one level higher such that it can be used
when creating the tar header without repetition.
* validate link header targets
* expand link test
* merge os-specific test cases
* remove os filter and unused arg
* Making updates to Spring boot templates, as suggested by @trisberg
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
* 🤖 We touched the samples, so adding the generated thing
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
* Bump JDK Builder to 21
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
* Some more java 21 setters
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
---------
Signed-off-by: Matthias Wessendorf <mwessend@redhat.com>
* fix: GitLab test
Update to URL used in newer versions of GitLab.
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* fixup: increase resource limit
Signed-off-by: Matej Vasek <mvasek@redhat.com>
---------
Signed-off-by: Matej Vasek <mvasek@redhat.com>
* Log if image is referenced by tag
Signed-off-by: AdamKorcz <adam@adalogics.com>
* fixup: do not warn with standard images
Signed-off-by: Matej Vasek <mvasek@redhat.com>
---------
Signed-off-by: AdamKorcz <adam@adalogics.com>
Signed-off-by: Matej Vasek <mvasek@redhat.com>
Co-authored-by: Matej Vasek <mvasek@redhat.com>