staircase 0.0.7

Kubernetes Step-based Operator
Documentation
use k8s_openapi::api::{
    apps::v1::Deployment,
    core::v1::{ConfigMap, Pod, Service},
};
use staircase::{ComponentizedResource, LabeledResource, NamedResource};

use crate::crd::Elevator;

#[derive(Debug, Eq, PartialEq)]
pub enum Component {
    Elevator,
}

#[derive(ComponentizedResource, NamedResource)]
#[staircase(name = "{name}-elevator", resource = ConfigMap, identifier = Elevator, component_const = Component::Elevator)]
pub struct ElevatorPage; //used to store the html page via ConfigMap

#[derive(ComponentizedResource, NamedResource, Default)]
#[staircase(name = "{name}-elevator", resource = Deployment, identifier = Elevator, component_const = Component::Elevator)]
pub struct ElevatorDeployment; //used to deploy the website

#[derive(ComponentizedResource, LabeledResource)]
#[staircase(label = "{name}-elevator", resource = Pod, identifier = Elevator, component_const = Component::Elevator)]
pub struct ElevatorPod; // necessary to get feedback from the actuall deployment

#[derive(ComponentizedResource, NamedResource, Default)]
#[staircase(name = "{name}-elevator", resource = Service, identifier = Elevator, component_const = Component::Elevator)]
pub struct ElevatorService; // used to make it available cluster-wide