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.
208 lines
9.5 KiB
Modula-2
208 lines
9.5 KiB
Modula-2
module github.com/dokku/dokku/plugins/scheduler-k3s
|
|
|
|
go 1.26.2
|
|
|
|
require (
|
|
github.com/Masterminds/semver/v3 v3.5.0
|
|
github.com/aryann/difflib v0.0.0-20210328193216-ff5ff6dc229b
|
|
github.com/cert-manager/cert-manager v1.20.2
|
|
github.com/dokku/dokku/plugins/app-json v0.0.0-00010101000000-000000000000
|
|
github.com/dokku/dokku/plugins/common v0.0.0-00010101000000-000000000000
|
|
github.com/dokku/dokku/plugins/config v0.0.0-00010101000000-000000000000
|
|
github.com/dokku/dokku/plugins/cron v0.0.0-00010101000000-000000000000
|
|
github.com/dokku/dokku/plugins/docker-options v0.0.0-00010101000000-000000000000
|
|
github.com/dokku/dokku/plugins/logs v0.0.0-00010101000000-000000000000
|
|
github.com/dokku/dokku/plugins/nginx-vhosts v0.0.0-00010101000000-000000000000
|
|
github.com/dokku/dokku/plugins/registry v0.0.0-00010101000000-000000000000
|
|
github.com/dokku/dokku/plugins/storage v0.0.0-00010101000000-000000000000
|
|
github.com/fatih/color v1.19.0
|
|
github.com/fluxcd/pkg/kustomize v1.31.0
|
|
github.com/go-openapi/jsonpointer v0.23.1
|
|
github.com/go-resty/resty/v2 v2.17.2
|
|
github.com/gofrs/flock v0.13.0
|
|
github.com/gosimple/slug v1.15.0
|
|
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
|
|
github.com/kedacore/keda/v2 v2.18.3
|
|
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d
|
|
github.com/onsi/gomega v1.41.0
|
|
github.com/ryanuber/columnize v2.1.2+incompatible
|
|
github.com/spf13/pflag v1.0.10
|
|
github.com/traefik/traefik/v2 v2.11.46
|
|
golang.org/x/sync v0.20.0
|
|
gopkg.in/yaml.v2 v2.4.0
|
|
gopkg.in/yaml.v3 v3.0.1
|
|
helm.sh/helm/v3 v3.21.0
|
|
k8s.io/api v0.35.4
|
|
k8s.io/apimachinery v0.36.1
|
|
k8s.io/client-go v0.35.4
|
|
k8s.io/kubectl v0.35.4
|
|
k8s.io/kubernetes v1.36.1
|
|
k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2
|
|
mvdan.cc/sh/v3 v3.13.1
|
|
sigs.k8s.io/kustomize/api v0.21.1
|
|
)
|
|
|
|
require (
|
|
dario.cat/mergo v1.0.2 // indirect
|
|
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
|
|
github.com/BurntSushi/toml v1.6.0 // indirect
|
|
github.com/MakeNowJust/heredoc v1.0.0 // indirect
|
|
github.com/Masterminds/goutils v1.1.1 // indirect
|
|
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
|
|
github.com/Masterminds/squirrel v1.5.4 // indirect
|
|
github.com/alexellis/go-execute/v2 v2.2.1 // indirect
|
|
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/blang/semver/v4 v4.0.0 // indirect
|
|
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
|
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
|
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
|
github.com/chai2010/gettext-go v1.0.3 // indirect
|
|
github.com/containerd/containerd v1.7.32 // indirect
|
|
github.com/containerd/errdefs v1.0.0 // indirect
|
|
github.com/containerd/log v0.1.0 // indirect
|
|
github.com/containerd/platforms v1.0.0-rc.1 // indirect
|
|
github.com/cyphar/filepath-securejoin v0.6.1 // indirect
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
|
github.com/docker/docker-credential-helpers v0.9.3 // indirect
|
|
github.com/emicklei/go-restful/v3 v3.13.0 // indirect
|
|
github.com/evanphx/json-patch v5.9.11+incompatible // indirect
|
|
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
|
|
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect
|
|
github.com/expr-lang/expr v1.17.7 // indirect
|
|
github.com/fastfishio/qson v1.0.2 // indirect
|
|
github.com/fsnotify/fsnotify v1.9.0 // indirect
|
|
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
|
|
github.com/go-acme/lego/v4 v4.35.2 // indirect
|
|
github.com/go-errors/errors v1.5.1 // indirect
|
|
github.com/go-gorp/gorp/v3 v3.1.0 // indirect
|
|
github.com/go-jose/go-jose/v4 v4.1.4 // indirect
|
|
github.com/go-logr/logr v1.4.3 // indirect
|
|
github.com/go-openapi/jsonreference v0.21.4 // indirect
|
|
github.com/go-openapi/swag v0.23.1 // indirect
|
|
github.com/go-openapi/swag/jsonname v0.26.0 // indirect
|
|
github.com/gobwas/glob v0.2.3 // indirect
|
|
github.com/google/btree v1.1.3 // indirect
|
|
github.com/google/gnostic-models v0.7.1 // indirect
|
|
github.com/google/go-cmp v0.7.0 // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/gorilla/mux v1.8.1 // indirect
|
|
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect
|
|
github.com/gosimple/unidecode v1.0.1 // indirect
|
|
github.com/gosuri/uitable v0.0.4 // indirect
|
|
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect
|
|
github.com/hashicorp/errwrap v1.1.0 // indirect
|
|
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
|
github.com/huandu/xstrings v1.5.0 // indirect
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
|
github.com/jmoiron/sqlx v1.4.0 // indirect
|
|
github.com/joho/godotenv v1.5.1 // indirect
|
|
github.com/josharian/intern v1.0.0 // indirect
|
|
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12 // indirect
|
|
github.com/klauspost/compress v1.18.5 // indirect
|
|
github.com/kr/fs v0.1.0 // indirect
|
|
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
|
|
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
|
|
github.com/lib/pq v1.11.2 // indirect
|
|
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
|
|
github.com/mailru/easyjson v0.9.1 // indirect
|
|
github.com/mattn/go-colorable v0.1.14 // indirect
|
|
github.com/mattn/go-isatty v0.0.22 // indirect
|
|
github.com/mattn/go-runewidth v0.0.16 // indirect
|
|
github.com/melbahja/goph v1.5.0 // indirect
|
|
github.com/miekg/dns v1.1.72 // indirect
|
|
github.com/mitchellh/copystructure v1.2.0 // indirect
|
|
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
|
|
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
|
github.com/moby/spdystream v0.5.1 // indirect
|
|
github.com/moby/term v0.5.2 // indirect
|
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
|
|
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
|
|
github.com/multiformats/go-base36 v0.2.0 // indirect
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
|
github.com/opencontainers/go-digest v1.0.0 // indirect
|
|
github.com/opencontainers/image-spec v1.1.1 // indirect
|
|
github.com/otiai10/copy v1.14.1 // indirect
|
|
github.com/otiai10/mint v1.6.3 // indirect
|
|
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
|
|
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
|
|
github.com/pkg/errors v0.9.1 // indirect
|
|
github.com/pkg/sftp v1.13.10 // indirect
|
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
|
github.com/prometheus/client_golang v1.23.2 // indirect
|
|
github.com/prometheus/client_model v0.6.2 // indirect
|
|
github.com/prometheus/common v0.67.5 // indirect
|
|
github.com/prometheus/procfs v0.20.1 // indirect
|
|
github.com/rivo/uniseg v0.4.7 // indirect
|
|
github.com/robfig/cron/v3 v3.0.1 // indirect
|
|
github.com/rubenv/sql-migrate v1.8.1 // indirect
|
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
|
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
|
|
github.com/shopspring/decimal v1.4.0 // indirect
|
|
github.com/sirupsen/logrus v1.9.4 // indirect
|
|
github.com/spf13/cast v1.10.0 // indirect
|
|
github.com/spf13/cobra v1.10.2 // indirect
|
|
github.com/tailscale/hujson v0.0.0-20250605163823-992244df8c5a // indirect
|
|
github.com/traefik/paerser v0.2.2 // indirect
|
|
github.com/x448/float16 v0.8.4 // indirect
|
|
github.com/xlab/treeprint v1.2.0 // indirect
|
|
go.yaml.in/yaml/v2 v2.4.4 // indirect
|
|
go.yaml.in/yaml/v3 v3.0.4 // indirect
|
|
golang.org/x/crypto v0.52.0 // indirect
|
|
golang.org/x/mod v0.35.0 // indirect
|
|
golang.org/x/net v0.54.0 // indirect
|
|
golang.org/x/oauth2 v0.36.0 // indirect
|
|
golang.org/x/sys v0.45.0 // indirect
|
|
golang.org/x/term v0.43.0 // indirect
|
|
golang.org/x/text v0.37.0 // indirect
|
|
golang.org/x/time v0.15.0 // indirect
|
|
golang.org/x/tools v0.44.0 // indirect
|
|
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d // indirect
|
|
google.golang.org/grpc v1.80.0 // indirect
|
|
google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af // indirect
|
|
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
|
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
|
k8s.io/apiextensions-apiserver v0.35.2 // indirect
|
|
k8s.io/apiserver v0.35.2 // indirect
|
|
k8s.io/cli-runtime v0.35.4 // indirect
|
|
k8s.io/component-base v0.35.4 // indirect
|
|
k8s.io/klog/v2 v2.140.0 // indirect
|
|
k8s.io/kube-openapi v0.0.0-20260317180543-43fb72c5454a // indirect
|
|
k8s.io/streaming v0.36.1 // indirect
|
|
knative.dev/pkg v0.0.0-20250708013613-d3550d4350f9 // indirect
|
|
oras.land/oras-go/v2 v2.6.0 // indirect
|
|
sigs.k8s.io/controller-runtime v0.23.3 // indirect
|
|
sigs.k8s.io/gateway-api v1.5.0 // indirect
|
|
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
|
|
sigs.k8s.io/kustomize/kyaml v0.21.1 // indirect
|
|
sigs.k8s.io/randfill v1.0.0 // indirect
|
|
sigs.k8s.io/structured-merge-diff/v6 v6.3.2 // indirect
|
|
sigs.k8s.io/yaml v1.6.0 // indirect
|
|
)
|
|
|
|
replace github.com/dokku/dokku/plugins/app-json => ../app-json
|
|
|
|
replace github.com/dokku/dokku/plugins/common => ../common
|
|
|
|
replace github.com/dokku/dokku/plugins/config => ../config
|
|
|
|
replace github.com/dokku/dokku/plugins/cron => ../cron
|
|
|
|
replace github.com/dokku/dokku/plugins/docker-options => ../docker-options
|
|
|
|
replace github.com/dokku/dokku/plugins/logs => ../logs
|
|
|
|
replace github.com/dokku/dokku/plugins/nginx-vhosts => ../nginx-vhosts
|
|
|
|
replace github.com/dokku/dokku/plugins/registry => ../registry
|
|
|
|
replace github.com/dokku/dokku/plugins/storage => ../storage
|
|
|
|
replace github.com/joho/godotenv => github.com/joho/godotenv v1.2.0
|
|
|
|
replace sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.22.4
|
|
|
|
replace github.com/imdario/mergo => github.com/imdario/mergo v0.3.16
|