Commit Graph

13844 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
ee238c9716 Merge pull request #8739 from dokku/dependabot/go_modules/plugins/scheduler-k3s/github.com/traefik/traefik/v2-2.11.47
chore(deps): bump github.com/traefik/traefik/v2 from 2.11.46 to 2.11.47 in /plugins/scheduler-k3s
2026-06-06 17:00:51 -04:00
Jose Diaz-Gonzalez
35dcd41443 Merge pull request #8737 from dokku/dependabot/docker/plugins/openresty-vhosts/dokku/openresty-docker-proxy-0.12.1
chore(deps): bump dokku/openresty-docker-proxy from 0.12.0 to 0.12.1 in /plugins/openresty-vhosts
2026-06-06 17:00:42 -04:00
Jose Diaz-Gonzalez
17e99f3e11 Merge pull request #8734 from dokku/dependabot/docker/tests/apps/gogrpc/golang-1.26.4
chore(deps): bump golang from 1.26.3 to 1.26.4 in /tests/apps/gogrpc
2026-06-06 17:00:34 -04:00
Jose Diaz-Gonzalez
d414420303 Merge pull request #8732 from dokku/dependabot/docker/docs/_build/python-3.15.0b2-alpine
chore(deps): bump python from 3.15.0b1-alpine to 3.15.0b2-alpine in /docs/_build
2026-06-06 17:00:24 -04:00
Jose Diaz-Gonzalez
6aef528e49 Merge pull request #8731 from dokku/dependabot/docker/tests/apps/go-fail-predeploy/golang-1.26.4
chore(deps): bump golang from 1.26.3 to 1.26.4 in /tests/apps/go-fail-predeploy
2026-06-06 17:00:13 -04:00
Jose Diaz-Gonzalez
53f36bcb27 Merge pull request #8733 from dokku/dependabot/docker/tests/apps/zombies-dockerfile-tini/golang-1.26.4
chore(deps): bump golang from 1.26.3 to 1.26.4 in /tests/apps/zombies-dockerfile-tini
2026-06-06 17:00:04 -04:00
Jose Diaz-Gonzalez
578043f049 Merge pull request #8735 from dokku/dependabot/docker/tests/apps/go-fail-postdeploy/golang-1.26.4
chore(deps): bump golang from 1.26.3 to 1.26.4 in /tests/apps/go-fail-postdeploy
2026-06-06 16:59:44 -04:00
Jose Diaz-Gonzalez
c3d7ab8c04 Merge pull request #8736 from dokku/dependabot/docker/tests/apps/zombies-dockerfile-no-tini/golang-1.26.4
chore(deps): bump golang from 1.26.3 to 1.26.4 in /tests/apps/zombies-dockerfile-no-tini
2026-06-06 16:59:35 -04:00
Jose Diaz-Gonzalez
24798197de Merge pull request #8738 from dokku/dependabot/docker/tests/apps/dockerfile-release/python-3.15.0b2-bookworm
chore(deps): bump python from 3.15.0b1-bookworm to 3.15.0b2-bookworm in /tests/apps/dockerfile-release
2026-06-06 16:59:26 -04:00
Jose Diaz-Gonzalez
c4e5ad40db Merge pull request #8740 from dokku/dependabot/docker/plugins/logs/timberio/vector-0.56.0-debian
chore(deps): bump timberio/vector from 0.55.0-debian to 0.56.0-debian in /plugins/logs
2026-06-06 16:59:16 -04:00
Jose Diaz-Gonzalez
05869e3a21 Merge pull request #8741 from dokku/dependabot/docker/plugins/traefik-vhosts/traefik-v3.7.3
chore(deps): bump traefik from v3.7.1 to v3.7.3 in /plugins/traefik-vhosts
2026-06-06 16:59:06 -04:00
Jose Diaz-Gonzalez
974f2d28d5 Merge pull request #8730 from dokku/dependabot/pip/tests/apps/dockerfile-release/django-5.2.15
chore(deps): bump django from 5.2.14 to 5.2.15 in /tests/apps/dockerfile-release
2026-06-06 16:58:54 -04:00
dependabot[bot]
6ae66f3cfd chore(deps): bump traefik in /plugins/traefik-vhosts
Bumps traefik from v3.7.1 to v3.7.3.

---
updated-dependencies:
- dependency-name: traefik
  dependency-version: v3.7.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-05 13:53:42 +00:00
dependabot[bot]
1171b48f7b chore(deps): bump timberio/vector in /plugins/logs
Bumps timberio/vector from 0.55.0-debian to 0.56.0-debian.

---
updated-dependencies:
- dependency-name: timberio/vector
  dependency-version: 0.56.0-debian
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 01:57:24 +00:00
dependabot[bot]
7bd062f5de chore(deps): bump github.com/traefik/traefik/v2
Bumps [github.com/traefik/traefik/v2](https://github.com/traefik/traefik) from 2.11.46 to 2.11.47.
- [Release notes](https://github.com/traefik/traefik/releases)
- [Changelog](https://github.com/traefik/traefik/blob/v2.11.47/CHANGELOG.md)
- [Commits](https://github.com/traefik/traefik/compare/v2.11.46...v2.11.47)

---
updated-dependencies:
- dependency-name: github.com/traefik/traefik/v2
  dependency-version: 2.11.47
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 01:55:19 +00:00
dependabot[bot]
bdf7a0e18f chore(deps): bump python in /tests/apps/dockerfile-release
Bumps python from 3.15.0b1-bookworm to 3.15.0b2-bookworm.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.15.0b2-bookworm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 01:53:51 +00:00
dependabot[bot]
e241739610 chore(deps): bump dokku/openresty-docker-proxy
Bumps dokku/openresty-docker-proxy from 0.12.0 to 0.12.1.

---
updated-dependencies:
- dependency-name: dokku/openresty-docker-proxy
  dependency-version: 0.12.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 01:53:50 +00:00
dependabot[bot]
ccc09813e4 chore(deps): bump golang in /tests/apps/go-fail-postdeploy
Bumps golang from 1.26.3 to 1.26.4.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.26.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 01:53:46 +00:00
dependabot[bot]
ec7f744220 chore(deps): bump golang in /tests/apps/zombies-dockerfile-no-tini
Bumps golang from 1.26.3 to 1.26.4.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.26.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 01:53:46 +00:00
dependabot[bot]
05b2463668 chore(deps): bump golang from 1.26.3 to 1.26.4 in /tests/apps/gogrpc
Bumps golang from 1.26.3 to 1.26.4.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.26.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 01:53:41 +00:00
dependabot[bot]
673e298721 chore(deps): bump golang in /tests/apps/zombies-dockerfile-tini
Bumps golang from 1.26.3 to 1.26.4.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.26.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 01:53:10 +00:00
dependabot[bot]
ce291603e9 chore(deps): bump python in /docs/_build
Bumps python from 3.15.0b1-alpine to 3.15.0b2-alpine.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.15.0b2-alpine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 01:52:52 +00:00
dependabot[bot]
27ceca0870 chore(deps): bump golang in /tests/apps/go-fail-predeploy
Bumps golang from 1.26.3 to 1.26.4.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.26.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 01:51:50 +00:00
dependabot[bot]
d74f96d58c chore(deps): bump django in /tests/apps/dockerfile-release
Bumps [django](https://github.com/django/django) from 5.2.14 to 5.2.15.
- [Commits](https://github.com/django/django/compare/5.2.14...5.2.15)

---
updated-dependencies:
- dependency-name: django
  dependency-version: 5.2.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 01:50:42 +00:00
Dokku Bot
f5064066be Release 0.38.17
# History

## 0.38.17

Install/update via the bootstrap script:

```shell
wget -NP . https://dokku.com/install/v0.38.17/bootstrap.sh
sudo DOKKU_TAG=v0.38.17 bash bootstrap.sh
```

### New Features

- #8729: @josegonzalez Add scheduler-k3s:preview subcommand to allow previewing helm chart changes

### Dependencies

- #8728: @dependabot[bot] chore(deps): bump dokku/openresty-docker-proxy from 0.11.0 to 0.12.0 in /plugins/openresty-vhosts
v0.38.17
2026-06-03 08:05:01 +00:00
Jose Diaz-Gonzalez
91ea6b51a9 Merge pull request #8729 from dokku/scheduler-k3s-diff-subcommand
Add scheduler-k3s:preview subcommand
2026-06-03 03:36:36 -04:00
Jose Diaz-Gonzalez
ac6e4f5793 test: allow multiple 'has been added' matches in preview test 3
For an undeployed app, the additive diff covers every chart resource, so
the literal 'has been added' header appears once per resource - six times
in the python test app's chart. `assert_output_contains` defaults to
exact-count 1, which fails. Pass -1 (at least 1) to match the actual
semantics of the test.
2026-06-03 01:53:30 -04:00
Jose Diaz-Gonzalez
4ce8afaa97 fix: let scheduler-k3s:preview tolerate a missing image
`common.GetDeployingAppImageName` runs `VerifyImage` and errors out when
no image has been built for the app. A freshly-created app has no image
yet, so the preview could never render for never-deployed apps. Add an
`AllowMissingImage` flag to `BuildOptions` that lets BuildAppChart
substitute a placeholder image string in that case; CommandPreview sets
it. The deploy path still passes `BuildOptions{}`, so missing-image
remains a hard error there.
2026-06-03 00:48:26 -04:00
Jose Diaz-Gonzalez
f1e31ded41 fix: pin scheduler-k3s:preview deployment id to the deployed release
Without this, the preview build invented a fresh timestamp for
`Values.global.deployment_id` and the resulting diff showed every
Deployment changing its `app.kubernetes.io/version` annotation - even when
nothing semantically changed. CommandPreview now reads the deployment id
out of `release.Chart.Metadata.Version` and passes it through a new
`BuildOptions.OverrideDeploymentID` parameter so the previewed manifests
carry the same version label as the live release. The deploy path still
generates a fresh timestamp.
2026-06-02 23:34:10 -04:00
Jose Diaz-Gonzalez
cd66361895 fix: sort the properties so that the snippets do not cause drift for each deploy 2026-06-02 23:18:19 -04:00
Jose Diaz-Gonzalez
9dfb2b1fc9 fix: register scheduler-k3s:preview in plugin Makefile
The previous commit added the dispatcher case but missed appending
`subcommands/preview` to the plugin's `SUBCOMMANDS` list, so no symlink
was created at install time and dokku reported the command as unknown.
2026-06-02 22:25:22 -04:00
Jose Diaz-Gonzalez
e8671790b5 feat: add --context flag to scheduler-k3s:preview
Users can override the default 3-line surrounding context per change. Pass
`--context -1` to render the full resource around every change, matching
upstream `helm diff upgrade` behavior.
2026-06-02 21:02:43 -04:00
Jose Diaz-Gonzalez
496ede44b7 feat: add scheduler-k3s:preview subcommand
Adds a `scheduler-k3s:preview <app>` command that renders a unified diff
between the manifests currently stored in the live Helm release for an app
and the manifests that the next deploy would roll out. The diff is produced
entirely via the Helm Go SDK that scheduler-k3s already uses, with no
external `helm` binary or `helm-diff` plugin install required. The
underlying diff and parse logic is vendored from `databus23/helm-diff`
(Apache 2.0) into a new internal package, trimmed of three-way-merge,
release-ownership tracking, and the non-default output formatters.

The chart-construction half of `TriggerSchedulerDeploy` has been extracted
into a reusable `BuildAppChart` helper so deploy and preview share the
same chart materialization without duplicating template logic. Secret
values are redacted by default in preview output; `--show-secrets` and
`--show-secrets-decoded` flags match the upstream `helm diff` UX. Only the
main app helm release is compared in this iteration; auxiliary releases
for config vars, image-pull secrets, and TLS certificates are out of scope
and documented as such.
2026-06-02 20:28:31 -04:00
Jose Diaz-Gonzalez
db798dfe16 Merge pull request #8728 from dokku/dependabot/docker/plugins/openresty-vhosts/dokku/openresty-docker-proxy-0.12.0
chore(deps): bump dokku/openresty-docker-proxy from 0.11.0 to 0.12.0 in /plugins/openresty-vhosts
2026-06-02 19:24:49 -04:00
dependabot[bot]
ec4d406460 chore(deps): bump dokku/openresty-docker-proxy
Bumps dokku/openresty-docker-proxy from 0.11.0 to 0.12.0.

---
updated-dependencies:
- dependency-name: dokku/openresty-docker-proxy
  dependency-version: 0.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-02 17:30:59 +00:00
Dokku Bot
fd8247018f Release 0.38.16
# History

## 0.38.16

Install/update via the bootstrap script:

```shell
wget -NP . https://dokku.com/install/v0.38.16/bootstrap.sh
sudo DOKKU_TAG=v0.38.16 bash bootstrap.sh
```

### Bug Fixes

- #8723: @josegonzalez Match control-plane nodes by their modern label
- #8724: @josegonzalez Stop truncating existing files in common.TouchFile
v0.38.16
2026-05-31 22:50:58 +00:00
Jose Diaz-Gonzalez
af4ca1b8ba Merge pull request #8723 from dokku/8721-scheduler-k3s-cluster-add-fails-with-no-nodes-found-in-the-cluster 2026-05-31 18:49:37 -04:00
Jose Diaz-Gonzalez
e81afe5274 Merge pull request #8724 from dokku/8722-adding-a-new-host-to-a-k3s-cluster-without-insecure-allow-unknown-hosts-clears-the-dokku-user-s-known-hosts 2026-05-31 18:12:28 -04:00
Jose Diaz-Gonzalez
cf84679133 fix: stop truncating existing files in common.TouchFile
`common.TouchFile` opened files with `O_TRUNC`, so the call from `common.SshTask.Execute` against `~/.ssh/known_hosts` emptied the dokku user's previously trusted host keys before `goph.DefaultKnownHosts()` read them. Running `scheduler-k3s:cluster:add` without `--insecure-allow-unknown-hosts` then failed with `knownhosts: key is unknown` and left a zero-byte `known_hosts`. The function now matches `touch(1)` semantics: create the file if missing, otherwise leave its contents intact.
2026-05-31 16:37:15 -04:00
Jose Diaz-Gonzalez
099cf10e98 fix: match control-plane nodes by their modern label
Kubernetes 1.20 deprecated the node-role.kubernetes.io/master label and replaced it with node-role.kubernetes.io/control-plane, and 1.24 dropped the legacy label entirely. The scheduler-k3s:cluster:add join path still filtered control-plane nodes with master=true, so on any k3s release built from Kubernetes 1.24+ the lookup matched zero nodes and aborted with "no nodes found in the cluster" before the worker could join.
2026-05-31 16:24:23 -04:00
Dokku Bot
213d89b1e4 Release 0.38.15
# History

## 0.38.15

Install/update via the bootstrap script:

```shell
wget -NP . https://dokku.com/install/v0.38.15/bootstrap.sh
sudo DOKKU_TAG=v0.38.15 bash bootstrap.sh
```

### Bug Fixes

- #8718: @josegonzalez Persist scheduler-k3s chart overrides as JSON maps

### Other

- #8720: @josegonzalez Persist scheduler-k3s annotations and labels as JSON maps
v0.38.15
2026-05-31 08:05:25 +00:00
Jose Diaz-Gonzalez
76b9f03818 Merge pull request #8720 from dokku/8719-scheduler-k3s-annotations-and-labels-migrate-to-propertymap-storage-to-support-multi-line-values 2026-05-31 04:04:08 -04:00
Jose Diaz-Gonzalez
a0bae9b0a9 Merge pull request #8718 from dokku/8717-scheduler-k3s-charts-set-cannot-persist-property-names-containing-and-silently-breaks-multi-line-values 2026-05-31 03:40:52 -04:00
Jose Diaz-Gonzalez
21ed5fb738 fix: persist scheduler-k3s annotations and labels as JSON maps
Annotation and label values containing a newline previously round-tripped
as two adjacent `key: value` lines, and the second line then failed the
`SplitN(line, ": ", 2)` parse on read. Move the per-`(processType,
resourceType)` files to `PropertyMap*` storage so `\n` in values and `/`
in keys are preserved verbatim. An idempotent `TriggerInstall` migration
walks `--global` and every app, converting any legacy line-formatted file
in place by probing `PropertyMapGet` first and rewriting via
`PropertyListGet` only when the probe fails. Property names are
unchanged, so the annotations/labels report scanner and the
`reservedAnnotationPrefixes` filter keep working without modification.

Closes #8719.
2026-05-31 02:38:35 -04:00
Jose Diaz-Gonzalez
4ae48c6ea0 test: pin test-env system identity and core-plugins path
PropertyMap tests went through SetPermissions, which looks up the `dokku` user/group; the fresh `golang:1.26.2` container used by `go-test-plugin-in-docker` has neither, so the chown failed with `unknown group dokku`. Override `DOKKU_SYSTEM_USER` and `DOKKU_SYSTEM_GROUP` to `root` in the property and chart-migration test setups so the chown targets an identity that exists everywhere. The config tests also called `plugn trigger post-config-update` without `PLUGIN_CORE_AVAILABLE_PATH` set, so the hook tried to source `/common/functions` and logged a noisy warning on every test; point the env var at the canonical `/var/lib/dokku/core-plugins/available` location.
2026-05-31 02:23:35 -04:00
Jose Diaz-Gonzalez
b8929712d4 fix: persist scheduler-k3s chart overrides as JSON maps
Chart property names containing `/` failed because per-key flat-file storage interpreted the slash as a filesystem path separator, and any move to line-based storage would silently truncate multi-line values. A new `PropertyMap*` helper family in `common` persists each map as a single JSON file so both `/` in keys and `\n` in values round-trip losslessly. Chart overrides move to `chart-overrides.<chart>` and an idempotent `TriggerInstall` migration rewrites any legacy `chart.<chart>.<key>` files into the new layout. The deprecated `scheduler-k3s:set --global chart.*` form is rerouted through the same map storage so it does not silently orphan writes. Closes #8717.
2026-05-31 01:54:28 -04:00
Dokku Bot
ff00bcb218 Release 0.38.14
# History

## 0.38.14

Install/update via the bootstrap script:

```shell
wget -NP . https://dokku.com/install/v0.38.14/bootstrap.sh
sudo DOKKU_TAG=v0.38.14 bash bootstrap.sh
```

### New Features

- #8716: @josegonzalez Add scheduler-k3s annotations:report and labels:report
- #8715: @josegonzalez Add scheduler-k3s:charts:set and :charts:report
v0.38.14
2026-05-31 01:12:35 +00:00
Jose Diaz-Gonzalez
580aa892de Merge pull request #8716 from dokku/scheduler-k3s-report-subcommands 2026-05-30 21:11:10 -04:00
Jose Diaz-Gonzalez
f9183bbff2 Merge pull request #8715 from dokku/scheduler-k3s-charts-set 2026-05-30 20:49:27 -04:00
Jose Diaz-Gonzalez
5dbb2951bb feat: add scheduler-k3s annotations:report and labels:report
The scheduler-k3s plugin exposes `annotations:set` and `labels:set` but no matching report subcommands, so scripts could not inspect the configured state for idempotent management without reading the property files directly. The new `scheduler-k3s:annotations:report` and `scheduler-k3s:labels:report` surface the configured entries with stdout, JSON, single-flag query, and `--process-type` / `--resource-type` filtering, mirroring the recently added `scheduler-k3s:charts:report`. The literal `GlobalProcessType` value `--global` is rendered as `global` in report keys to avoid leading dashes. The `scheduler-k3s:autoscaling-auth:report` command is updated alongside to loop over every app when no app and no `--global` flag is provided, matching the convention used by `scheduler-k3s:report`.
2026-05-30 20:12:00 -04:00