kopium

A kubernetes openapi unmangler.

Creates rust structs from a named crd by converting the live openapi schema.

Installation

sh cargo install kopium

Usage

sh kopium prometheusrules.monitoring.coreos.com > prometheusrule.rs

Output

```rust use kube::CustomResource; use serde::{Deserialize, Serialize}; use std::collections::BTreeMap;

[derive(CustomResource, Serialize, Deserialize, Clone, Debug)]

[kube(group = "monitoring.coreos.com", version = "v1", kind = "PrometheusRule")]

[kube(Namespaced)]

[kube(schema = "disabled")]

pub struct PrometheusRuleSpec { #[serde(default, skipserializingif = "Vec::is_empty")] pub groups: Vec, }

[derive(Serialize, Deserialize, Clone, Debug)]

pub struct PrometheusRuleGroups { pub interval: Option, pub name: String, pub partialresponsestrategy: Option, pub rules: Vec, }

[derive(Serialize, Deserialize, Clone, Debug)]

pub struct PrometheusRuleRules { pub alert: Option, #[serde(default, skipserializingif = "BTreeMap::isempty")] pub annotations: BTreeMap, pub expr: String, pub r#for: Option, #[serde(default, skipserializingif = "BTreeMap::isempty")] pub labels: BTreeMap, pub record: Option, } ```