kubernetes/kops · error
error updating addon from %q: %w
Error message
error updating addon from %q: %w
What it means
This is the aggregate error returned at the end of updateAddon: it wraps the accumulated multierr (from manifest read, apply, and/or prune failures) along with the manifest URL, giving one combined failure for the whole addon update in EnsureUpdated.
Source
Thrown at channels/pkg/channels/addon.go:222
merr = multierr.Append(merr, fmt.Errorf("error applying update: %w", applyError))
}
if pruneError = pruner.Prune(ctx, data, a.Spec.Prune); pruneError != nil {
merr = multierr.Append(merr, fmt.Errorf("error pruning manifest: %w", pruneError))
}
if applyError != nil && pruneError == nil {
// If we failed to apply, but not prune, we should try to apply again
if err := applier.Apply(ctx, data); err != nil {
merr = multierr.Append(merr, fmt.Errorf("error applying update after prune: %w", err))
} else {
// If we succeeded to apply after prune, clear the errors
merr = nil
}
}
if merr != nil {
return fmt.Errorf("error updating addon from %q: %w", manifestURL, merr)
}
if err := a.AddNeedsUpdateLabel(ctx, k8sClient, required); err != nil {
return fmt.Errorf("error adding needs-update label: %v", err)
}
channel := a.buildChannel()
err = channel.SetInstalledVersion(ctx, k8sClient, a.ChannelVersion())
if err != nil {
return fmt.Errorf("error applying annotation to record addon installation: %v", err)
}
return nil
}
func (a *Addon) AddNeedsUpdateLabel(ctx context.Context, k8sClient kubernetes.Interface, required *AddonUpdate) error {
if required.ExistingVersion != nil {
if a.Spec.NeedsRollingUpdate != "" {
err := a.patchNeedsUpdateLabel(ctx, k8sClient)View on GitHub (pinned to 4c8573c808)
Solutions
- Read the wrapped multi-error to see which stage (read/apply/prune) failed
- Fix the individual addon failure indicated by the wrapped errors
- Re-run kops apply addons / the channels controller after remediation
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at channels/pkg/channels/addon.go:222 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/cb5d9eed9d869084.
Report an issue: GitHub.