Skip to content

Upgrading v0.6 to v0.7

When upgrading from v0.6 to v0.7, 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 directly and not through the Python or Rust SDK.

No changes are required for workloads using one of the SDK as the changes are already handled by the SDK itself.

Breaking changes

Control Interface Accepted message

For an improved stability of the communication between a workload and Ankaios, a new message was introduced that confirms the connection of a workload to the control interface. The confirmation sent is a response to the initial Hello sent by the workload.

message ControlInterfaceAccepted {
}

Additional non-breaking changes to the Ankaios manifest

Build-in runtime support for containerd

Ankaios now natively supports the containerd runtime. To run a containerd workload just set the runtime field to containerd and use an appropriate runtimeConfig:

apiVersion: v0.1
workloads:
  simple:
    runtime: containerd
   ...

For more details on the setup required for using the runtime, please consult the user documentation.

Podman-kube control interface

You can now use the control interface also from podman-kube workloads. As podman-kube works could be composed by multiple pods with multiple containers in each pod, the control interface pipes will be provided to a specific pod and container defined in the controlInterfaceTarget field of the workload's runtimeConfig. Other containers from the same or other pods will not have access to the control interface.

The following example shows the manifest of a podman-kube workload setup for control interface access:

apiVersion: v0.1
workloads:
  simple:
    agent: agent_A
    runtime: podman-kube
    controlInterfaceAccess:
      allowRules:
      - type: StateRule
        operation: Read
        filterMask:
        - "desiredState"
    runtimeConfig: |
      controlInterfaceTarget: pod_A/container_A
      manifest: |
        apiVersion: v1
        kind: Pod
        metadata:
          name: pod_A
        spec:
          restartPolicy: Never
          containers:
          - name: container_A
            image: ghcr.io/eclipse-ankaios/tests/alpine:latest
            command: ["sleep", "12000"]