use k8s_openapi::api::core::v1::Pod;
use kube::CustomResource;
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use staircase::resources::ComponentizedResource;
#[derive(CustomResource, Deserialize, Serialize, Clone, Debug, JsonSchema)]
#[kube(
group = "example.com",
version = "v1",
kind = "Foo",
status = "FooStatus",
namespaced
)]
pub struct FooSpec {
info: String,
name: String,
replicas: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, JsonSchema)]
pub struct FooStatus {
pub observed: u64,
}
struct FooPod;
#[derive(Debug, PartialEq, Eq)]
enum Component {
Main,
}
impl ComponentizedResource for FooPod {
type Component = Component;
type Resource = Pod;
const COMPONENT: Self::Component = Component::Main;
}
fn main() {
let _ = FooPod;
let _ = Component::Main;
}