86 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
5adf0a2b6a Merge pull request #8152 from dokku/k3s-keda-replicas 2025-11-22 21:28:28 -05:00
Jose Diaz-Gonzalez
4dce4d652a fix: ensure keda usage does not cause jank in scaling deployments
If the values set by keda do not match the current deployment replicas value, the deployment object may be scaled in unexpected ways during a helm release. This change ensures keda will continue to manage that value correctly without the deployment object setting it back to something else.
2025-11-22 19:51:29 -05:00
Jose Diaz-Gonzalez
0c96c4b6de feat: allow exposing non-web processes as kubernetes services
Closes #7204
2025-11-22 19:39:56 -05:00
Jose Diaz-Gonzalez
a6d65c821f feat: implement cron and one-off run task TTLs
Closes #7938
2025-11-18 16:46:31 -05:00
Jose Diaz-Gonzalez
f38bc64119 feat: expose concurrency policy to kubernetes jobs 2025-11-10 03:07:29 -05:00
Jose Diaz-Gonzalez
c885205b91 refactor: respect the maintenance value of the cron task instead of skipping them
The former method would omit the CronJob objects entirely, meaning a redeploy would be necessary to re-enable them.
2025-11-09 23:16:38 -05:00
Jose Diaz-Gonzalez
a1b6d05568 fix: correct template 2025-09-12 19:19:04 -04:00
Jose Diaz-Gonzalez
f90a4061c0 feat: create SecurityContext for k3s scheduler from docker-options
Closes #7664
2025-09-12 18:09:33 -04:00
Jose Diaz-Gonzalez
865063300f feat: allow Critical annotations to be injected into ingresses
Dokku needs this in order to construct certain rules that aren't supported by ingress-nginx annotations.
2025-09-03 20:35:44 -04:00
Jose Diaz-Gonzalez
0a3f7262a4 chore: move comment around 2025-08-22 02:30:19 -04:00
Jose Diaz-Gonzalez
434a111976 fix: skip Deployment and ScaledObject generation for cron tasks 2025-08-22 02:29:00 -04:00
Jose Diaz-Gonzalez
390a2254a0 fix: do not skip generating certain templates when non-web processes are encountered 2025-08-22 01:24:53 -04:00
Jose Diaz-Gonzalez
2958f906e4 chore: update and move comment in rendered template 2025-07-23 20:28:40 -04:00
Jose Diaz-Gonzalez
68f909b91d fix: only process web-related templates when there is a web section embedded in the template 2025-07-23 20:16:49 -04:00
Jose Diaz-Gonzalez
4a891f74bd fix: correct scope for capability checks 2025-07-04 06:09:03 -04:00
Jose Diaz-Gonzalez
27dbae3703 fix: correct scope for capability checks 2025-07-04 04:24:09 -04:00
Jose Diaz-Gonzalez
f7800adb68 fix: correct scope for capability checks 2025-07-04 04:24:09 -04:00
Jose Diaz-Gonzalez
c472c2a3c7 refactor use chart values directly instead of attempting to template out cron-job and keda files 2025-07-04 04:24:09 -04:00
Jose Diaz-Gonzalez
1b95e01ea3 fix: move range 2025-07-04 04:24:09 -04:00
Jose Diaz-Gonzalez
6da9be2d65 refactor: use chart values directly instead of attempting to template out cron-job and keda files 2025-07-04 04:24:09 -04:00
Jose Diaz-Gonzalez
a5e784bfb0 Merge pull request #7649 from dokku/k3s-decrease-keda-resources
fix: decrease default in-use keda resources
2025-04-14 11:15:18 -04:00
Jose Diaz-Gonzalez
8aea3e273a fix: decrease default in-use keda resources
Keda isn't in use by everyone, yet commands significant resources. This change makes it so a 2GB server is enough to run Dokku and a couple of small apps.
2025-04-14 04:38:06 -04:00
Jose Diaz-Gonzalez
b97e8f3601 feat: add ability to ship k3s container logs via vector
If a global vector-sink property on the logs plugin is set, we will use that to configure a log sink (defaulting to console output otherwise). Note that the actual configuration still needs to be a valid DSN representing a Vector log sink.

While this does not support pinning log sinks to specific apps, it opens up integration for those who use a single k3s cluster in shared tenancy.
2025-04-14 04:35:21 -04:00
Jose Diaz-Gonzalez
65dd4bc1e0 feat: set shm-size volume/volumeMounts on kubernetes deployments 2025-03-06 22:59:35 -05:00
Jose Diaz-Gonzalez
dcdbe22d86 fix: add tolerations for keda 2024-11-13 20:13:38 -05:00
Jose Diaz-Gonzalez
44eab143ab fix: do not perform nil lookup 2024-11-13 17:10:41 -05:00
Jose Diaz-Gonzalez
52f08ff793 fix: do not perform nil lookup 2024-11-13 04:06:37 -05:00
Jose Diaz-Gonzalez
b98863b6a7 feat: add support for the keda-http-add-on
Externally, it is treated the same as any other scaling trigger, but requires that the chart be installed in order for it to be supported.
2024-11-13 03:29:26 -05:00
Jose Diaz-Gonzalez
f8d2768816 feat: default to no triggers on any created ScaledObject 2024-11-13 02:05:20 -05:00
Jose Diaz-Gonzalez
fd2cfe8080 fix: correctly pull the deployment id from an app's helm values when executing dokku run under the k3s scheduler
- Fix the internal identifier of deployment_id -> deployment_id
- Add tests for both enter and run.
2024-11-04 14:44:25 -05:00
Jose Diaz-Gonzalez
77d9594c09 fix: use annotation to check for ingress method 2024-03-12 07:57:20 -04:00
Jose Diaz-Gonzalez
ac2ea7597e fix: use correct variable name 2024-03-12 06:11:28 -04:00
Jose Diaz-Gonzalez
d4b484a33a fix: replace existing port-map ingress objects with domain ingress objects
Domains cannot be reused across ingress objects, and port maps are a function of a domain, so the inversion here makes most sense (at the cost of some downtime when migrating.
2024-03-12 03:55:40 -04:00
Jose Diaz-Gonzalez
7c58bbf792 feat: setup cluster trigger authentication objects 2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
c0f01c58d6 feat: add initial support for interacting with ClusterTriggerAuthentication objects
These will be provisioned to the keda namespace and referenced by Triggers if they exist (as a fallback to app-specific values).
2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
0cb47f1c54 fix: include app name and use shorter prefix 2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
b3b3a93789 fix: correct associated name 2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
042495bcd6 fix: ensure keda auth secrets are written out 2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
4ddd341184 feat: add initial support for keda authentication 2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
8add9b4b13 fix: ensure the ScaledObject resource is not created if the capability does not exist 2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
b7ff696507 feat: add initial support for injecting keda addons 2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
7a5bd7ee0f refactor: use a helper function for printing out both labels and annotations 2024-03-01 17:42:24 -05:00
Jose Diaz-Gonzalez
9ffd5ada71 Merge pull request #6642 from dokku/k3s-ingress-global-annotations
Use correct annotations key for the ingress chart
2024-02-28 11:40:47 -05:00
Jose Diaz-Gonzalez
7c376d3e6d refactor: rename image pull secrets to standardize on secret naming pattern 2024-02-27 18:25:16 -05:00
Jose Diaz-Gonzalez
0c2307095d fix: use correct annotations key for the ingress chart 2024-02-27 18:24:12 -05:00
Jose Diaz-Gonzalez
5ae9ad46b4 feat: install keda addon in k3s cluster 2024-02-25 20:34:29 -05:00
Jose Diaz-Gonzalez
63a5fe429f Merge pull request #6629 from dokku/k3s-image-pull-secrets-short
Use smaller reference to image pull secrets in secret naming
2024-02-25 15:48:59 -05:00
Jose Diaz-Gonzalez
ab674072bc fix: use smaller reference to image pull secrets in secret naming
This fixes an issue where the secret name is too long in tests where the generated test app name includes a uuid.
2024-02-25 14:00:28 -05:00
Jose Diaz-Gonzalez
55c85fb6aa fix: ensure non-web processes do not attempt to perform web logic in k3s templates 2024-02-25 13:58:30 -05:00
Jose Diaz-Gonzalez
1ae2df52f5 fix: use image pull secrets instead of registries.yaml to reference private repositories
While this will now more or less require a local docker login - which can be overridden by setting the image-pull-secrets property - this ensures every deploy has a valid context.

One annoying thing is that the secret is per-app vs global, meaning that if the secret must be rotated, all apps need to be redeployed. A future change can fix that by deploying a global secret, or if folks really desire, this can be done by setting the image-pull-secrets property on the app/globally.
2024-02-12 17:15:37 -05:00