#[allow(unused_imports)]
mod prelude {
pub use k8s_openapi::api::core::v1::ObjectReference;
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 = "MachinePool",
plural = "machinepools"
)]
#[kube(namespaced)]
#[kube(status = "MachinePoolStatus")]
#[kube(derive = "Default")]
#[kube(derive = "PartialEq")]
pub struct MachinePoolSpec {
#[serde(rename = "clusterName")]
pub cluster_name: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureDomains"
)]
pub failure_domains: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "providerIDList"
)]
pub provider_id_list: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replicas: Option<i32>,
pub template: MachinePoolTemplate,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachinePoolTemplate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<MachinePoolTemplateMetadata>,
pub spec: MachinePoolTemplateSpec,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachinePoolTemplateMetadata {
#[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 MachinePoolTemplateSpec {
pub bootstrap: MachinePoolTemplateSpecBootstrap,
#[serde(rename = "clusterName")]
pub cluster_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deletion: Option<MachinePoolTemplateSpecDeletion>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureDomain"
)]
pub failure_domain: Option<String>,
#[serde(rename = "infrastructureRef")]
pub infrastructure_ref: MachinePoolTemplateSpecInfrastructureRef,
#[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<MachinePoolTemplateSpecReadinessGates>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub taints: Option<Vec<MachinePoolTemplateSpecTaints>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachinePoolTemplateSpecBootstrap {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configRef")]
pub config_ref: Option<MachinePoolTemplateSpecBootstrapConfigRef>,
#[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 MachinePoolTemplateSpecBootstrapConfigRef {
#[serde(rename = "apiGroup")]
pub api_group: String,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachinePoolTemplateSpecDeletion {
#[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 MachinePoolTemplateSpecInfrastructureRef {
#[serde(rename = "apiGroup")]
pub api_group: String,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachinePoolTemplateSpecReadinessGates {
#[serde(rename = "conditionType")]
pub condition_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub polarity: Option<MachinePoolTemplateSpecReadinessGatesPolarity>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub enum MachinePoolTemplateSpecReadinessGatesPolarity {
Positive,
Negative,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct MachinePoolTemplateSpecTaints {
pub effect: MachinePoolTemplateSpecTaintsEffect,
pub key: String,
pub propagation: MachinePoolTemplateSpecTaintsPropagation,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub enum MachinePoolTemplateSpecTaintsEffect {
NoSchedule,
PreferNoSchedule,
NoExecute,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub enum MachinePoolTemplateSpecTaintsPropagation {
Always,
OnInitialization,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachinePoolStatus {
#[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<MachinePoolStatusDeprecated>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub initialization: Option<MachinePoolStatusInitialization>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeRefs")]
pub node_refs: Option<Vec<ObjectReference>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "observedGeneration"
)]
pub observed_generation: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phase: Option<MachinePoolStatusPhase>,
#[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",
rename = "upToDateReplicas"
)]
pub up_to_date_replicas: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachinePoolStatusDeprecated {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub v1beta1: Option<MachinePoolStatusDeprecatedV1beta1>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachinePoolStatusDeprecatedV1beta1 {
#[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 = "readyReplicas"
)]
pub ready_replicas: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "unavailableReplicas"
)]
pub unavailable_replicas: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq, JsonSchema)]
pub struct MachinePoolStatusInitialization {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "bootstrapDataSecretCreated"
)]
pub bootstrap_data_secret_created: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "infrastructureProvisioned"
)]
pub infrastructure_provisioned: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub enum MachinePoolStatusPhase {
Pending,
Provisioning,
Provisioned,
Running,
ScalingUp,
ScalingDown,
Scaling,
Deleting,
Failed,
Unknown,
}