Repository navigation
install: make install and upgrade values declarative - #165
Merged
Merged
Conversation
Upgrades reused each release's previous values, so removing a value or switching storage modes from the config had no effect. Now every install and upgrade sets values from the chart and the config only. Install refuses once the substrate release is deployed, so changes to a finished install go through upgrade, which can diff them first. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
EItanya
added a commit
that referenced
this pull request
Nov 10, 2026
…arative values (#167) * Merge pull request #163 from kagent-dev/installer-step-lists install: export the upgrade and uninstall steps (cherry picked from commit d8021f1) * install: take the chart version from Options.Version (#162) * install: stamp charts from the substrate module version kubectl-ate sets version.Version with ldflags, but a program that imports the installer doesn't. Its embedded charts then keep 0.1.0 and pull images that don't exist. Take the tag from the go.ate.dev/substrate dependency in the build info instead, and skip pseudo-versions. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * install: take the chart version from Options.Version Replace the build-info search with an option. The caller knows which substrate release it depends on, and the search had to guess around replaces and pseudo-versions. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> (cherry picked from commit 2c6fd6e) * install: make install and upgrade values declarative (#165) Upgrades reused each release's previous values, so removing a value or switching storage modes from the config had no effect. Now every install and upgrade sets values from the chart and the config only. Install refuses once the substrate release is deployed, so changes to a finished install go through upgrade, which can diff them first. Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> (cherry picked from commit 691b239) --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrades used Helm's
ResetThenReuseValues, and the upgrade path skipped the storage and database values. So a value removed from the config stayed on the release, and switchingpostgresorobjectStoremodes on an upgrade had no effect.Install and upgrade now set each release's values from the chart and the config only. Install refuses once the
substraterelease is deployed and points tokubectl ate upgrade. A partial install can still be rerun.Upgrade now needs the config the install used. Running it without
-con an external-database install applies the bundled defaults.--dry-runshows that diff.On kind I installed with an external Postgres, then:
installagain failed with "release substrate 1.0.1 is already installed".upgrade --dry-runwith the same config showed only chart changes.upgradewithateApi.logLevel: debugadded the value, and a secondupgradewithout it removed it.I wrote this with Claude Code and reviewed the diff.