Skip to content

Restore agent is pinned to the operator's etcd minor — run a matching etcdutl per target version #339

Description

Background

Spun out of the review on #337 (per reviewer request — future work, not folded into that PR).

Problem

The restore agent ships a single compiled etcdutl (3.6.x in the current build). At restore time it rebuilds the data dir with that bundled etcdutl regardless of the cluster's spec.version. So restore is silently pinned to the operator's own etcd minor: for any cluster running a different minor, spec.bootstrap.restore is effectively unsupported, and a mismatched binary could rebuild the data dir in the wrong format before etcd boots on it.

This is documented today as a constraint (docs say spec.version and the bundled etcdutl must share a minor), but it blocks supporting multiple etcd versions.

Proposal

If the operator is to support running multiple etcd versions, the restore agent must run an etcdutl matching the target spec.version (or the observed version from #338), not the single compiled-in one — e.g. select/fetch a version-matched etcdutl, or run restore from a per-version image.

Why it matters

Without this, restore-on-bootstrap is only safe for clusters on the operator's own etcd minor. Pairs naturally with #338 (observed version) as the inputs for selecting the right etcdutl.

Refs: #337, #338

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions