Jorge Turrado Ferrero
b5c41c8c2a
chore: add golangci-lint ( #584 )
2023-01-27 08:52:15 +01:00
Aaron Schlesinger
81f1f75da7
Patching ScaledObjects in the operator when they already exist ( #402 )
...
* patching scaledobjects that already exist
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* updating test to check for updates
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
2022-02-18 12:36:20 -08:00
Aaron Schlesinger
eb4e1e9f42
Allowing cluster-global operation ( #269 )
...
* Allowing cluster-global operation
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* passing less unnecessary data in the operator
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* setting namespace
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* updating tests:
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* Updating deployment cache interfaces
To accommodate multi-namespace gets and watches
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* starting on deployment cache informer
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* switching over to informer-based deployment cache
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* fixing test compile errors and merging fake and in-memory deployment caches
Signed-off-by: Aaron <aaron@ecomaz.net>
* fixing tests
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* fixing more compile errs
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* improving logging, and several other small changes
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* go mod tidy
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* Adding config validation
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* improving ns and svc name var names to indicate interceptor
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* running go mod tidy
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* removing unused code
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* passing a function to transform target to in-cluster URL
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* not requiring namespace for operator
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* splitting namespace config for operator into watch and current
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* removing appInfo, passing current namespace everywhere in its place
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* using proper namespace when creating scaled object
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* allowing xkcd chart to set ingress namespace
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* printing namespace in error
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* using proper fully-qualified hostname of external scaler in scaledobject
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* adding note on cluster-global vs. namespaced mode
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* adding note about installing the xkcd chart in cluster-global mode
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* fixing hostname test
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* merging scaler queue counts with routing table hosts. removing merge functionality from interceptors
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* fix assumption in tests that queue has all hosts from routing table
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* adding test for MergeCountsWithRoutingTable
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* sleep for longer to wait for server to start
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* adding handler test for merging hosts
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* adding test to GetMetrics test cases for host not in queue pinger
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
2022-01-13 14:50:49 -08:00
Aaron Schlesinger
c211da9bd1
Multi-tenant interceptor and scaler ( #206 )
...
* multi-tenant interceptor and scaler
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* specifying host in XKCD ingress
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* routing the xkcd chart to the interceptor properly
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* check host header first
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* sending true active response in stream
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* passing target pending requests through to the underlying ScaledObject (so the scaler can read it later)
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* removing broken target pending requests
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* using getHost in proxy handler
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* adding integration test
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* adding more tests to the integration test
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* splitting up integration tests
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* more checks
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* mark new test TODO
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* expanding interceptor integration tests
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* error messages
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* refactor test
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* more test improvements
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* rolling back target pending requests in ScaledObject
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* removing target metric error. it's not used anymore
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* improving waitFunc test
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* Refactoring the deployment cache to add better error handing and resilience.
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* adding doc comment
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* refactoring deploy cache and adding tests
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* Using interfaces for deployment watch & list
this makes tests easier
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* adding more deploy cache tests
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* Fixing up TestK8sDeploymentCacheRewatch
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* shutting down everything else when one thing errors, and adding a deployments cache endpoint
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* removing commented code
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* clarifying deployment cache JSON output, and simplifying deployment watch function
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* adding TODO tests
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* error logs and restoring the count middleware
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* using consistent net/http package name throughout main.go
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* Refactoring deployment cache deployment storage
Also, running go mod tidy and adding new TODO (i.e. failing) tests
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* using deployment.Status.ReadyReplicas, instead of just replicas
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* integration_tets ==> proxy_handlers_integration_test
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* adding some resilience to tests
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* adding deployment cache endpoint documentation
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* running the global test target with sh.RunV
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* adding timeout to magefile test target
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
* finishing one TODO test and adding issue for the rest:
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
2021-09-03 10:19:20 +02:00
Aaron Schlesinger
22c912071b
Fixing app creation timing issue ( #116 )
...
* upgrading all dockerfile Go versions to 1.16
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* creating new targets for the example/test HTTPScaledObject
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* moving external scaler generated files
the scaler uses the server stubs but the operator now needs to use the client, so it needs to move out of the scaler binary
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* progress on code to wait for scaler
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* checking deployment replicas:
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* Adding health check endpoints to the scaler
Also centralizing config for the scaler with envconfig
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* Closing both the gRPC server and HTTP healthcheck server on context cancel/timeout
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* adding util functions for adding liveness/readiness probes
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* fixing var name
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* adding readiness and liveness probes, and tests for it
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* printing output for scaler tests, even when they fail
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* simplifying scaler health check code
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* adding health check test code to scaler
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
2021-05-18 18:55:47 +00:00
Aaron Schlesinger
2b395d1548
Scaling up the interceptor ( #32 )
...
* Scaling up the interceptor
Fixes https://github.com/kedacore/http-add-on/issues/30
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* Specifying min and max replicas on ScaledObjects
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* respecting the min and max replica count
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* adding new enum types to kubebuilder definition
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* re-generating CRD
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* adding check for interceptor scaled object to tests
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* generalizing unstructured parsing code in test
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
2021-03-22 12:06:35 -07:00
Aaron Schlesinger
fd4cdfe718
Not creating app deployments ( #78 )
...
* Allowing users to scale an existing deployment
Fixes https://github.com/kedacore/http-add-on/issues/35
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* checking custom deployment info
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* Adding tests for new deployment logic
Also generalizing test "infrastructure" code
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* regenerating code
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* Remove functionality to auto-create deployments and services
Users provide a scale target ref, which is the name of the
deployment to scale and the service to route to. They are required
to have already deployed these things already
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* Adding more docs
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* regenerating with 0.5.0 controller-gen
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* fixing compile err
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
2021-03-19 12:58:29 -07:00
Lucas Santos
269d17c410
Add min and max replicas ( #85 )
...
* Add min and max replicas
Signed-off-by: Lucas Santos <lhs.santoss@gmail.com>
* Go fmt
Signed-off-by: Lucas Santos <lhs.santoss@gmail.com>
* Update example
Signed-off-by: Lucas Santos <lhs.santoss@gmail.com>
* Fix wrong value key
Signed-off-by: Lucas Santos <lhs.santoss@gmail.com>
* Using internal struct for replicas
Signed-off-by: Lucas Santos <hello@lsantos.dev>
* Update manifests
Signed-off-by: Lucas Santos <hello@lsantos.dev>
* Fix wrong naming
Signed-off-by: Lucas Santos <hello@lsantos.dev>
* Create tests
Signed-off-by: Lucas Santos <hello@lsantos.dev>
Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
2021-03-15 16:26:36 -07:00
Aaron Schlesinger
e0ca238fb2
Beginning to write tests ( #43 )
...
* Beginning to write tests
Ref https://github.com/kedacore/http-add-on/issues/13
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* Improve status conditions
Signed-off-by: Lucas Santos <lhs.santoss@gmail.com>
* removing old httpscaledobject CRD
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* starting on the user test
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* refactoring typed Kubernetes clients out
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* finishing delete logic
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* removing now-unused code
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* removing commented unused code
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* fixing lint error
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* first test for createUserApp
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* more checks
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* finishing tests for the service
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* starting with scaled object tests
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* adding GH action for running tests
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* going back to old versions of things
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* running tests on all pushes to main and PRs
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* go mod tidy and a new Makefile target
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* a few fixes
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* fixing compile errs
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* more testing
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* fixing tests
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* adding initial tests for the external scaler
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* starting interceptor tests
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* more interceptor testing
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* starting on proxy handler test
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* more tests for the interceptor, including middleware
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* fixing scaler compile errs
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* commenting cluster connection code
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* removing unneeded NameNamespaceInfo
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
* fixing zap logging compile err
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Co-authored-by: Lucas Santos <lhs.santoss@gmail.com>
2021-02-27 13:29:11 +01:00