mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-12 13:22:28 +00:00
security: Update rust crate versions
backporting b1f4e945b3
original commit msg (modified):
Update the rust dependencies that have upstream security fixes. Issues
fixed by this change:
- [`RUSTSEC-2020-0002`](https://rustsec.org/advisories/RUSTSEC-2020-0002) (`prost` crate)
- [`RUSTSEC-2020-0036`](https://rustsec.org/advisories/RUSTSEC-2020-0036) (`failure` crate)
- [`RUSTSEC-2021-0073`](https://rustsec.org/advisories/RUSTSEC-2021-0073) (`prost-types` crate)
- [`RUSTSEC-2021-0119`](https://rustsec.org/advisories/RUSTSEC-2021-0119) (`nix` crate)
This change also includes:
- Minor code changes for the new version of `prometheus` for the agent.
Fixes: #3296.
Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
Signed-off-by: Snir Sheriber <ssheribe@redhat.com>
This commit is contained in:
parent
1f61be842d
commit
ec3faab892
@ -7,15 +7,15 @@ edition = "2018"
|
|||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
serde_json = "1.0.39"
|
serde_json = "1.0.73"
|
||||||
# slog:
|
# slog:
|
||||||
# - Dynamic keys required to allow HashMap keys to be slog::Serialized.
|
# - Dynamic keys required to allow HashMap keys to be slog::Serialized.
|
||||||
# - The 'max_*' features allow changing the log level at runtime
|
# - The 'max_*' features allow changing the log level at runtime
|
||||||
# (by stopping the compiler from removing log calls).
|
# (by stopping the compiler from removing log calls).
|
||||||
slog = { version = "2.5.2", features = ["dynamic-keys", "max_level_trace", "release_max_level_debug"] }
|
slog = { version = "2.7.0", features = ["dynamic-keys", "max_level_trace", "release_max_level_debug"] }
|
||||||
slog-json = "2.3.0"
|
slog-json = "2.4.0"
|
||||||
slog-async = "2.3.0"
|
slog-async = "2.7.0"
|
||||||
slog-scope = "4.1.2"
|
slog-scope = "4.4.0"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
tempfile = "3.1.0"
|
tempfile = "3.2.0"
|
||||||
|
746
src/agent/Cargo.lock
generated
746
src/agent/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -24,7 +24,7 @@ serial_test = "0.5.1"
|
|||||||
# Async helpers
|
# Async helpers
|
||||||
async-trait = "0.1.42"
|
async-trait = "0.1.42"
|
||||||
async-recursion = "0.3.2"
|
async-recursion = "0.3.2"
|
||||||
futures = "0.3.12"
|
futures = "0.3.17"
|
||||||
|
|
||||||
# Async runtime
|
# Async runtime
|
||||||
tokio = { version = "1", features = ["full"] }
|
tokio = { version = "1", features = ["full"] }
|
||||||
@ -45,10 +45,10 @@ slog-scope = "4.1.2"
|
|||||||
slog-stdlog = "4.0.0"
|
slog-stdlog = "4.0.0"
|
||||||
log = "0.4.11"
|
log = "0.4.11"
|
||||||
|
|
||||||
prometheus = { version = "0.9.0", features = ["process"] }
|
prometheus = { version = "0.13.0", features = ["process"] }
|
||||||
procfs = "0.7.9"
|
procfs = "0.12.0"
|
||||||
anyhow = "1.0.32"
|
anyhow = "1.0.32"
|
||||||
cgroups = { package = "cgroups-rs", version = "0.2.5" }
|
cgroups = { package = "cgroups-rs", version = "0.2.8" }
|
||||||
|
|
||||||
# Tracing
|
# Tracing
|
||||||
tracing = "0.1.26"
|
tracing = "0.1.26"
|
||||||
|
@ -5,7 +5,7 @@ authors = ["The Kata Containers community <kata-dev@lists.katacontainers.io>"]
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
serde = "1.0.91"
|
serde = "1.0.131"
|
||||||
serde_derive = "1.0.91"
|
serde_derive = "1.0.131"
|
||||||
serde_json = "1.0.39"
|
serde_json = "1.0.73"
|
||||||
libc = "0.2.58"
|
libc = "0.2.112"
|
||||||
|
@ -23,7 +23,7 @@ scan_fmt = "0.2"
|
|||||||
regex = "1.1"
|
regex = "1.1"
|
||||||
path-absolutize = "1.2.0"
|
path-absolutize = "1.2.0"
|
||||||
anyhow = "1.0.32"
|
anyhow = "1.0.32"
|
||||||
cgroups = { package = "cgroups-rs", version = "0.2.5" }
|
cgroups = { package = "cgroups-rs", version = "0.2.8" }
|
||||||
rlimit = "0.5.3"
|
rlimit = "0.5.3"
|
||||||
|
|
||||||
tokio = { version = "1.2.0", features = ["sync", "io-util", "process", "time", "macros"] }
|
tokio = { version = "1.2.0", features = ["sync", "io-util", "process", "time", "macros"] }
|
||||||
|
@ -23,50 +23,50 @@ macro_rules! sl {
|
|||||||
lazy_static! {
|
lazy_static! {
|
||||||
|
|
||||||
static ref AGENT_SCRAPE_COUNT: IntCounter =
|
static ref AGENT_SCRAPE_COUNT: IntCounter =
|
||||||
prometheus::register_int_counter!(format!("{}_{}",NAMESPACE_KATA_AGENT,"scrape_count").as_ref(), "Metrics scrape count").unwrap();
|
prometheus::register_int_counter!(format!("{}_{}",NAMESPACE_KATA_AGENT,"scrape_count"), "Metrics scrape count").unwrap();
|
||||||
|
|
||||||
static ref AGENT_THREADS: Gauge =
|
static ref AGENT_THREADS: Gauge =
|
||||||
prometheus::register_gauge!(format!("{}_{}",NAMESPACE_KATA_AGENT,"threads").as_ref(), "Agent process threads").unwrap();
|
prometheus::register_gauge!(format!("{}_{}",NAMESPACE_KATA_AGENT,"threads"), "Agent process threads").unwrap();
|
||||||
|
|
||||||
static ref AGENT_TOTAL_TIME: Gauge =
|
static ref AGENT_TOTAL_TIME: Gauge =
|
||||||
prometheus::register_gauge!(format!("{}_{}",NAMESPACE_KATA_AGENT,"total_time").as_ref(), "Agent process total time").unwrap();
|
prometheus::register_gauge!(format!("{}_{}",NAMESPACE_KATA_AGENT,"total_time"), "Agent process total time").unwrap();
|
||||||
|
|
||||||
static ref AGENT_TOTAL_VM: Gauge =
|
static ref AGENT_TOTAL_VM: Gauge =
|
||||||
prometheus::register_gauge!(format!("{}_{}",NAMESPACE_KATA_AGENT,"total_vm").as_ref(), "Agent process total VM size").unwrap();
|
prometheus::register_gauge!(format!("{}_{}",NAMESPACE_KATA_AGENT,"total_vm"), "Agent process total VM size").unwrap();
|
||||||
|
|
||||||
static ref AGENT_TOTAL_RSS: Gauge =
|
static ref AGENT_TOTAL_RSS: Gauge =
|
||||||
prometheus::register_gauge!(format!("{}_{}",NAMESPACE_KATA_AGENT,"total_rss").as_ref(), "Agent process total RSS size").unwrap();
|
prometheus::register_gauge!(format!("{}_{}",NAMESPACE_KATA_AGENT,"total_rss"), "Agent process total RSS size").unwrap();
|
||||||
|
|
||||||
static ref AGENT_PROC_STATUS: GaugeVec =
|
static ref AGENT_PROC_STATUS: GaugeVec =
|
||||||
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_AGENT,"proc_status").as_ref(), "Agent process status.", &["item"]).unwrap();
|
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_AGENT,"proc_status"), "Agent process status.", &["item"]).unwrap();
|
||||||
|
|
||||||
static ref AGENT_IO_STAT: GaugeVec =
|
static ref AGENT_IO_STAT: GaugeVec =
|
||||||
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_AGENT,"io_stat").as_ref(), "Agent process IO statistics.", &["item"]).unwrap();
|
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_AGENT,"io_stat"), "Agent process IO statistics.", &["item"]).unwrap();
|
||||||
|
|
||||||
static ref AGENT_PROC_STAT: GaugeVec =
|
static ref AGENT_PROC_STAT: GaugeVec =
|
||||||
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_AGENT,"proc_stat").as_ref(), "Agent process statistics.", &["item"]).unwrap();
|
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_AGENT,"proc_stat"), "Agent process statistics.", &["item"]).unwrap();
|
||||||
|
|
||||||
// guest os metrics
|
// guest os metrics
|
||||||
static ref GUEST_LOAD: GaugeVec =
|
static ref GUEST_LOAD: GaugeVec =
|
||||||
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"load").as_ref() , "Guest system load.", &["item"]).unwrap();
|
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"load") , "Guest system load.", &["item"]).unwrap();
|
||||||
|
|
||||||
static ref GUEST_TASKS: GaugeVec =
|
static ref GUEST_TASKS: GaugeVec =
|
||||||
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"tasks").as_ref() , "Guest system load.", &["item"]).unwrap();
|
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"tasks") , "Guest system load.", &["item"]).unwrap();
|
||||||
|
|
||||||
static ref GUEST_CPU_TIME: GaugeVec =
|
static ref GUEST_CPU_TIME: GaugeVec =
|
||||||
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"cpu_time").as_ref() , "Guest CPU statistics.", &["cpu","item"]).unwrap();
|
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"cpu_time") , "Guest CPU statistics.", &["cpu","item"]).unwrap();
|
||||||
|
|
||||||
static ref GUEST_VM_STAT: GaugeVec =
|
static ref GUEST_VM_STAT: GaugeVec =
|
||||||
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"vm_stat").as_ref() , "Guest virtual memory statistics.", &["item"]).unwrap();
|
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"vm_stat") , "Guest virtual memory statistics.", &["item"]).unwrap();
|
||||||
|
|
||||||
static ref GUEST_NETDEV_STAT: GaugeVec =
|
static ref GUEST_NETDEV_STAT: GaugeVec =
|
||||||
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"netdev_stat").as_ref() , "Guest net devices statistics.", &["interface","item"]).unwrap();
|
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"netdev_stat") , "Guest net devices statistics.", &["interface","item"]).unwrap();
|
||||||
|
|
||||||
static ref GUEST_DISKSTAT: GaugeVec =
|
static ref GUEST_DISKSTAT: GaugeVec =
|
||||||
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"diskstat").as_ref() , "Disks statistics in system.", &["disk","item"]).unwrap();
|
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"diskstat") , "Disks statistics in system.", &["disk","item"]).unwrap();
|
||||||
|
|
||||||
static ref GUEST_MEMINFO: GaugeVec =
|
static ref GUEST_MEMINFO: GaugeVec =
|
||||||
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"meminfo").as_ref() , "Statistics about memory usage in the system.", &["item"]).unwrap();
|
prometheus::register_gauge_vec!(format!("{}_{}",NAMESPACE_KATA_GUEST,"meminfo") , "Statistics about memory usage in the system.", &["item"]).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[instrument]
|
#[instrument]
|
||||||
@ -348,17 +348,17 @@ fn set_gauge_vec_cpu_time(gv: &prometheus::GaugeVec, cpu: &str, cpu_time: &procf
|
|||||||
gv.with_label_values(&[cpu, "idle"])
|
gv.with_label_values(&[cpu, "idle"])
|
||||||
.set(cpu_time.idle as f64);
|
.set(cpu_time.idle as f64);
|
||||||
gv.with_label_values(&[cpu, "iowait"])
|
gv.with_label_values(&[cpu, "iowait"])
|
||||||
.set(cpu_time.iowait.unwrap_or(0.0) as f64);
|
.set(cpu_time.iowait.unwrap_or(0) as f64);
|
||||||
gv.with_label_values(&[cpu, "irq"])
|
gv.with_label_values(&[cpu, "irq"])
|
||||||
.set(cpu_time.irq.unwrap_or(0.0) as f64);
|
.set(cpu_time.irq.unwrap_or(0) as f64);
|
||||||
gv.with_label_values(&[cpu, "softirq"])
|
gv.with_label_values(&[cpu, "softirq"])
|
||||||
.set(cpu_time.softirq.unwrap_or(0.0) as f64);
|
.set(cpu_time.softirq.unwrap_or(0) as f64);
|
||||||
gv.with_label_values(&[cpu, "steal"])
|
gv.with_label_values(&[cpu, "steal"])
|
||||||
.set(cpu_time.steal.unwrap_or(0.0) as f64);
|
.set(cpu_time.steal.unwrap_or(0) as f64);
|
||||||
gv.with_label_values(&[cpu, "guest"])
|
gv.with_label_values(&[cpu, "guest"])
|
||||||
.set(cpu_time.guest.unwrap_or(0.0) as f64);
|
.set(cpu_time.guest.unwrap_or(0) as f64);
|
||||||
gv.with_label_values(&[cpu, "guest_nice"])
|
gv.with_label_values(&[cpu, "guest_nice"])
|
||||||
.set(cpu_time.guest_nice.unwrap_or(0.0) as f64);
|
.set(cpu_time.guest_nice.unwrap_or(0) as f64);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[instrument]
|
#[instrument]
|
||||||
@ -470,7 +470,7 @@ fn set_gauge_vec_proc_status(gv: &prometheus::GaugeVec, status: &procfs::process
|
|||||||
gv.with_label_values(&["vmswap"])
|
gv.with_label_values(&["vmswap"])
|
||||||
.set(status.vmswap.unwrap_or(0) as f64);
|
.set(status.vmswap.unwrap_or(0) as f64);
|
||||||
gv.with_label_values(&["hugetlbpages"])
|
gv.with_label_values(&["hugetlbpages"])
|
||||||
.set(status.hugetblpages.unwrap_or(0) as f64);
|
.set(status.hugetlbpages.unwrap_or(0) as f64);
|
||||||
gv.with_label_values(&["voluntary_ctxt_switches"])
|
gv.with_label_values(&["voluntary_ctxt_switches"])
|
||||||
.set(status.voluntary_ctxt_switches.unwrap_or(0) as f64);
|
.set(status.voluntary_ctxt_switches.unwrap_or(0) as f64);
|
||||||
gv.with_label_values(&["nonvoluntary_ctxt_switches"])
|
gv.with_label_values(&["nonvoluntary_ctxt_switches"])
|
||||||
|
@ -1720,6 +1720,7 @@ mod tests {
|
|||||||
fd: -1,
|
fd: -1,
|
||||||
mh: MessageHeader::default(),
|
mh: MessageHeader::default(),
|
||||||
metadata: std::collections::HashMap::new(),
|
metadata: std::collections::HashMap::new(),
|
||||||
|
timeout_nano: 0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ edition = "2018"
|
|||||||
futures = "0.3.15"
|
futures = "0.3.15"
|
||||||
clap = "2.33.0"
|
clap = "2.33.0"
|
||||||
vsock = "0.2.3"
|
vsock = "0.2.3"
|
||||||
nix = "0.21.0"
|
nix = "0.23.0"
|
||||||
libc = "0.2.94"
|
libc = "0.2.94"
|
||||||
serde = { version = "1.0.126", features = ["derive"] }
|
serde = { version = "1.0.126", features = ["derive"] }
|
||||||
bincode = "1.3.3"
|
bincode = "1.3.3"
|
||||||
@ -23,9 +23,9 @@ anyhow = "1.0.31"
|
|||||||
opentelemetry = { version = "0.14.0", features=["serialize"] }
|
opentelemetry = { version = "0.14.0", features=["serialize"] }
|
||||||
opentelemetry-jaeger = "0.13.0"
|
opentelemetry-jaeger = "0.13.0"
|
||||||
protobuf = "=2.14.0"
|
protobuf = "=2.14.0"
|
||||||
tracing-opentelemetry = "0.13.0"
|
tracing-opentelemetry = "0.16.0"
|
||||||
tracing = "0.1.26"
|
tracing = "0.1.29"
|
||||||
tracing-subscriber = "0.2.18"
|
tracing-subscriber = "0.3.3"
|
||||||
|
|
||||||
# Note: this crate sets the slog 'max_*' features which allows the log level
|
# Note: this crate sets the slog 'max_*' features which allows the log level
|
||||||
# to be modified at runtime.
|
# to be modified at runtime.
|
||||||
|
@ -21,19 +21,19 @@ hex = "0.4.2"
|
|||||||
byteorder = "1.3.4"
|
byteorder = "1.3.4"
|
||||||
|
|
||||||
logging = { path = "../../pkg/logging" }
|
logging = { path = "../../pkg/logging" }
|
||||||
slog = "2.5.2"
|
slog = "2.7.0"
|
||||||
slog-scope = "4.3.0"
|
slog-scope = "4.4.0"
|
||||||
rand = "0.7.3"
|
rand = "0.8.4"
|
||||||
protobuf = "2.14.0"
|
protobuf = "2.14.0"
|
||||||
|
|
||||||
nix = "0.21.0"
|
nix = "0.23.0"
|
||||||
libc = "0.2.69"
|
libc = "0.2.112"
|
||||||
# XXX: Must be the same as the version used by the agent
|
# XXX: Must be the same as the version used by the agent
|
||||||
ttrpc = { version = "0.5.0" }
|
ttrpc = { version = "0.5.0" }
|
||||||
|
|
||||||
# For parsing timeouts
|
# For parsing timeouts
|
||||||
humantime = "2.0.0"
|
humantime = "2.1.0"
|
||||||
|
|
||||||
# For Options (state passing)
|
# For Options (state passing)
|
||||||
serde = { version = "1.0.110", features = ["derive"] }
|
serde = { version = "1.0.131", features = ["derive"] }
|
||||||
serde_json = "1.0.53"
|
serde_json = "1.0.73"
|
||||||
|
@ -234,7 +234,7 @@ pub fn generate_random_hex_string(len: u32) -> String {
|
|||||||
|
|
||||||
let str: String = (0..len)
|
let str: String = (0..len)
|
||||||
.map(|_| {
|
.map(|_| {
|
||||||
let idx = rng.gen_range(0, CHARSET.len());
|
let idx = rng.gen_range(0..CHARSET.len());
|
||||||
CHARSET[idx] as char
|
CHARSET[idx] as char
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
Loading…
Reference in New Issue
Block a user