Remove the stub container
The queue-proxy container interacts directly with the user workload Firecracker-Containerd container. However, we create a stub lightweight user container still so that CRI Operations such as ContainerStatus, ListContainers do not require additional support. Once firecracker-containerd supports there call, we can decommission the stub.
Currently, container and gVisor based sandboxes support function deployment in the same canonical format:
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: fibonacci-python
namespace: default
spec:
template:
spec:
containers:
- image: docker.io/NAME/NAME:TAG
ports:
- name: h2c
containerPort: 50000
However, due to the workaround we have in Knative fork used by vHive, the format of function deployed in Firecracker needs to be different:
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: fibonacci-python
namespace: default
spec:
template:
spec:
containers:
- image: crccheck/hello-world:latest # Stub image. See https://github.com/ease-lab/vhive/issues/68
ports:
- name: h2c # For GRPC support
containerPort: 50051
env:
- name: GUEST_PORT # Port on which the firecracker-containerd container is accepting requests
value: "50051"
- name: GUEST_IMAGE # Container image to use for firecracker-containerd container
value: "docker.io/NAME/NAME:TAG"
Please note that vSwarm benchmark YAMLs are written in the canonical format and need to be modified to be used with Firecracker (Issue)