feat(youki-deploy): add DaemonSet-based installer for installing youki on Kubernetes #3526
feat(youki-deploy): add DaemonSet-based installer for installing youki on Kubernetes #3526saku3 wants to merge 1 commit into
Conversation
Signed-off-by: Yusuke Sakurai <yusuke.sakurai@3-shake.com>
nayuta723
left a comment
There was a problem hiding this comment.
This might be outside the scope of this PR, but I left a comment on the Dockerfile. Please take a look.
| kind delete cluster --name {{ KIND_CLUSTER_NAME }} | ||
|
|
||
| [private] | ||
| kind-cluster-multi: |
There was a problem hiding this comment.
Since it’s not idempotent, it would be better to skip it if the cluster already exists.
| name: youki | ||
| handler: youki | ||
| --- | ||
| apiVersion: v1 |
There was a problem hiding this comment.
If we’re not configuring RBAC or anything similar, deploying a ServiceAccount probably doesn’t provide much value.
| && rm -rf /var/lib/apt/lists/* | ||
| WORKDIR /youki | ||
| COPY . . | ||
| RUN cargo build --release -p youki --features "v2 systemd" |
There was a problem hiding this comment.
We’d like to enable the build cache as shown below.
| RUN cargo build --release -p youki --features "v2 systemd" | |
| RUN --mount=type=cache,target=/root/.cargo/registry \ | |
| --mount=type=cache,target=/root/.cargo/git \ | |
| --mount=type=cache,target=/youki/target \ | |
| cargo build --release -p youki --features "v2 systemd" && \ | |
| cp target/release/youki /tmp/youki |
| [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.${RUNTIME_HANDLER}] | ||
| runtime_type = "io.containerd.runc.v2" | ||
| [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.${RUNTIME_HANDLER}.options] | ||
| BinaryName = "${HOST_BIN_DIR#/host}/youki" |
There was a problem hiding this comment.
Since this is written with a dependency on the youki-deploy DaemonSet, I’d like to revise it.
Please configure separate default values for HOST_BIN_DIR and REAL_BIN_DIR.
| kind: RuntimeClass | ||
| metadata: | ||
| name: youki | ||
| handler: youki |
There was a problem hiding this comment.
Please configure scheduling to avoid failures caused by early scheduling.
Description
Adds
tools/youki-deploy/, a DaemonSet-based installer that drops the youki binary onto each node of a Kubernetes cluster and registers it with containerd as a RuntimeClass named youki.This provides a minimal DaemonSet for installing
youkias part of this issue #3525.Added the following files under
tools/youki-deploy/.install-youki.sh./usr/local/bin/youkion the host, appends ayoukiruntime block to
/etc/containerd/config.tomlRuntimeClass youki+ ServiceAccount + DaemonSet (privileged, hostPID, hostPath mounts on/usr/local/binand/etc/containerd).added document
docs/src/developer/e2e/kubernetes_test.mdwith a Multi Node deploy test section.Type of Change
Testing
Related Issues
Part of #3525
Additional Context