Skip to content

Support updating underlying infrastructure resources during in-place node updates in MCM #1023

@afritzler

Description

@afritzler

How to categorize this issue?
/area os
/kind enhancement
/priority 3

What would you like to be added:
Support for updating the underlying infrastructure resources (e.g., ServerClaim image field) during in-place node updates in Gardener Machine Controller Manager (MCM). This includes extending the MCM provider driver interface with an UpdateMachine method, enabling providers like ironcore-metal to handle infrastructure-level updates without full node recreation.

Why is this needed:
Currently, in-place node updates in MCM do not propagate changes to the underlying infrastructure resources. For providers like ironcore-metal, where a node is backed by a ServerClaim with an image field, there is no mechanism to update this field during an in-place update. This limits our ability to rotate OS images or perform similar updates efficiently.

A proposed solution is to extend the driver interface as follows:

// Driver is the common interface for creation/deletion of the VMs over different cloud-providers.
type Driver interface {
    ...
    // UpdateMachine call is responsible for VM update on the provider
    UpdateMachine(context.Context, *UpdateMachineRequest) (*UpdateMachineResponse, error)
    ...
}

The UpdateMachine method would allow provider-specific logic (e.g., updating a ServerClaim's image) while preserving the node identity, avoiding full termination and recreation.

A POC implementation of this approach can be found here:

This issue is intended to collect feedback, ideas, and alternative approaches to solving this infrastructure update gap during in-place updates.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/osOperation system relatedkind/enhancementEnhancement, improvement, extensionpriority/3Priority (lower number equals higher priority)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions