Commit Graph

525 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
d51726b7cb Merge pull request #8522 from dokku/fix-keda-scaling
Only emit keda fallback when a non-cpu/memory trigger exists
2026-04-29 02:27:03 -04:00
Jose Diaz-Gonzalez
f728fc8cd7 fix: only emit keda fallback when a non-cpu/memory trigger exists
Keda 2.17+ rejects ScaledObjects whose spec.fallback is set unless at least one trigger is not a cpu or memory scaler, so unconditionally emitting fallback broke deploys for apps autoscaled on cpu or memory alone. The chart now skips the fallback block when every configured trigger is cpu or memory and keeps the existing behavior otherwise.
2026-04-29 01:10:34 -04:00
Jose Diaz-Gonzalez
1161dda05e feat: send SIGTERM to old containers immediately on deploy
The docker-local scheduler now sends `SIGTERM` to old containers immediately after a successful deploy via `docker container kill --signal=SIGTERM`, rather than waiting `wait-to-retire` seconds before signaling. This matches Heroku's graceful-shutdown contract and lets applications begin draining in-flight work as soon as proxy traffic switches. The existing `wait-to-retire` grace period and `stop-timeout-seconds` hard-stop continue to apply unchanged as the authoritative cleanup path.
2026-04-27 18:18:39 -04:00
Jose Diaz-Gonzalez
da13367ca8 feat: add version-aware helm chart upgrade callbacks
Some helm chart upgrades require side-effects that a plain `helm upgrade` cannot perform, such as deleting deployments whose immutable selectors changed. Charts may now register pre and post upgrade hooks against a target version; applicable hooks fire in ascending semver order, each bracketed around an upgrade to its version, with a final upgrade to the chart's configured version when needed. The new `keda-add-ons-http` 0.12.2 hook deletes the chart-managed deployments before the upgrade so the new selectors take effect cleanly.
2026-04-27 07:57:38 -04:00
Jose Diaz-Gonzalez
db1308a2ab feat: upgrade keda to 2.19.0 and keda-add-ons-http to 0.12.2
While there are breaking changes in the addon, none of these impact how Dokku exposes the addon.
2026-04-27 07:32:38 -04:00
Jose Diaz-Gonzalez
8847fcb6b0 Merge pull request #8505 from dokku/8504-git-auth-status
Add git:auth-status to check netrc match
2026-04-27 01:25:46 -04:00
Jose Diaz-Gonzalez
66c4b3b30e feat: add --format json to git:report and nginx:report
Mirrors the JSON output convention already used by scheduler:report, builder:report, network:report, and traefik:report. Both plugins now accept `--format json` to emit a single-line JSON object whose keys are the property names with the plugin prefix stripped. Combining `--format` with an info flag is rejected with an error message that matches the Go-based report helper.

Closes #8499
2026-04-26 23:30:22 -04:00
Jose Diaz-Gonzalez
65bdbefbea feat: add git:auth-status to check netrc match
Adds `git:auth-status HOST [USERNAME] [PASSWORD]` which exits 0 when the
configured `.netrc` entry matches the requested state and 1 otherwise,
allowing external tooling to detect whether `git:auth` would change
anything without reading `$DOKKU_ROOT/.netrc` directly. Both `git:auth`
and `git:auth-status` now also accept the password via `STDIN`.
2026-04-26 23:10:30 -04:00
Jose Diaz-Gonzalez
0a6eb14dd1 Merge pull request #8157 from dokku/7102-buildpacks-app-json
Add support for specifying buildpacks via app.json
2026-04-26 04:07:14 -04:00
Jose Diaz-Gonzalez
1308e21947 feat: migrate environment variables to plugin properties
Standardize how environment variables are migrated to properties during
install triggers and migrate all remaining DOKKU_* config vars to their
appropriate plugin properties.

Adds a reusable MigrateConfigToProperties() function in the common
package with Transform callback and ListProperty support, plus a
migrate-config-to-property subcommand for the prop binary so shell
plugins can use the same code path.

Migrated variables and their new property owners:
- DOKKU_APP_PROXY_TYPE/DOKKU_PROXY_TYPE → proxy type
- DOKKU_DISABLE_PROXY → proxy disabled
- DOKKU_PROXY_PORT → ports proxy-port
- DOKKU_PROXY_SSL_PORT → ports proxy-ssl-port
- DOKKU_APP_RESTORE → ps restore
- DOKKU_SKIP_DEPLOY → ps skip-deploy
- DOKKU_START_CMD → ps start-cmd
- DOKKU_DOCKERFILE_START_CMD → ps dockerfile-start-cmd
- DOKKU_DISABLE_APP_AUTOCREATION → apps disable-autocreation
- DOKKU_APP_SHELL → scheduler shell
- DOKKU_SKIP_CLEANUP → builder skip-cleanup
- DOKKU_CHECKS_DISABLED → checks disabled
- DOKKU_CHECKS_SKIPPED → checks skipped
- DOKKU_CHECKS_WAIT → checks wait
- DOKKU_CHECKS_TIMEOUT → checks timeout
- DOKKU_CHECKS_ATTEMPTS → checks attempts
- DOKKU_DEFAULT_CHECKS_WAIT → checks default-wait
- DOKKU_SKIP_ALL_CHECKS → checks disabled (legacy)
- DOKKU_SKIP_DEFAULT_CHECKS → checks skipped (legacy)

Also refactors existing bespoke migration loops in scheduler, ports, ps,
builder, and nginx-vhosts plugins to use the standardized utility.

Removes DOKKU_PARALLEL_ARGUMENTS from documentation (unused in core).
Deprecates fn-migrate-config-to-property bash function.

closes #1558
2026-04-25 05:11:07 -04:00
Jose Diaz-Gonzalez
b0b11bcf26 fix: remove buildpacks from dockerfile test app and add tests for app.json buildpacks
The buildpacks entry in tests/apps/dockerfile/app.json caused
the post-extract trigger to write a .buildpacks file during
Dockerfile-based deploys, breaking builder detection. Remove
the entry and add Go unit tests for getBuildpacks/validBuildpackURL,
a bats integration test for deploying with app.json buildpacks,
and documentation for the new feature.
2026-04-18 05:43:44 -04:00
Jose Diaz-Gonzalez
5c2045b6ea fix: delete the tls app chart when the app is deleted 2026-01-10 02:52:01 -05:00
Jose Diaz-Gonzalez
fd08478f90 Merge pull request #8262 from dokku/7257-import-certificate-into-k8s-app
Use certificates imported by certs plugin when deploying via scheduler-k3s
2026-01-08 12:46:30 -05:00
Jose Diaz-Gonzalez
91e800a97b Merge pull request #8266 from dokku/6847-allow-force-pull-image-on-git-from-image
Add a method to force build when re-using an image with git:from-image
2026-01-08 12:11:54 -05:00
Jose Diaz-Gonzalez
6c3936802e feat: add a method to force build when re-using an image with git:from-image
Closes #6847
2026-01-08 02:46:53 -05:00
Jose Diaz-Gonzalez
dd70fb823d feat: add the ability to skip setting the deploy-branch when running git:sync
Closes #8212
2026-01-08 02:19:22 -05:00
Jose Diaz-Gonzalez
b8e8ea74ff feat: use certificates imported by certs plugin when deploying via scheduler-k3s
Closes #7257
2026-01-08 01:05:40 -05:00
Jose Diaz-Gonzalez
9fab65dc61 Merge pull request #8151 from dokku/7204-service-process-types
Allow exposing non-web processes as kubernetes services
2025-11-22 20:33:42 -05:00
Jose Diaz-Gonzalez
3a44cc6270 docs: fix reference to letsencrypt-server property 2025-11-22 20:08:14 -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
1430c2a13e refactor: rename the scheduler-k3s:cluster-* commands to use a : instead of - for a delimiter
This standardizes the commands with the other k3s commands that use a colon delimiter as well.
2025-11-20 05:00:31 -05:00
Jose Diaz-Gonzalez
ca5c887b8a feat: add the ability to create k3s node profiles
Node profiles can be used to specify repetitive options for clusters, making it easier to add specific types of instances quickly.

This PR additionally fixes kubelet-args specification - the same key can be specified multiple times, such as when specifying custom sysctl rules.
2025-11-20 04:42:57 -05:00
Jose Diaz-Gonzalez
106b2c20f1 feat: add support for git remotes with port specified inline
Closes #8093
2025-11-20 02:20:35 -05:00
Jose Diaz-Gonzalez
75945ee0d7 docs: correct the release version for railpacks support
Refs #7956 (thanks @pil0u)
2025-11-16 18:50:04 -05:00
Jose Diaz-Gonzalez
e93175b37e Merge pull request #7986 from dokku/7325-cnb-buildpacks
Add support for specifying CNB buildpacks via buildpacks command
2025-11-16 02:38:25 -05:00
Jose Diaz-Gonzalez
364eac374d refactor: remove support for the railpack no-cache property
This replicates the docker-options functionality.
2025-11-15 23:30:24 -05:00
Jose Diaz-Gonzalez
93cf9cc118 refactor: remove support for the nixpacks no-cache property
This replicates the docker-options functionality.
2025-11-15 23:30:15 -05:00
Jose Diaz-Gonzalez
50b2836e52 refactor: remove support for DOKKU_DOCKER_BUILD_OPTS
This replicates the docker-options functionality.
2025-11-15 23:28:44 -05:00
Jose Diaz-Gonzalez
9b75cc39b1 refactor: remove support for DOKKU_DOCKERFILE_CACHE_BUILD
This replicates the docker-options functionality.
2025-11-15 23:27:22 -05:00
Jose Diaz-Gonzalez
9aa471c1fd feat: add support for specifying CNB buildpacks via buildpacks command
Closes #7325
2025-11-15 16:24:22 -05:00
Jose Diaz-Gonzalez
080ed43232 Merge pull request #7982 from dokku/drop-cnb-experimental
Remove references to pack being experimental
2025-11-15 16:20:17 -05:00
Jose Diaz-Gonzalez
551eae0c5b chore: remove references to pack being experimental
It is no longer experimental and is here to stay.
2025-11-09 20:32:39 -05:00
Jose Diaz-Gonzalez
0840976265 fix: add references to BUILDKIT_HOST for setup and fix tests 2025-11-09 20:21:09 -05:00
Jose Diaz-Gonzalez
cba345025c feat: add a Railpack builder to Dokku
Closes #7615
2025-11-09 20:21:09 -05:00
Jose Diaz-Gonzalez
3dde9853ca Update docs/deployment/schedulers/k3s.md
Co-authored-by: othercorey <corey.taylor.fl@gmail.com>
2025-10-15 11:14:14 -04:00
Jose Diaz-Gonzalez
5d4378c585 feat: add ability to disable letsencrypt for a given application or globally
If disabled globally, it can be re-enabled on a per-app basis by setting the `letsencrypt-server` property to `production` or `staging`.
2025-10-15 00:19:03 -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
9c41bed78b feat: allow specifying base64-encoded values in vector-sink DSN urls
This will allow Vector templating to work when using Kubernetes as the scheduler.
2025-08-23 15:46:57 -04:00
Jose Diaz-Gonzalez
328aa3779c Merge pull request #7750 from dokku/0.36-release
Release 0.36.0
2025-07-23 22:02:58 -04:00
Jose Diaz-Gonzalez
245263d2ad docs: add documentation for Kustomize usage 2025-07-23 20:59:28 -04:00
Jose Diaz-Gonzalez
398a78b2f6 refactor: move cron-write to scheduler-cron-write 2025-06-10 21:45:08 -04:00
Olle Jonsson
d83978760e [docs] github-actions.md: use latest Checkout action version 2025-06-10 19:33:47 +02:00
Jose Diaz-Gonzalez
86a6b2e246 fix: reference correct variable 2025-06-09 11:39:00 -04:00
Jose Diaz-Gonzalez
9beab4d50d refactor: migrate DOKKU_DOCKER_STOP_TIMEOUT to ps setting 2025-06-09 11:39:00 -04:00
plafü
2b531fdbb2 docs: add continuous integration example with woodpecker ci 2025-04-17 16:04:34 +02: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
888d1d4bf3 feat: add ability to set shm-size property
This doesn't yet manage process volumes, but the scaffolding is there to allow interacting with the property.
2025-03-06 22:48:49 -05:00
Jose Diaz-Gonzalez
c888ca5b58 docs: simplify the per-app deployment settings and place it all into a table 2025-03-06 22:35:34 -05:00
Eric Buckthal
250202c4f2 [docs] update vector container volume mount description 2025-02-10 15:29:24 -05:00
Jose Diaz-Gonzalez
869f9a0346 feat: allow specifying a custom app label alias when shipping logs via vector
Closes #7354
2025-01-03 23:38:20 -05:00