Skip to content

Upgrading v0.4 to v0.5

When upgrading from v0.4 to v0.5, the installation script simply needs to be ran again. However, due to some breaking changes, some manual adjustments are required for existing workloads using the control interface.

Initial Hello message for the Control Interface

In order to ensure version compatibility and avoid undefined behavior resulting from version mismatch, a new obligatory Hello message was added to the Control Interface protocol. The Hello must be sent by a workload communicating over the Control Interface at the start of the session as a first message. It is part of the ToAnkaios message and has the following format:

message Hello {
    string protocolVersion = 2; /// The protocol version used by the calling component.
}

Failing to sent the message before any other communication is done, or providing an unsupported version would result in a preliminary closing of the Control Interface session by Ankaios. The required protocolVersion string is the current Ankaios release version. As Ankaios is currently in the initial development (no official major release), minor version differences are also handled as incompatible. After the official major release, only the major versions will be compared.

To inform the workload of this, a ConnectionClosed is sent as part of the FromAnkaios message. The ConnectionClosed message contains the reason for closing the session as a string:

message ConnectionClosed {
    string reason = 1; /// A string containing the reason for closing the connection.
}

After the ConnectionClosed, no more messages would be read or sent by Ankaios on the input and output pipes.

The Control Interface instance cannot be reopened, but a new instance would be created if the workload is restarted.