1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use super::{config::ShipcatConfig, manifest::ShipcatManifest, Manifest};
use crate::{config::Config, states::ManifestState};
use apiexts::CustomResourceDefinition;
use k8s_openapi::apiextensions_apiserver::pkg::apis::apiextensions::v1beta1 as apiexts;
pub fn gen_all_crds() -> Vec<CustomResourceDefinition> {
let shipcatManifest = ShipcatManifest::crd();
let shipcatConfig = ShipcatConfig::crd();
vec![shipcatConfig, shipcatManifest]
}
impl From<Manifest> for ShipcatManifest {
fn from(mf: Manifest) -> ShipcatManifest {
assert_eq!(mf.state, ManifestState::Base);
#[allow(clippy::redundant_clone)]
ShipcatManifest::new(&mf.name.clone(), mf)
}
}
impl From<Config> for ShipcatConfig {
fn from(conf: Config) -> ShipcatConfig {
let rgs = conf.list_regions();
assert!(!conf.has_secrets());
let allRegs = "unionised";
let rname: String = if rgs.len() == 1 {
assert_ne!(rgs[0], allRegs);
rgs[0].to_owned()
} else {
allRegs.to_owned()
};
ShipcatConfig::new(&rname, conf)
}
}