kea_resources/
deployment.rs

1use kube::CustomResource;
2use schemars::JsonSchema;
3use serde::{Deserialize, Serialize};
4
5pub static DOCUMENT_FINALIZER: &str = "documents.kea.run";
6
7/// Generate the Kubernetes wrapper struct `Deployment` from our Spec and Status struct
8///
9/// This provides a hook for generating the CRD yaml (in crdgen.rs)
10/// NB: CustomResource generates a pub struct Document here
11/// To query for deployment.kea.run with kube, use Api<KeaDeployment>
12#[derive(CustomResource, Deserialize, Serialize, Clone, Debug, JsonSchema)]
13#[cfg_attr(test, derive(Default))]
14#[kube(kind = "Deployment", group = "kea.run", version = "v1", namespaced)]
15#[kube(status = "DeploymentStatus", shortname = "doc")]
16pub struct KeaDeploymentSpec {
17    pub title: String,
18    pub hide: bool,
19    pub content: String,
20}
21
22impl Deployment {
23    fn was_hidden(&self) -> bool {
24        self.status.as_ref().map(|s| s.hidden).unwrap_or(false)
25    }
26}
27
28/// The status object of `Deployment`
29#[derive(Deserialize, Serialize, Clone, Default, Debug, JsonSchema)]
30pub struct DeploymentStatus {
31    pub hidden: bool,
32}