You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Set the required environment variables explained [here](https://github.com/kedacore/http-add-on/blob/main/docs/developing.md#required-environment-variables).
50
50
51
-
### Building:
51
+
### Building:
52
52
53
-
- Fork & clone the repo : https://github.com/kedacore/http-add-on.git
54
-
- cd http-add-on
55
-
- Use Mage to build with :
56
-
```
57
-
mage build: build local binaries
58
-
mage dockerBuild: build docker images of the components
$ mage dockerBuild # build docker images of the components
59
65
```
60
66
If the environment variables are not setup , the docker build will fail so remember to export the right variable values.
61
67
62
68
### Deploying:
63
69
64
-
Custom KEDA-http-addon as an image
70
+
Custom HTTP Add-on as an image
65
71
66
72
- Make your changes in the code
67
-
- Build and publish images with your changes, remember to set your environment variables for images as per the registry of your choice and run
68
-
```
73
+
- Build and publish images with your changes, remember to set your environment variables for images as per the registry of your choice and run
74
+
```console
69
75
$ mage dockerBuild
70
76
```
71
-
If you want to deploy with docker or any other registry of your choice then use right address in setting the images.
77
+
If you want to deploy with docker or any other registry of your choice then use right address in setting the images.
78
+
79
+
There are local clusters with local registries provided, in such cases make sure to use and push your images to its local registry. In the case of MicroK8s, the address is `localhost:32000` and the helm install command would look like the following.
72
80
73
-
There are local clusters with local registries provided, in such cases make sure to use and push your images to its local registry. In the case of MicroK8s, the address is localhost:32000 and the helm install command would look like the following.
K9s integrates Hey, a CLI tool to benchmark HTTP endpoints similar to AB bench. This preliminary feature currently supports benchmarking port-forwards and services. You can use this feature in load testing as follows:
93
100
94
-
- Install an application to scale: we used the sample provided for which you have to clone
95
-
```
101
+
- Install an application to scale, we use the provided sample -
- You'll need to clone the repository to get access to this chart. If you have your own Deployment and Service installed, you can go right to creating an HTTPScaledObject by
105
+
- You'll need to clone the repository to get access to this chart. If you have your own Deployment and Service installed, you can go right to creating an HTTPScaledObject. We use the provided sample HTTPScaledObject -
Copy file name to clipboardExpand all lines: README.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -7,11 +7,11 @@ The KEDA HTTP Add-on allows Kubernetes users to automatically scale their HTTP s
7
7
8
8
| 🚧 **Project status: beta** 🚧|
9
9
|---------------------------------------------|
10
-
| ⚠ The HTTP Add-on currently is in [beta](https://github.com/kedacore/http-add-on/releases/tag/v0.1.0). We can't yet recommend it for production usage because we are still developing and testing it. It may have "rough edges" including missing documentation, bugs and other issues. It is currently provided as-is without support.
10
+
| ⚠ The HTTP Add-on currently is in [beta](https://github.com/kedacore/http-add-on/releases/latest). We can't yet recommend it for production usage because we are still developing and testing it. It may have "rough edges" including missing documentation, bugs and other issues. It is currently provided as-is without support.
11
11
12
12
## HTTP Autoscaling Made Simple
13
13
14
-
[KEDA](https://github.com/kedacore/keda) provides a reliable and well tested solution to scaling your workloads based on external events. The project supports a wide variety of [scalers](https://keda.sh/docs/2.2/scalers/) - sources of these events, in other words. These scalers are systems that produce precisely measurable events via an API.
14
+
[KEDA](https://github.com/kedacore/keda) provides a reliable and well tested solution to scaling your workloads based on external events. The project supports a wide variety of [scalers](https://keda.sh/docs/latest/scalers/) - sources of these events, in other words. These scalers are systems that produce precisely measurable events via an API.
15
15
16
16
KEDA does not, however, include an HTTP-based scaler out of the box for several reasons:
17
17
@@ -25,13 +25,13 @@ This project, often called KEDA-HTTP, exists to provide that scaling. It is comp
25
25
26
26
## Adopters - Become a listed KEDA user!
27
27
28
-
We are always happy to start list users who run KEDA's HTTP Add-On in production or are evaluating it, learn more about it [here](ADOPTERS.md).
28
+
We are always happy to start list users who run KEDA's HTTP Add-on in production or are evaluating it, learn more about it [here](ADOPTERS.md).
29
29
30
30
We welcome pull requests to list new adopters.
31
31
32
32
## Walkthrough
33
33
34
-
Although this is currently a **beta release** project, we have prepared a walkthrough document that with instructions on getting started for basic usage.
34
+
Although this is currently a **beta release** project, we have prepared a walkthrough document with instructions on getting started for basic usage.
35
35
36
36
See that document at [docs/walkthrough.md](./docs/walkthrough.md)
Copy file name to clipboardExpand all lines: RELEASE-PROCESS.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ The process of releasing a new version of the KEDA HTTP Add-on involves a few st
6
6
7
7
## 1: Current and new versions
8
8
9
-
Please go to the [releases page](https://github.com/kedacore/http-add-on/releases) and observe what the most recent release is. Specifically, note what the _tag_ of the release is. For example, if [version 0.1.0](https://github.com/kedacore/http-add-on/releases/tag/v0.1.0) is the latest release (it is as the time of this writing), the tag for that is `v0.1.0`.
9
+
Please go to the [releases page](https://github.com/kedacore/http-add-on/releases) and observe what the most recent release is. Specifically, note what the _tag_ of the release is. For example, if [version 0.3.0](https://github.com/kedacore/http-add-on/releases/tag/v0.3.0) is the latest release (it is as the time of this writing), the tag for that is `v0.3.0`.
10
10
11
11
To determine the new version, follow [SemVer guidelines](https://semver.org). Most releases will increment the PATCH or MINOR version number.
12
12
@@ -16,7 +16,7 @@ To determine the new version, follow [SemVer guidelines](https://semver.org). Mo
16
16
17
17
The title of the release should be "Version 1.2.3", substituting `1.2.3` with the new version number, and the Git tag should be `v1.2.3`, again substituting `1.2.3` with your new version number.
18
18
19
-
The release description should be a short to medium length summary of what has changed since the last release. The following link will give you a list of commits made since the `v0.1.0` tag: [github.com/kedacore/http-add-on/compare/v0.1.0...main](https://github.com/kedacore/http-add-on/compare/v0.1.0...main). Replace `v0.1.0` for your appropriate most recent last tag to get the commit list and base your release summary on that list.
19
+
The release description should be a short to medium length summary of what has changed since the last release. The following link will give you a list of commits made since the `v0.3.0` tag: [github.com/kedacore/http-add-on/compare/v0.3.0...main](https://github.com/kedacore/http-add-on/compare/v0.3.0...main). Replace `v0.3.0` for your appropriate most recent last tag to get the commit list and base your release summary on that list.
20
20
21
21
After you create the new release, automation in a GitHub action will build and deploy new container images.
22
22
@@ -44,7 +44,7 @@ images:
44
44
tag: 1.2.3
45
45
```
46
46
47
-
>Note: the container images generated by CI/CD in step 2 will have the same tag as the tag you created in the release, minus the `v` prefix. You can always see what images created by going to the container registry page for the [interceptor](https://github.com/orgs/kedacore/packages/container/package/http-add-on-interceptor), [operator](https://github.com/kedacore/http-add-on/pkgs/container/http-add-on-operator) or [scaler](https://github.com/kedacore/http-add-on/pkgs/container/http-add-on-scaler)
47
+
>Note: The container images generated by CI/CD in step 2 will have the same tag as the tag you created in the release, minus the `v` prefix. You can always see what images created by going to the container registry page for the [interceptor](https://github.com/orgs/kedacore/packages/container/package/http-add-on-interceptor), [operator](https://github.com/kedacore/http-add-on/pkgs/container/http-add-on-operator) or [scaler](https://github.com/kedacore/http-add-on/pkgs/container/http-add-on-scaler)
48
48
49
49
50
50
Once you've made changes to the chart, here's how to do submit the change to the charts repository:
Copy file name to clipboardExpand all lines: docs/design.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ There are three major components in this system. You can find more detail and di
8
8
9
9
-[Operator](../operator) - This component listens for events related to `HTTPScaledObject`s and creates, updates or removes internal machinery as appropriate.
10
10
-[Interceptor](../interceptor) - This component accepts and routes external HTTP traffic to the appropriate internal application, as appropriate.
11
-
-[Scaler](../scaler) - This component tracks the size of the pending HTTP request queue for a given app and reports it to KEDA. It acts as an [external scaler](https://keda.sh/docs/2.1/scalers/external-push/).
11
+
-[Scaler](../scaler) - This component tracks the size of the pending HTTP request queue for a given app and reports it to KEDA. It acts as an [external scaler](https://keda.sh/docs/latest/scalers/external-push/).
12
12
-[KEDA](https://keda.sh) - KEDA acts as the scaler for the user's HTTP application.
13
13
14
14
## Functionality Areas
@@ -35,7 +35,7 @@ The interceptor keeps track of the number of pending HTTP requests - HTTP reques
35
35
36
36
#### The Horizontal Pod Autoscaler
37
37
38
-
The HTTP Add-on works with the Kubernetes [Horizonal Pod Autoscaler](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#algorithm-details) (HPA) -- via KEDA itself -- to execute scale-up and scale-down operations (except for scaling between zero and non-zero replicas). The add-on furnishes KEDA with two metrics - the current number of pending requests for a host, and the desired number (called `targetPendingRequests` in the [HTTPScaledObject](./ref/v0.2.0/http_scaled_object.md)). KEDA then sends these metrics to the HPA, which uses them as the `currentMetricValue` and `desiredMetricValue`, respectively, in the [HPA Algorithm](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#algorithm-details).
38
+
The HTTP Add-on works with the Kubernetes [Horizonal Pod Autoscaler](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#algorithm-details) (HPA) -- via KEDA itself -- to execute scale-up and scale-down operations (except for scaling between zero and non-zero replicas). The add-on furnishes KEDA with two metrics - the current number of pending requests for a host, and the desired number (called `targetPendingRequests` in the [HTTPScaledObject](./ref/v0.3.0/http_scaled_object.md)). KEDA then sends these metrics to the HPA, which uses them as the `currentMetricValue` and `desiredMetricValue`, respectively, in the [HPA Algorithm](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#algorithm-details).
39
39
40
40
The net effect is that the add-on scales up when your app grows to more pending requests than the `targetPendingRequests` value, and scales down when it has fewer than that value.
Copy file name to clipboardExpand all lines: docs/developing.md
+16-16
Original file line number
Diff line number
Diff line change
@@ -52,9 +52,9 @@ The most useful and common commands from the root directory are listed below. Pl
52
52
53
53
-`mage build`: Builds all the binaries for local testing.
54
54
-`mage test`: Tests the entire codebase
55
-
-`mage dockerbuild`: Builds all docker images
55
+
-`mage dockerBuild`: Builds all docker images
56
56
- Please see the below "Environment Variables" section for more information on this command
57
-
-`mage dockerpush`: Pushes all docker images, without building them first
57
+
-`mage dockerPush`: Pushes all docker images, without building them first
58
58
- Please see the below "Environment Variables" section for more information on this command
59
59
60
60
### In the Operator Directory
@@ -88,7 +88,7 @@ We'll also assume that you have set the `$NAMESPACE` environment variable in you
88
88
89
89
To establish one, run the following command in a separate terminal window:
90
90
91
-
```shell
91
+
```console
92
92
kubectl proxy -p 9898
93
93
```
94
94
@@ -98,9 +98,9 @@ kubectl proxy -p 9898
98
98
99
99
The second way to communicate with these services is almost the opposite as the previous. Instead of bringing the API server to you with `kubectl proxy`, you'll be creating an execution environment closer to the API server.
100
100
101
-
First, launch a container with an interactive shell in Kubernetes with the following command (substituting your namespace in for `$NAMESPACE`):
101
+
First, launch a container with an interactive console in Kubernetes with the following command (substituting your namespace in for `$NAMESPACE`):
102
102
103
-
```shell
103
+
```console
104
104
kubectl run -it alpine --image=alpine -n $NAMESPACE
105
105
```
106
106
@@ -119,37 +119,37 @@ The admin server also performs following tasks:
119
119
120
120
Run the following `curl` command to get the running configuration of the interceptor:
@@ -195,12 +195,12 @@ The external scaler fetches pending queue counts from each interceptor in the sy
195
195
196
196
For convenience, the scaler also provides a plain HTTP server from which you can also fetch these metrics. Fetch the queue counts from this HTTP server with the following command:
0 commit comments