#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use schemars::JsonSchema;
pub use serde::{Deserialize, Serialize};
pub use std::collections::BTreeMap;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, JsonSchema)]
#[kube(
group = "fleet.cattle.io",
version = "v1alpha1",
kind = "ClusterGroup",
plural = "clustergroups"
)]
#[kube(namespaced)]
#[kube(status = "ClusterGroupStatus")]
#[kube(derive = "Default")]
pub struct ClusterGroupSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<ClusterGroupSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, JsonSchema)]
pub struct ClusterGroupSelector {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "matchExpressions"
)]
pub match_expressions: Option<Vec<ClusterGroupSelectorMatchExpressions>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "matchLabels"
)]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, JsonSchema)]
pub struct ClusterGroupSelectorMatchExpressions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub operator: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, JsonSchema)]
pub struct ClusterGroupStatus {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "clusterCount"
)]
pub cluster_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<ClusterGroupStatusConditions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub display: Option<ClusterGroupStatusDisplay>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nonReadyClusterCount"
)]
pub non_ready_cluster_count: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nonReadyClusters"
)]
pub non_ready_clusters: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resourceCounts"
)]
pub resource_counts: Option<ClusterGroupStatusResourceCounts>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub summary: Option<ClusterGroupStatusSummary>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, JsonSchema)]
pub struct ClusterGroupStatusConditions {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "lastTransitionTime"
)]
pub last_transition_time: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "lastUpdateTime"
)]
pub last_update_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, JsonSchema)]
pub struct ClusterGroupStatusDisplay {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readyBundles"
)]
pub ready_bundles: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readyClusters"
)]
pub ready_clusters: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, JsonSchema)]
pub struct ClusterGroupStatusResourceCounts {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "desiredReady"
)]
pub desired_ready: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub missing: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "notReady")]
pub not_ready: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub orphaned: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ready: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unknown: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "waitApplied"
)]
pub wait_applied: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, JsonSchema)]
pub struct ClusterGroupStatusSummary {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "desiredReady"
)]
pub desired_ready: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "errApplied"
)]
pub err_applied: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nonReadyResources"
)]
pub non_ready_resources: Option<Vec<ClusterGroupStatusSummaryNonReadyResources>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "notReady")]
pub not_ready: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "outOfSync")]
pub out_of_sync: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pending: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ready: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "waitApplied"
)]
pub wait_applied: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, JsonSchema)]
pub struct ClusterGroupStatusSummaryNonReadyResources {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "bundleState"
)]
pub bundle_state: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "modifiedStatus"
)]
pub modified_status: Option<Vec<ClusterGroupStatusSummaryNonReadyResourcesModifiedStatus>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nonReadyStatus"
)]
pub non_ready_status: Option<Vec<ClusterGroupStatusSummaryNonReadyResourcesNonReadyStatus>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, JsonSchema)]
pub struct ClusterGroupStatusSummaryNonReadyResourcesModifiedStatus {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "apiVersion"
)]
pub api_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub delete: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub missing: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub patch: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, JsonSchema)]
pub struct ClusterGroupStatusSummaryNonReadyResourcesNonReadyStatus {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "apiVersion"
)]
pub api_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub summary: Option<ClusterGroupStatusSummaryNonReadyResourcesNonReadyStatusSummary>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uid: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, JsonSchema)]
pub struct ClusterGroupStatusSummaryNonReadyResourcesNonReadyStatusSummary {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub transitioning: Option<bool>,
}