Giant Swarm offers a keda App which can be installed in workload clusters.
There are several ways to install this app onto a workload cluster.
- Using our web interface.
- By creating an App resource in the management cluster as explained in Getting started with App Platform.
The content of the helm
folder are being generated by the make
target called make update-chart
.
This target uses vendir
to fetch the helm chart contained in the fork of the keda repository that we maintain.
Currently, the state is the following:
- the
giantswarm/v2.14.x
branch on the fork contains latest upstream releasev2.14.x
, with our custom changes on top unreleased yet (TO BE 4.x) which is compatible with kubernetes 1.28 up to 1.30. - the
giantswarm/v2.13.x
branch on the fork contains latest upstream releasev2.13.x
, with our custom changes on top unreleased yet (TO BE 3.x) which is compatible with kubernetes 1.27 up to 1.29. - the
giantswarm/v2.12.x
branch on the fork contains latest upstream releasev2.12.x
, with our custom changes on top unreleased yet (TO BE 2.x) which is compatible with kubernetes 1.26 up to 1.28. - the
giantswarm/v2.11.x
branch contains latest upstream releasev2.11.x
, with our custom changes on top released in keda-app 1.x which is compatible with kubernetes 1.25 up to 1.27. - the
giantswarm/v2.10.x
branch contains latest upstream releasev2.10.x
, with our custom changes on top released in keda-app 0.x which is compatible with kubernetes 1.24 up to 1.26.
If you want to upgrade this keda-app to use a newer version of keda, you need to prepare our fork first.
In keda-upstream
:
- You need to create a new branch for the previous version (e.g.
giantswarm/v2.12.x
for upstream releasev2.12.x
usinggit checkout v2.12.x -b giantswarm/v2.12.x
) and thencherry-pick
our changes frommain
into it or create the release branch from main (git checkout main -b giantswarm/v2.12.x
) - Update the
main branch
to reflect latest upstream changes (sync fork should suffice). - Apply our custom changes on top of that new branch. You can use
cherry-pick
for that.
In keda-app
:
- Run the make target
APPLICATION=keda make update-chart && helm-docs helm/keda
- Update schema:
helm schema-gen helm/keda/values.yaml > helm/keda/values.schema.json
- Create a new pull request in
keda-app
with the generated changes. If you need further customizations, you can keep adding commits on the newkeda-upstream
branch, and re-runAPPLICATION=keda make update-chart && helm-docs helm/keda
to update the generated files. Do not forget to review this README. - Merge the changes in
keda-app
once you're happy with the changes and you've tested it works in a workload cluster. - Release a new major version of our
keda app
If you want to upgrade this keda-app to use a newer version of keda, you need to prepare our fork first.
In keda-upstream
:
- Go the the branch of the version you want to patch (e.g.
giantswarm/v2.10.x
). - Fetch latest tags from upstream:
git fetch --tags upstream
with upstream pointing to the upstream keda repository - Rebase the upstream tag (
git rebase -i <tag>
)
In keda-app
:
- Run the make target
APPLICATION=keda make update-chart && helm-docs helm/keda
in the correct release branch (0.x for keda 2.10
) - Update schema:
helm schema-gen helm/keda/values.yaml > helm/keda/values.schema.json
- Create a new pull request in
keda-app
with the generated changes. If you need further customizations, you can keep adding commits on the newkeda-upstream
branch, and re-runAPPLICATION=keda make update-chart && helm-docs helm/keda
to update the generated files. - Merge the changes in
keda-app
once you're happy with the changes and you've tested it works in a workload cluster. - Release a new major version of our
keda app