diff --git a/internal/run/upgrade.go b/internal/run/upgrade.go index 80d8084..1a17814 100644 --- a/internal/run/upgrade.go +++ b/internal/run/upgrade.go @@ -47,6 +47,7 @@ func NewUpgrade(cfg env.Config) *Upgrade { reuseValues: cfg.ReuseValues, timeout: cfg.Timeout, force: cfg.Force, + forceConflict: cfg.ForceConflicts, // FIXED: Added missing struct mapping atomic: cfg.AtomicUpgrade, cleanupOnFail: cfg.CleanupOnFail, historyMax: cfg.HistoryMax, @@ -70,6 +71,11 @@ func (u *Upgrade) Prepare() error { return fmt.Errorf("release is required") } + // Validation: prevent generating invalid flags together + if u.force && u.forceConflict { + return fmt.Errorf("cannot use both 'force' (--force-replace) and 'force_conflicts' (--force-conflicts) together") + } + args := u.globalFlags() args = append(args, "upgrade", "--install")