#[allow(unused_imports)]
mod prelude {
pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString;
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, PartialEq, JsonSchema)]
#[kube(
group = "fleet.cattle.io",
version = "v1alpha1",
kind = "Cluster",
plural = "clusters"
)]
#[kube(namespaced)]
#[kube(status = "ClusterStatus")]
#[kube(derive = "Default")]
#[kube(derive = "PartialEq")]
pub struct ClusterSpec {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentAffinity"
)]
pub agent_affinity: Option<ClusterAgentAffinity>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentEnvVars"
)]
pub agent_env_vars: Option<Vec<ClusterAgentEnvVars>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentNamespace"
)]
pub agent_namespace: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentResources"
)]
pub agent_resources: Option<ClusterAgentResources>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentSchedulingCustomization"
)]
pub agent_scheduling_customization: Option<ClusterAgentSchedulingCustomization>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentTolerations"
)]
pub agent_tolerations: Option<Vec<ClusterAgentTolerations>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientID")]
pub client_id: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "hostNetwork"
)]
pub host_network: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "kubeConfigSecret"
)]
pub kube_config_secret: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "kubeConfigSecretNamespace"
)]
pub kube_config_secret_namespace: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub paused: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "privateRepoURL"
)]
pub private_repo_url: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "redeployAgentGeneration"
)]
pub redeploy_agent_generation: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "templateValues"
)]
pub template_values: Option<BTreeMap<String, serde_json::Value>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinity {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeAffinity"
)]
pub node_affinity: Option<ClusterAgentAffinityNodeAffinity>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "podAffinity"
)]
pub pod_affinity: Option<ClusterAgentAffinityPodAffinity>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "podAntiAffinity"
)]
pub pod_anti_affinity: Option<ClusterAgentAffinityPodAntiAffinity>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityNodeAffinity {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "preferredDuringSchedulingIgnoredDuringExecution"
)]
pub preferred_during_scheduling_ignored_during_execution: Option<
Vec<ClusterAgentAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution>,
>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "requiredDuringSchedulingIgnoredDuringExecution"
)]
pub required_during_scheduling_ignored_during_execution:
Option<ClusterAgentAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution {
pub preference:
ClusterAgentAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAgentAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")]
pub match_fields: Option<Vec<ClusterAgentAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions
{
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields
{
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "nodeSelectorTerms")]
pub node_selector_terms: Vec<ClusterAgentAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAgentAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")]
pub match_fields: Option<Vec<ClusterAgentAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions
{
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields
{
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAffinity {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "preferredDuringSchedulingIgnoredDuringExecution"
)]
pub preferred_during_scheduling_ignored_during_execution:
Option<Vec<ClusterAgentAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecution>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "requiredDuringSchedulingIgnoredDuringExecution"
)]
pub required_during_scheduling_ignored_during_execution:
Option<Vec<ClusterAgentAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecution>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "podAffinityTerm")]
pub pod_affinity_term: ClusterAgentAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<ClusterAgentAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")]
pub match_label_keys: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")]
pub mismatch_label_keys: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<ClusterAgentAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAgentAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions
{
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAgentAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions
{
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<ClusterAgentAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")]
pub match_label_keys: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")]
pub mismatch_label_keys: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<ClusterAgentAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAgentAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions
{
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAgentAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions
{
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAntiAffinity {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "preferredDuringSchedulingIgnoredDuringExecution"
)]
pub preferred_during_scheduling_ignored_during_execution: Option<
Vec<ClusterAgentAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution>,
>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "requiredDuringSchedulingIgnoredDuringExecution"
)]
pub required_during_scheduling_ignored_during_execution: Option<
Vec<ClusterAgentAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution>,
>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "podAffinityTerm")]
pub pod_affinity_term: ClusterAgentAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<ClusterAgentAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")]
pub match_label_keys: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")]
pub mismatch_label_keys: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<ClusterAgentAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAgentAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions
{
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAgentAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions
{
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<ClusterAgentAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")]
pub match_label_keys: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")]
pub mismatch_label_keys: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<ClusterAgentAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAgentAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions
{
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAgentAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions
{
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentEnvVars {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")]
pub value_from: Option<ClusterAgentEnvVarsValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentEnvVarsValueFrom {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "configMapKeyRef"
)]
pub config_map_key_ref: Option<ClusterAgentEnvVarsValueFromConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<ClusterAgentEnvVarsValueFromFieldRef>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "fileKeyRef"
)]
pub file_key_ref: Option<ClusterAgentEnvVarsValueFromFileKeyRef>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resourceFieldRef"
)]
pub resource_field_ref: Option<ClusterAgentEnvVarsValueFromResourceFieldRef>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "secretKeyRef"
)]
pub secret_key_ref: Option<ClusterAgentEnvVarsValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentEnvVarsValueFromConfigMapKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentEnvVarsValueFromFieldRef {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "apiVersion"
)]
pub api_version: Option<String>,
#[serde(rename = "fieldPath")]
pub field_path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentEnvVarsValueFromFileKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
pub path: String,
#[serde(rename = "volumeName")]
pub volume_name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentEnvVarsValueFromResourceFieldRef {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "containerName"
)]
pub container_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub divisor: Option<IntOrString>,
pub resource: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentEnvVarsValueFromSecretKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<ClusterAgentResourcesClaims>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limits: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requests: Option<BTreeMap<String, IntOrString>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentResourcesClaims {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub request: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentSchedulingCustomization {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "podDisruptionBudget"
)]
pub pod_disruption_budget: Option<ClusterAgentSchedulingCustomizationPodDisruptionBudget>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "priorityClass"
)]
pub priority_class: Option<ClusterAgentSchedulingCustomizationPriorityClass>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentSchedulingCustomizationPodDisruptionBudget {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "maxUnavailable"
)]
pub max_unavailable: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "minAvailable"
)]
pub min_available: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentSchedulingCustomizationPriorityClass {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "preemptionPolicy"
)]
pub preemption_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterAgentTolerations {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub effect: Option<String>,
#[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",
rename = "tolerationSeconds"
)]
pub toleration_seconds: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterStatus {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "activeSchedule"
)]
pub active_schedule: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent: Option<ClusterStatusAgent>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentAffinityHash"
)]
pub agent_affinity_hash: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentConfigChanged"
)]
pub agent_config_changed: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentDeployedGeneration"
)]
pub agent_deployed_generation: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentEnvVarsHash"
)]
pub agent_env_vars_hash: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentHostNetwork"
)]
pub agent_host_network: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentMigrated"
)]
pub agent_migrated: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentNamespaceMigrated"
)]
pub agent_namespace_migrated: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentPrivateRepoURL"
)]
pub agent_private_repo_url: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentResourcesHash"
)]
pub agent_resources_hash: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentSchedulingCustomizationHash"
)]
pub agent_scheduling_customization_hash: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentTLSMode"
)]
pub agent_tls_mode: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "agentTolerationsHash"
)]
pub agent_tolerations_hash: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "apiServerCAHash"
)]
pub api_server_ca_hash: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "apiServerURL"
)]
pub api_server_url: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "cattleNamespaceMigrated"
)]
pub cattle_namespace_migrated: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<ClusterStatusConditions>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "desiredReadyGitRepos"
)]
pub desired_ready_git_repos: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "desiredReadyHelmOps"
)]
pub desired_ready_helm_ops: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub display: Option<ClusterStatusDisplay>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "garbageCollectionInterval"
)]
pub garbage_collection_interval: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readyGitRepos"
)]
pub ready_git_repos: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readyHelmOps"
)]
pub ready_helm_ops: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resourceCounts"
)]
pub resource_counts: Option<ClusterStatusResourceCounts>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheduled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub summary: Option<ClusterStatusSummary>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterStatusAgent {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lastSeen")]
pub last_seen: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterStatusConditions {
#[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>,
pub status: String,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterStatusDisplay {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readyBundles"
)]
pub ready_bundles: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterStatusResourceCounts {
#[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, PartialEq, JsonSchema)]
pub struct ClusterStatusSummary {
#[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<ClusterStatusSummaryNonReadyResources>>,
#[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, PartialEq, JsonSchema)]
pub struct ClusterStatusSummaryNonReadyResources {
#[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<ClusterStatusSummaryNonReadyResourcesModifiedStatus>>,
#[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<ClusterStatusSummaryNonReadyResourcesNonReadyStatus>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterStatusSummaryNonReadyResourcesModifiedStatus {
#[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 exist: 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, PartialEq, JsonSchema)]
pub struct ClusterStatusSummaryNonReadyResourcesNonReadyStatus {
#[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<ClusterStatusSummaryNonReadyResourcesNonReadyStatusSummary>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uid: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct ClusterStatusSummaryNonReadyResourcesNonReadyStatusSummary {
#[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>,
}