Commit Graph
105 Commits
Author SHA1 Message Date
Vardhaman SuranaandGitHub 2c328819f6 Add informers and internal go routines in manager (#2870)
* used manager's Add function in more places
* exit when ctx.Done is received in archivePruner go routines
* fix manager tests
* fix data race
* added more gpm function in manager and removed manager from a util function
* closed unused channel and stopped ticker after context is done
* added log statements
* used context.Done inside function instead of stopper channel
2023-11-10 12:42:21 +05:30
Vardhaman SuranaandGitHub c4ec3d0de0 added manger to keep track of go routines in the services (#2869)
- added manager to wait for all go routines to end before exit
- code refactor
- renamed Manafer to Interface and GoRoutineManager to GroupManager
- replaced some go routine calls with manager Add func
- added unit tests for manager
2023-11-07 15:30:48 +05:30
Sanket SudakeandGitHub 4018cdd748 Add interfaces for executor/fetcher/storagesvc clients (#2867)
Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2023-11-06 16:09:51 +05:30
Sanket SudakeandGitHub 0d241c72fe Test for httptrigger and functions container/newdeploy (#2861)
* Test for httptrigger and functions
* Fixes with multierror
* review changes

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2023-10-27 15:05:20 +05:30
fed770416e Envtest based integration tests for Fission (#2858)
* skeleton for envtest fission
* Refactor code and add CLI test
* hack
* Update server test
* remove skip-ci for lint tests
* Pass client go storagesvc
* Add clientGen interface across code
* Fix storagesvc test
* Fix cmd client
* add retry in server test
* Fix concurrenct access to pool deployment
* Remove old executor test
* get rid of ginkgo/gomega
* disable flaky test
* flaky test
* revert ci change
* handle err from ParseBool

---------

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
Co-authored-by: Pranoy Kundu <pranoy1998k@gmail.com>
2023-10-26 12:09:11 +05:30
Vardhaman SuranaandGitHub 0f197d28ec added client generator inteface (#2854)
* added client generator inteface
* start router service asynchronously

Signed-off-by: Vardhaman Surana <vardhaman.surana@infracloud.io>
2023-10-18 18:59:28 +05:30
Sanket SudakeandGitHub a264ea977e Remove controller component from Fission (#2850)
* Remove controller component from Fission
* Cleanup at few more places

---------

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2023-10-17 09:29:13 +05:30
Sanket SudakeandGitHub b012d5381e Update kubernetes libs to latest (#2834)
- k8s.io/api v0.28.1
- k8s.io/apiextensions-apiserver v0.28.1
- k8s.io/apimachinery v0.28.1
- k8s.io/client-go v0.28.1
- k8s.io/metrics v0.28.1
- sigs.k8s.io/controller-runtime v0.16.1
- sigs.k8s.io/controller-tools v0.13.0

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2023-09-23 09:10:51 +05:30
Shubham BansalandGitHub 1363b165f2 security upgrade for alpine to 3.18 (#2792) 2023-05-16 17:45:36 +05:30
Shubham BansalandGitHub 71f5082b2e security upgrade for alpine to 3.17 (#2723) 2023-02-17 21:10:02 +05:30
Nikhil SharmaandGitHub 47742fc049 remove .* suffix after Dockerfile (#2685)
Signed-off-by: Nikhl Sharma <nikhilsharma230303@gmail.com>

Signed-off-by: Nikhl Sharma <nikhilsharma230303@gmail.com>
2023-01-11 14:04:56 +05:30
Sanket SudakeandGitHub 4ad6202af3 Use client generator to generate all k8s clients and add respective client-go metrics (#2668)
* Define client generator to generate all k8s clients
* Increase QPS and burst values
* Capture client-go metrics
* Support for controller runtime metrics

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2022-12-13 14:19:36 +05:30
8b94a2ebb0 Deployments to work with specific namespaces instead of all namespaces (#2635)
* remove namespaceAll in deployments
* remove GetNamespace function from informer
* added logger and improvement for naming
* move reaper logic to utils

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
Co-authored-by: Sanket Sudake <sanketsudake@gmail.com>
2022-11-29 17:09:51 +05:30
Sanket SudakeandGitHub 516f1fca95 Backup prometheus data from CI run (#2636)
* Backup Prometheus data from CI run
* use `kube-prometheus-stack` instead of `prometheus`
* Add dump-analyzer script
* Fix monitor helm chart values
* Update readme for dump-analyzer
* Disable grafana and alertmanager

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2022-11-25 15:48:09 +05:30
Shubham BansalandGitHub 2bb8b34212 Allow empty namespace for fission function and builder (#2621)
Currently, we create Fission resources in the default namespace, function-related resources are created in the fission-function namespace, whereas builder resources are created in the fission-builder namespace. This causes confusion for a lot of users.
In this fix, we allow the user to set the function and builder namespace empty so that function and builder resources are created in the same namespace as the function resource always.

If the user desires older behaviour they can functionNamespace and builderNamespace the same previous before the upgrade.

* use default namespace for fission  function and builder
* support for existing fission namespaces
* Replace builder and function namespace with template
* Fix namespace creation template

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2022-11-16 22:16:05 +05:30
neha_guptaandGitHub 6672271882 Run canary config server separate from controller (#2617)
* add canary config server
* remove the canary config code from the controller
* remove port exposure for canary config
2022-11-15 13:08:42 +05:30
de170fd48c Add validation/mutating webhook server for Fission custom resources (#2608)
* add webhook server
* add metrics port
* Add self-signed cert generation in helm chart for webhooks (#2611)
* remove cert-manager installation
* update fission webhook charts
* remove extra cluster role
* add mutating webhook for pkg creation
* Service name and bundle fixes (#2614)
* caBundle templating
* Rename fission.svc to fission-webhook.svc
* update package build status

Co-authored-by: shaunak_deshmukh <shaunak@infracloud.io>
2022-11-13 17:31:31 +05:30
Shubham BansalandGitHub 987d4e8f10 List fission resources in specific namespace instead of all namespace (#2604) 2022-11-08 10:25:09 +05:30
81091f54ed Use Kubernetes Client instead of Controller APIs from CLI (#2605)
Use the Kubernetes and Fission Client from CLI instead of Controller API.
This removes port-forwarding for the controller across Fission CLI mostly.

* Use configurable client in CLI
* Move resource namespace under cmd client
* use server to get fission version
* get archive with URL

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
Co-authored-by: Sanket Sudake <sanketsudake@gmail.com>
2022-11-07 21:42:39 +05:30
neha_guptaandGitHub 6decb28aad use controller-runtime signals (#2589) 2022-10-31 12:03:06 +05:30
Sanket SudakeandGitHub 5b8d569e1d Remove unwanted permissions from Fission components (#2568)
* Remove unwanted permissions from Fission components
* Remove unwanted permission from buildermgr
* Remove rbac permissions from controller
* Remove unwanted namespace permission
* Remove unwanted fission resource permissions
* Add deployment list permission for buildermgr
* add deployment create permission for buildermgr
* Update action version
* Add rolebinding permission for buildermanager
* Reduce permissions for fetcher and builder components
* Aded deployment delete permission to buildermgr
* Add logger to wait crds function
* Revert "Grant CustomResourcedefintion read permission to specific components (#2567)"

This reverts commit 1f23c1b57d.

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2022-10-13 15:04:49 +05:30
neha_guptaandGitHub 40bbd439b2 add namespace param for fn and env (#2556)
This PR moves fission CLI as closer as possible to kubectl command behaviour.  We have improved namespace handling behaviour across CLI.

* add namespace param for fn and env
* use common fn for ns check
* update validation
* default namespace for httpTrigger, env and package, config and triggers
* use default ns
* add namespace filter to spec
* add forceNamespace flag
* set current namespace
* add default namespace in config
* add namespace specific destroy
* add all namespace in the list of resources
* add namespace as global tag
* use %s instead of %v
* add test cases for namespace
* use ns in get all functions
2022-10-11 13:23:47 +05:30
Sanket SudakeandGitHub b1eed7a5d5 Capture context from cobra CLI and pass forward (#2551)
Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2022-09-22 13:54:05 +05:30
Sanket SudakeandGitHub f3f0c83c6f Optimize Github action workflows for Go version identification (#2533)
Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2022-09-06 17:30:21 +05:30
Sanket SudakeandGitHub 5332d213b7 Update go dependencies to latest and actions used in workflows (#2510)
* Updated all Go language dependencies to latest version available
* Formatted all files as per gofmt
* Update Golangci-lint version to 1.48.0
* Updated action version wherer application in Github workflows
* Updated Kubernetes version to latest available
* Remove "io/ioutil" references and replace with "io"/"os"

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2022-08-19 13:36:37 +05:30
Sanket SudakeandGitHub 45c81228b9 cleanup: Remove Opentracing support as no active users (#2196)
References:
[1] #2193
[2] https://fissionio.slack.com/archives/C3LUX6BBP/p1631706812069300

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2022-07-12 14:52:17 +05:30
Shubham BansalandGitHub 70486d35ff Upgrade alpine version from 3.15 to 3.16 (#2480) 2022-07-11 16:06:53 +05:30
f7a334ffe1 CLI to operate archives managed by Storage Service (#2450)
* Add API for listing storage service archives
If id is mentioned we allow user to download specific
archive. If id is not mentioned we list all archives
present with storage service.
This will allow us to build CLI with storage service
and help users to debug storage service.
* Added commands for storagesvc cli and functionalities
* Reusing code and added geturl and download.
* Fixed geturl for localstorage.
* Fixed description of fission archive command
* Added unit tests for function getstorageurl
* Added integration test for archive cli




Co-authored-by: Sanket Sudake <sanketsudake@gmail.com>
2022-06-15 18:53:36 +05:30
Shubham BansalandGitHub ff71a6b435 Avoid fission installation failure due to analytics connection error (#2457) 2022-06-15 11:32:06 +05:30
Shubham NazareandGitHub 0f04a92e21 Fix pre-check failure during new fission installation (#2437)
* Add pre-check flag to root cmd
* Make precheck flag optional
* Remove pre from global optional flag

Signed-off-by: Shubham Nazare <shubham4443@gmail.com>
2022-06-13 11:48:26 +05:30
Sanket SudakeandGitHub d4569eb7e6 Use Clientset interface instead of type for Fission/kubernetes clients (#2416)
Using interface makes it easy to create a fake client and unit test
a specific portion of the code. We should be able to more write unit
test and increase coverage of code with this change.

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2022-04-21 16:49:52 +05:30
Sanket SudakeandGitHub 3e8f31b156 Use common httpserver across fission (#2409)
* Defining httpserver package to capture httpserver shutdown and
introduces uniform running of http server across codebase.
* Add unit tests for httpserver

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2022-04-14 11:35:58 +05:30
Sanket SudakeandGitHub 0b2419c724 Remove deprecated Fission Azure Storage Queue connector (#2404)
We are removing Fission deprecated Azure Storage Queue connector and
planning to adopt Keda going forward to have better
delegated functionality and more rich support.

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2022-04-06 15:13:56 +05:30
Sanket SudakeandGitHub 3495ea14a0 Remove deprecated Fission Nats connector (#2403)
We are removing Fission deprecated Nats connector and
planning to adopt Keda going forward to have better
delegated functionality and more rich support.

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2022-04-06 13:41:38 +05:30
d4f58bde5a Added metrics for fission mqtrigger and optimizations in trigger subscriptions (#2399)
- Use mqtrigger watch instead of polling mqtrigger every 5 seconds
- Added metrics to monitor no of subscriptions, and no of messages per subscription
- Add standard go metrics exported by prometheus
- Enable prometheus discovery for mqtrigger pod
- Optimized mqtrigger manager cache
- Add unit tests for mqtrigger cache

Co-authored-by: Sanket Sudake <sanketsudake@gmail.com>
2022-04-05 21:51:05 +05:30
Ankit ChawlaandGitHub 8387ab3f00 Upgraded alpine version (#2391) 2022-03-17 17:18:58 +05:30
Shubham NazareandGitHub 7119913a12 CLI Check (#2341)
* added checks for kubernetes-version, fission-services and fission-version

* refactor kuberntes and fission version check
2022-02-07 11:01:20 +05:30
Pradeep Lakshmi NarasimhaandGitHub b48da4446c feature: Basic auth support with fission router (#2292) 2022-02-01 19:40:40 +05:30
Sanket SudakeandGitHub 359ba39993 Spell fixes across code (#2288)
Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2021-12-28 18:40:07 +05:30
Sanket SudakeandGitHub 0ef131ee60 Capture error from schema check in preupgrade verification (#2285)
Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2021-12-21 20:25:51 +05:30
Sanket SudakeandGitHub f86a1f2349 Update alpine base image to 3.14.3 and security fixes (#2266)
* Update alpine base image to 3.14.3
* Security: Update github.com/opencontainers/image-spec to v1.0.2

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2021-11-23 10:10:07 +05:30
Sanket SudakeandGitHub c5ae216a4e Capture os signals to gracefully shutdown fission components (#2261)
- Currently, fission components don't handle shutdown signals.
So we don't get any to do the required cleanup before the fission process
exits. Adding signal capture process with cancelling context so
that all dependent processes stop working when the process gets term
signal.
- Set log level to error in otel shutdown function

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2021-11-11 17:02:11 +05:30
Sanket SudakeandGitHub 6073e828cb Capture fission-bundle exit logs with sync (#2260)
Currently when any of fission component exists, we fail to sync
log as logger.Sync is not called before exiting.
Restructured code so that we can logger.Sync before existing from
the fission bundle component execution.

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2021-11-11 10:05:22 +05:30
Sanket SudakeandGitHub 7c80b74804 Add command to generate Fission CLI docs (#2247)
* Add command to generate Fission CLI docs
* Minor fixes identified by LanguageTool

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2021-11-02 17:09:31 +05:30
Eng Zer JunandGitHub 7d904a9401 refactor: move from io/ioutil to io and os package (#2236)
The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil. This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2021-10-23 17:14:12 +05:30
Sanket SudakeandGitHub 93887eac1e Improve namespace checks in pre-upgrade verification (#2226)
1. Pass context to required functions
2. Avoid function spec reference namespace check if empty
3. Log errors observed in function reference namespace checks

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2021-10-13 12:10:09 +05:30
Sanket SudakeandGitHub 690420b0bf Update docs link to fission.io/docs (#2210)
Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2021-09-28 17:56:43 +05:30
Sanket SudakeandGitHub 2dd2d044ff fix: Goreleaser for build and release (#2189)
* Add goreleaser for building binaries
* Update CONTRIBUTING.md
* Break release scripts for goreleaser

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2021-09-21 15:29:40 +05:30
Sanket SudakeandGitHub 43e8c5456a fix: Use standard env variables for opentelemtry (#2194)
Opentelemetry defines standard variables which are supported by multiple observability platforms.

[1] https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-environment-variables.md
[2] https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md

By defining support for standard env vars, Fission open telemetry support can be leveraged with different
platforms such as NewRelic, SigNoz, DataDog etc.

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2021-09-16 17:48:26 +05:30
Sanket SudakeandGitHub b260cdf0be feature: Capture important events with span in fission and add trace id in logs (#2180)
* Capture important open telemetry events with span in fission
* Add context to missing HTTP calls
* Add Trace ID in logs
* capture trace id in the proxy handler function
* Always registry tracer to get traceID

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
2021-09-15 16:41:59 +05:30