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,
}
```