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
Copy file name to clipboardExpand all lines: RELEASE-PROCESS.md
+32-28
Original file line number
Diff line number
Diff line change
@@ -4,32 +4,12 @@ The process of releasing a new version of the KEDA HTTP Addon involves a few ste
4
4
5
5
>The process herein is largely automated but we recognize that there may be more that we can automate. If you find something that _can_ and _should_ be automated, and you believe that you know how, please [submit an issue](https://github.com/kedacore/http-add-on/issues/new?assignees=&labels=needs-discussion%2Cfeature-request&template=Feature_request.md) explaining how.
6
6
7
-
## 0: Current and new versions
7
+
## 1: Current and new versions
8
8
9
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`.
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
13
-
## 1: Update the [Helm Charts Repository](https://github.com/kedacore/charts)
14
-
15
-
The scope of the changes you'll need to make to the Helm chart vary from just changing the `appVersion` field in the [Chart.yaml file](https://github.com/kedacore/charts/blob/master/http-add-on/Chart.yaml) to changing the `HTTPScaledObject` CRD, adding new configuration, or even adding/changing components.
16
-
17
-
You must, at a minimum, change that `appVersion` field to the new version number, however.
18
-
19
-
If you have chosen `1.2.3`, for example, the `appVersion` field should read:
20
-
21
-
```yaml
22
-
appVersion: 1.2.3
23
-
```
24
-
25
-
See the below steps for updating the Helm chart:
26
-
27
-
1. Submit a Pull Request (PR) to the [github.com/kedacore/charts](https://github.com/kedacore/charts) repository with your changes. Also ensure that you follow the [Shipping a new version](https://github.com/kedacore/charts/blob/master/CONTRIBUTING.md#shipping-a-new-version) guidelines in the charts documentation to complete the chart release.
28
-
- Your chart changes must go into the [http-add-on](https://github.com/kedacore/charts/tree/master/http-add-on) directory. The release artifact will go into the [docs](https://github.com/kedacore/charts/tree/master/docs) directory.
29
-
- Ensure that you add a link to the HTTP Addon repository and the new release number, so that PR reviewers are aware what the work relates to
30
-
2. Ensure that the Pull Request is reviewed and merged
31
-
- This may require collaboration with reviewers and appropriate changes
32
-
33
13
## 2: Create a new GitHub release
34
14
35
15
[Create a new release](https://github.com/kedacore/http-add-on/releases/new) on the GitHub releases page, using your new release number.
@@ -40,20 +20,44 @@ The release description should be a short to medium length summary of what has c
40
20
41
21
After you create the new release, automation in a GitHub action will build and deploy new container images.
42
22
43
-
## 3: Update the [Artifact Hub Manifest](https://github.com/kedacore/external-scalers/tree/master/artifacthub)
23
+
## 3: Submit a PR to the [Helm Charts Repository](https://github.com/kedacore/charts)
44
24
45
-
The HTTP Addon is listed on [ArtifactHub](https://artifacthub.io/packages/helm/kedacore/keda-add-ons-http), and its configuration is at [github.com/kedacore/external-scalers](https://github.com/kedacore/external-scalers).
25
+
The scope of the changes you'll need to make to the Helm chart vary, but the below list is the minimum set of fields to change:
46
26
47
-
If you're releasing a new version of the HTTP Addon, you'll need to update that repository. Submit a new pull request to that repository with includes a new directory under `artifacthub/add-ons-http` called the same thing as the release version. If you're releasing version `1.2.3`, the directory should be called that. To create that directory, do this:
27
+
- The `appVersion` field in `Chart.yaml`. If you've chosen `1.2.3` as the version number, this field should read:
- The `images.tag` field in `values.yaml`. If you've chosen `1.2.3` as the version number, this field should read:
34
+
35
+
```yaml
36
+
images:
37
+
# tag is the image tag to use for all images.
38
+
# for example, if the operator image is "myoperator" and
39
+
# tag is "mytag", the operator image used will be
40
+
# "myoperator:mytag". `latest` is used to indicate the latest
41
+
# stable release in the official images, `canary` is
42
+
# the build for the latest commit to the `main` branch,
43
+
# and you can target any other commit with `sha-<GIT_SHA[0:7]>`
44
+
tag: 1.2.3
51
45
```
52
46
53
-
Then, in the new `artifacthub-pkg.yml` file under the new directory, append a new list item under the `changes` section.
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)
54
48
55
-
Once you're finished with these steps, submit a PR to the [github.com/kedacore/external-scalers](https://github.com/kedacore/external-scalers) repository with your changes.
49
+
50
+
Once you've made changes to the chart, here's how to do submit the change to the charts repository:
51
+
52
+
- Submit a Pull Request (PR) to the [github.com/kedacore/charts](https://github.com/kedacore/charts) repository with your changes. Also ensure that you follow the [Shipping a new version](https://github.com/kedacore/charts/blob/master/CONTRIBUTING.md#shipping-a-new-version) guidelines in the charts documentation to complete the chart release.
53
+
- Your chart changes must go into the [http-add-on](https://github.com/kedacore/charts/tree/master/http-add-on) directory. The release artifact will go into the [docs](https://github.com/kedacore/charts/tree/master/docs) directory.
54
+
- Ensure that you add a link to the HTTP Addon repository and the new release number, so that PR reviewers are aware what the work relates to
55
+
- Work with the maintainers of that repository to get the chart merged
56
+
57
+
After your PR is merged, you've completed the release. Congratulations! You can optionally write a blog post about it; see the next section if you're interested.
56
58
57
59
## 4: Write a blog post on the documentation site (_optional_)
58
60
59
-
If you believe that your release is large enough to warrant a blog post on the [keda.sh/blog](https://keda.sh/blog/) site, please go to [github.com/kedacore/keda-docs](https://github.com/kedacore/keda-docs) and submit a new PR with a blog article about the release. Include in the article a longer summary of changes and any important information about the new functionality, bugfixes, or anything else appropriate. The post should go into the [content/blog](https://github.com/kedacore/keda-docs/tree/master/content/blog) directory.
61
+
If you believe that your release is large enough to warrant a blog post on the [keda.sh/blog](https://keda.sh/blog/) site, please go to [github.com/kedacore/keda-docs](https://github.com/kedacore/keda-docs) and submit a new PR with a blog article about the release.
62
+
63
+
Include in the article a longer summary of changes and any important information about the new functionality, bugfixes, or anything else appropriate. The post should go into the [content/blog](https://github.com/kedacore/keda-docs/tree/master/content/blog) directory.
Copy file name to clipboardExpand all lines: docs/install.md
+10-2
Original file line number
Diff line number
Diff line change
@@ -6,8 +6,13 @@ The HTTP Add On is highly modular and, as expected, builds on top of KEDA core.
6
6
-**Scaler** - communicates scaling-related metrics to KEDA. By default, the operator will install this for you as necessary.
7
7
-**Interceptor** - a cluster-internal proxy that proxies incoming HTTP requests, communicating HTTP queue size metrics to the scaler, and holding requests in a temporary request queue when there are not yet any available app `Pod`s ready to serve. By default, the operator will install this for you as necessary.
8
8
9
-
>There is [pending work in KEDA](https://github.com/kedacore/keda/issues/615) that will eventually make this component optional. See [issue #6 in this repository](https://github.com/kedacore/http-add-on/issues/6) for even more background
9
+
>There is [pending work](https://github.com/kedacore/http-add-on/issues/354) that may eventually make this component optional.
10
10
11
+
## Before You Start: Cluster-global vs. Namespaced installation
12
+
13
+
Both KEDA and the HTTP Addon can be installed in either cluster-global or namespaced mode. In the former case, your `ScaledObject`s and `HTTPScaledObject`s (respectively) can be installed in any namespace, and one installation will detect and process it. In the latter case, you must install your `ScaledObject`s and `HTTPScaledObject`s in a specific namespace.
14
+
15
+
You have the option of installing KEDA and the HTTP Addon in either mode, but if you install one as cluster-global, the other must also be cluster-global. Similarly, if you install one as namespaced, the also must also be namespaced in the same namespace.
11
16
## Installing KEDA
12
17
13
18
Before you install any of these components, you need to install KEDA. Below are simplified instructions for doing so with [Helm](https://helm.sh), but if you need anything more customized, please see the [official KEDA deployment documentation](https://keda.sh/docs/2.0/deploy/). If you need to install Helm, refer to the [installation guide](https://helm.sh/docs/intro/install/).
@@ -17,16 +22,19 @@ Before you install any of these components, you need to install KEDA. Below are
helm install keda kedacore/keda --namespace ${NAMESPACE} --set watchNamespace=${NAMESPACE} --create-namespace
25
+
helm install keda kedacore/keda --namespace ${NAMESPACE} --create-namespace
21
26
```
22
27
28
+
>The above command installs KEDA in cluster-global mode. Add `--set watchNamespace=<target namespace>` to install KEDA in namespaced mode.
29
+
23
30
## Install via Helm Chart
24
31
25
32
The Helm chart for this project is within KEDA's default helm repository at [kedacore/charts](http://github.com/kedacore/charts), you can install it by running:
>The above command installed the HTTP Addon in cluster-global mode. Add `--set operator.watchNamespace=<target namespace>` to install the HTTP Addon in namepaced mode. If you do this, you must also install KEDA in namespaced mode and use the same target namespace.
30
38
31
39
>Installing the HTTP add on won't affect any running workloads in your cluster. You'll need to install an `HTTPScaledObject` for each individual `Deployment` you want to scale. For more on how to do that, please see the [walkthrough](./walkthrough.md).
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` in the next section.
18
18
19
+
>If you are running KEDA and the HTTP Addon in cluster-global mode, you can install the XKCD chart in any namespace you choose. If you do so, make sure you add `--set ingressNamespace=${NAMESPACE}` to the above installation command.
20
+
19
21
>To remove the app, run `helm delete xkcd -n ${NAMESPACE}`
20
22
21
23
## Creating an `HTTPScaledObject`
22
24
23
-
You interact with the operator via a CRD called `HTTPScaledObject`. This CRD object points the To get an example app up and running, read the notes below and then run the subsequent command from the root of this repository.
25
+
You interact with the operator via a CRD called `HTTPScaledObject`. This CRD object instructs interceptors to forward requests for a given host to your app's backing `Service`. To get an example app up and running, read the notes below and then run the subsequent command from the root of this repository.
>If you'd like to learn more about this object, please see the [`HTTPScaledObject` reference](./ref/v0.2.0/http_scaled_object.md).
@@ -65,3 +67,15 @@ An [`Ingress`](https://kubernetes.io/docs/concepts/services-networking/ingress/)
65
67
When you're ready, please run `kubectl get svc -n ${NAMESPACE}`, find the `ingress-nginx-controller` service, and copy and paste its `EXTERNAL-IP`. This is the IP address that your application will be running at on the public internet.
66
68
67
69
>Note: you should go further and set your DNS records appropriately and set up a TLS certificate for this IP address. Instructions to do that are out of scope of this document, though.
70
+
71
+
### Making an HTTP Request to your App
72
+
73
+
Now that you have your application running and your ingress configured, you can issue an HTTP request. To do so, you'll need to know the IP address to request. If you're using an ingress controller, that is the IP of the ingress controller's `Service`. If you're using a "raw" `Service` with `type: LoadBalancer`, that is the IP address of the `Service` itself.
74
+
75
+
Regardless, you can use the below `curl` command to make a request to your application:
76
+
77
+
```shell
78
+
curl -H "Host: myhost.com"<Your IP>
79
+
```
80
+
81
+
>Note the `-H` flag above to specify the `Host` header. This is needed to tell the interceptor how to route the request. If you have a DNS name set up for the IP, you don't need this header.
0 commit comments