Skip to content
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion sk-core/src/events.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use std::sync::Arc;
use anyhow::bail;
use async_trait::async_trait;
use k8s_openapi::api::batch::v1 as batchv1;
use k8s_openapi::api::core::v1 as corev1;
use kube::Resource;
use kube::runtime::events;
use kube::runtime::events::{
Expand All @@ -11,8 +12,10 @@ use kube::runtime::events::{
};
#[cfg(feature = "mock")]
use mockall::automock;
use sk_api::v1::Simulation;

use crate::prelude::*;
use crate::errors::EmptyResult;
use crate::k8s::KubeResourceExt;

#[cfg_attr(feature = "mock", automock)]
#[async_trait]
Expand Down
8 changes: 6 additions & 2 deletions sk-core/src/hooks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,19 @@ use anyhow::{
bail,
};
use derive_more::Display;
use sk_api::v1::SimulationHooksConfig;
use sk_api::v1::{
Simulation,
SimulationHooksConfig,
};
use tokio::io::{
AsyncWriteExt,
BufWriter,
};
use tokio::process::Command;
use tracing::*;

use crate::prelude::*;
use crate::errors::EmptyResult;
use crate::events::SkEventRecorder;

#[derive(Debug, Display)]
#[display("{_variant}")]
Expand Down
7 changes: 5 additions & 2 deletions sk-core/src/k8s/container_state.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
use k8s_openapi::api::core::v1 as corev1;
use tracing::*;

use super::*;
use crate::prelude::*;
use crate::k8s::{
KubernetesError,
StartEndTimeable,
};

// StartEndTimeable provides helper functions for computing the start and end times of a container
// from its corresponding ContainerState object. Note that as per the Kubernetes spec, it is an
Expand Down
8 changes: 6 additions & 2 deletions sk-core/src/k8s/gvk.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ use std::borrow::Cow;
use std::fmt;
use std::ops::Deref;

use kube::api::GroupVersionKind;
use k8s_openapi::apimachinery::pkg::apis::meta::v1 as metav1;
use kube::api::{
DynamicObject,
GroupVersionKind,
TypeMeta,
};
use serde::{
Deserialize,
Deserializer,
Expand All @@ -12,7 +17,6 @@ use serde::{
};

use crate::errors::*;
use crate::prelude::*;

// GVK is a "newtype" wrapper around the metav1::GroupVersionKind object that lets me provide
// custom serialization methods. We also add some handy helper/conversion functions.
Expand Down
9 changes: 8 additions & 1 deletion sk-core/src/k8s/lease.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,22 @@ use clockabilly::{
Utc,
};
use k8s_openapi::api::coordination::v1 as coordinationv1;
use k8s_openapi::apimachinery::pkg::apis::meta::v1 as metav1;
use kube::ResourceExt;
use kube::api::Patch;
use serde_json::json;
use sk_api::v1::{
Simulation,
SimulationRoot,
};
use tracing::*;

use crate::constants::*;
use crate::errors::EmptyResult;
use crate::k8s::{
KubernetesError,
build_object_meta,
};
use crate::prelude::*;

#[derive(Debug, Eq, PartialEq)]
pub enum LeaseState {
Expand Down
5 changes: 4 additions & 1 deletion sk-core/src/k8s/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ mod util;

pub use apiset::*;
pub use gvk::*;
use k8s_openapi::api::core::v1 as corev1;
use k8s_openapi::apimachinery::pkg::apis::meta::v1 as metav1;
use kube::api::TypeMeta;
pub use lease::*;
pub use owners::OwnersCache;
use serde::{
Expand All @@ -21,7 +24,7 @@ pub use util::*;

use crate::errors::*;
use crate::macros::partial_ord_eq_ref;
use crate::prelude::*;


const LAST_APPLIED_CONFIG_LABEL_KEY: &str = "kubectl.kubernetes.io/last-applied-configuration";
const DEPL_REVISION_LABEL_KEY: &str = "deployment.kubernetes.io/revision";
Expand Down
11 changes: 8 additions & 3 deletions sk-core/src/k8s/owners.rs
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
use std::collections::HashMap;

use async_recursion::async_recursion;
use kube::Resource;
use k8s_openapi::apimachinery::pkg::apis::meta::v1 as metav1;
use kube::api::ListParams;
use kube::discovery::{
ApiCapabilities,
Scope,
};
use kube::{
Resource,
ResourceExt,
};
use tracing::*;

use super::*;
use crate::k8s::{
DynamicApiSet,
GVK,
KubeResourceExt,
format_gvk_name,
};
use crate::prelude::*;


// TODO I really want a way to mock out the OwnersCache, because
// any tests that depend on it implicitly now have to depend on tokio
Expand Down
9 changes: 7 additions & 2 deletions sk-core/src/k8s/pod_ext.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
use super::*;
use crate::prelude::*;
use anyhow::bail;
use k8s_openapi::api::core::v1 as corev1;

use crate::k8s::{
KubernetesError,
PodExt,
};

const KUBE_SVC_ACCOUNT_VOLUME_NAME_PREFIX: &str = "kube-api-access";

Expand Down
9 changes: 7 additions & 2 deletions sk-core/src/k8s/pod_lifecycle.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,15 @@ use std::cmp::{
min,
};

use k8s_openapi::api::core::v1 as corev1;
use tracing::*;

use super::*;
use crate::prelude::*;
use crate::k8s::{
KubeResourceExt,
PodExt,
PodLifecycleData,
StartEndTimeable,
};

// A PodLifecycleData object is how we track the length of time a pod was running in a cluster. It
// has three states, Empty, Running, and Finished. For each state, we track the timestamps that
Expand Down
3 changes: 2 additions & 1 deletion sk-core/src/k8s/sim.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
use kube::ResourceExt;
use sk_api::v1::{
Simulation,
SimulationMetricsConfig,
Expand All @@ -6,8 +7,8 @@ use sk_api::v1::{
SimulationState,
};

use crate::constants::*;
use crate::k8s::build_global_object_meta;
use crate::prelude::*;

pub fn metrics_ns(sim: &Simulation) -> String {
match &sim.spec.metrics {
Expand Down
4 changes: 4 additions & 0 deletions sk-core/src/k8s/tests/lease_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ use httpmock::Method::*;
use k8s_openapi::api::coordination::v1 as coordinationv1;
use kube::error::ErrorResponse;
use serde_json::json;
use sk_api::v1::{
Simulation,
SimulationRoot,
};

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because we are no longer importing prelude in sk-core/src/k8s/mod.rs


use super::*;

Expand Down
1 change: 1 addition & 0 deletions sk-core/src/k8s/tests/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ mod util_test;
use sk_testutils::*;

use super::*;
use crate::constants::*;

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also now needed because the prelude is not being imported in sk-core/src/k8s/mod.rs

use crate::macros::*;
1 change: 1 addition & 0 deletions sk-core/src/k8s/tests/util_test.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use assertables::*;
use clockabilly::Utc;
use kube::api::DynamicObject;

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and .... also now needed because the prelude is not being imported in sk-core/src/k8s/mod.rs

use serde_json::Value;

use super::*;
Expand Down
16 changes: 14 additions & 2 deletions sk-core/src/k8s/util.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,26 @@
use std::collections::BTreeMap;

use kube::api::Resource;
use k8s_openapi::api::core::v1 as corev1;
use k8s_openapi::apimachinery::pkg::apis::meta::v1 as metav1;
use kube::ResourceExt;
use kube::api::{
DynamicObject,
Resource,
};
use serde_json::{
Map,
Value,
};

use super::*;
use crate::constants::*;
use crate::errors::*;
use crate::k8s::{
DEPL_REVISION_LABEL_KEY,
GVK,
KubernetesError,
LAST_APPLIED_CONFIG_LABEL_KEY,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feel like these should be moved into constants

};
use crate::prelude::KubeResourceExt;

const MAX_LABEL_LENGTH: usize = 63;

Expand Down
2 changes: 1 addition & 1 deletion sk-core/src/trace/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use serde::{
use thiserror::Error;
use tracing::*;

use crate::constants::KNOWN_GVKS_METADATA;
use crate::constants::*;
use crate::k8s::GVK;

#[derive(Debug, Error)]
Expand Down
2 changes: 1 addition & 1 deletion sk-core/src/trace/tests/pod_owners_map_test.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use std::collections::HashMap;

use super::*;
use crate::constants::DEPLOYMENT_GVK;
use crate::constants::*;
use crate::k8s::PodLifecycleData;
use crate::trace::TraceIndex;
use crate::trace::pod_owners_map::{
Expand Down
2 changes: 1 addition & 1 deletion sk-core/src/trace/tests/trace_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use sk_testutils::{
};

use super::*;
use crate::constants::DEPLOYMENT_GVK;
use crate::constants::*;
use crate::k8s::PodLifecycleData;
use crate::trace::Trace;
use crate::trace::event::TraceEvent;
Expand Down
2 changes: 1 addition & 1 deletion sk-driver/src/runner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ use sk_core::prelude::*;
use tokio::time::sleep;
use tracing::*;

use super::*;
use crate::DriverContext;
use crate::util::{
compute_step_size,
wait_if_paused,
Expand Down
Loading