All checks were successful
Run Check Script / check (pull_request) Successful in 1m15s
This includes Id, IpAddress, Url and some other heavily used types
42 lines
1.3 KiB
Rust
42 lines
1.3 KiB
Rust
use std::str::FromStr;
|
|
|
|
use harmony::{
|
|
inventory::Inventory,
|
|
modules::tenant::TenantScore,
|
|
topology::{K8sAnywhereTopology, tenant::TenantConfig},
|
|
};
|
|
use harmony_types::id::Id;
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
let tenant = TenantScore {
|
|
config: TenantConfig {
|
|
id: Id::from_str("test-tenant-id").unwrap(),
|
|
name: "testtenant".to_string(),
|
|
..Default::default()
|
|
},
|
|
};
|
|
|
|
harmony_cli::run(
|
|
Inventory::autoload(),
|
|
K8sAnywhereTopology::from_env(),
|
|
vec![Box::new(tenant)],
|
|
None,
|
|
)
|
|
.await
|
|
.unwrap();
|
|
}
|
|
|
|
// TODO write tests
|
|
// - Create Tenant with default config mostly, make sure namespace is created
|
|
// - deploy sample client/server app with nginx unprivileged and a service
|
|
// - exec in the client pod and validate the following
|
|
// - can reach internet
|
|
// - can reach server pod
|
|
// - can resolve dns queries to internet
|
|
// - can resolve dns queries to services
|
|
// - cannot reach services and pods in other namespaces
|
|
// - Create Tenant with specific cpu/ram/storage requests / limits and make sure they are enforced by trying to
|
|
// deploy a pod with lower requests/limits (accepted) and higher requests/limits (rejected)
|
|
// - Create TenantCredentials and make sure they give only access to the correct tenant
|