#[allow(unused_imports)]
mod prelude {
pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition;
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 = "cluster.x-k8s.io",
version = "v1beta2",
kind = "MachineSet",
plural = "machinesets"
)]
#[kube(namespaced)]
#[kube(status = "MachineSetStatus")]
#[kube(derive = "Default")]
#[kube(derive = "PartialEq")]
pub struct MachineSetSpec {
#[serde(rename = "clusterName")]
pub cluster_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deletion: Option<MachineSetDeletion>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "machineNaming"
)]
pub machine_naming: Option<MachineSetMachineNaming>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replicas: Option<i32>,
pub selector: MachineSetSelector,
pub template: MachineSetTemplate,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachineSetDeletion {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<MachineSetDeletionOrder>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub enum MachineSetDeletionOrder {
Random,
Newest,
Oldest,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachineSetMachineNaming {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub template: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachineSetSelector {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "matchExpressions"
)]
pub match_expressions: Option<Vec<MachineSetSelectorMatchExpressions>>,
#[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 MachineSetSelectorMatchExpressions {
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 MachineSetTemplate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<MachineSetTemplateMetadata>,
pub spec: MachineSetTemplateSpec,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachineSetTemplateMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachineSetTemplateSpec {
pub bootstrap: MachineSetTemplateSpecBootstrap,
#[serde(rename = "clusterName")]
pub cluster_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deletion: Option<MachineSetTemplateSpecDeletion>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureDomain"
)]
pub failure_domain: Option<String>,
#[serde(rename = "infrastructureRef")]
pub infrastructure_ref: MachineSetTemplateSpecInfrastructureRef,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "minReadySeconds"
)]
pub min_ready_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "providerID"
)]
pub provider_id: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readinessGates"
)]
pub readiness_gates: Option<Vec<MachineSetTemplateSpecReadinessGates>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub taints: Option<Vec<MachineSetTemplateSpecTaints>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachineSetTemplateSpecBootstrap {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configRef")]
pub config_ref: Option<MachineSetTemplateSpecBootstrapConfigRef>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "dataSecretName"
)]
pub data_secret_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachineSetTemplateSpecBootstrapConfigRef {
#[serde(rename = "apiGroup")]
pub api_group: String,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachineSetTemplateSpecDeletion {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeDeletionTimeoutSeconds"
)]
pub node_deletion_timeout_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeDrainTimeoutSeconds"
)]
pub node_drain_timeout_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeVolumeDetachTimeoutSeconds"
)]
pub node_volume_detach_timeout_seconds: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachineSetTemplateSpecInfrastructureRef {
#[serde(rename = "apiGroup")]
pub api_group: String,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachineSetTemplateSpecReadinessGates {
#[serde(rename = "conditionType")]
pub condition_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub polarity: Option<MachineSetTemplateSpecReadinessGatesPolarity>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub enum MachineSetTemplateSpecReadinessGatesPolarity {
Positive,
Negative,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct MachineSetTemplateSpecTaints {
pub effect: MachineSetTemplateSpecTaintsEffect,
pub key: String,
pub propagation: MachineSetTemplateSpecTaintsPropagation,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub enum MachineSetTemplateSpecTaintsEffect {
NoSchedule,
PreferNoSchedule,
NoExecute,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub enum MachineSetTemplateSpecTaintsPropagation {
Always,
OnInitialization,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachineSetStatus {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "availableReplicas"
)]
pub available_replicas: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deprecated: Option<MachineSetStatusDeprecated>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "observedGeneration"
)]
pub observed_generation: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readyReplicas"
)]
pub ready_replicas: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replicas: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "upToDateReplicas"
)]
pub up_to_date_replicas: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachineSetStatusDeprecated {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub v1beta1: Option<MachineSetStatusDeprecatedV1beta1>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachineSetStatusDeprecatedV1beta1 {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "availableReplicas"
)]
pub available_replicas: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureMessage"
)]
pub failure_message: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureReason"
)]
pub failure_reason: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "fullyLabeledReplicas"
)]
pub fully_labeled_replicas: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readyReplicas"
)]
pub ready_replicas: Option<i32>,
}