mirror of
https://github.com/kata-containers/kata-containers.git
synced 2026-07-12 18:46:35 +00:00
Add zstd and tar as Rust dependencies and rewrite the artifact installation logic to extract only the component tarballs required by the enabled runtime classes. extract_component_tarballs reads shim-components.json to determine which kata-static-<name>.tar.zst files are needed for the selected shims and current architecture. Shared components (e.g. kernel, shim-v2-go) are listed by multiple shims and must only be unpacked once per install run. Deduplication is handled with an in-memory set passed through the call, avoiding any risk of stale on-disk state surviving across pod restarts. Within each tarball, opt/kata path prefixes are stripped and absolute symlink / hard-link targets are rewritten to point at the resolved installation directory, correctly handling MULTI_INSTALL_SUFFIX. Signed-off-by: Fabiano Fidêncio <ffidencio@nvidia.com>
55 lines
1.3 KiB
TOML
55 lines
1.3 KiB
TOML
[package]
|
|
name = "kata-deploy"
|
|
version = "0.1.0"
|
|
authors.workspace = true
|
|
edition = "2021"
|
|
license.workspace = true
|
|
rust-version.workspace = true
|
|
|
|
[[bin]]
|
|
name = "kata-deploy"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
clap.workspace = true
|
|
env_logger = "0.10"
|
|
k8s-openapi = { version = "0.26", default-features = false, features = [
|
|
"v1_33",
|
|
] }
|
|
# kata-deploy doesn't use kube::runtime (controllers/watchers/reflectors) or
|
|
# kube::derive (the CustomResource macro). Skipping those features keeps the
|
|
# binary smaller and trims the static data segment that gets mapped into RSS.
|
|
#
|
|
# `ring` matches kube's own default crypto provider for rustls 0.23+ and
|
|
# must stay enabled — without it, rustls panics at runtime with
|
|
# "Could not automatically determine the process-level CryptoProvider".
|
|
kube = { version = "2.0", default-features = false, features = [
|
|
"client",
|
|
"rustls-tls",
|
|
"ring",
|
|
] }
|
|
libc.workspace = true
|
|
log.workspace = true
|
|
regex.workspace = true
|
|
serde_json.workspace = true
|
|
serde_yaml = "0.9"
|
|
tar = "0.4.45"
|
|
tokio = { workspace = true, features = [
|
|
"rt-multi-thread",
|
|
"macros",
|
|
"signal",
|
|
"sync",
|
|
"time",
|
|
"net",
|
|
"io-util",
|
|
] }
|
|
toml_edit = "0.22"
|
|
walkdir = "2"
|
|
zstd = "0.13.3"
|
|
|
|
[dev-dependencies]
|
|
rstest.workspace = true
|
|
serial_test.workspace = true
|
|
tempfile.workspace = true
|