Skip to main content

sz_rust_operator/
lib.rs

1//! SZ-Rust K8s Operator — 自动化 sz-rust 应用部署
2//!
3//! ## 架构说明
4//!
5//! 本包提供 K8s Operator,自动化管理 sz-rust 应用部署。
6//!
7//! - **CRD**:[`crd::SzRustApp`] 自定义资源,描述 sz-rust 应用
8//! - **Controller**:[`controller::Reconciler`] watch CRD 变化,reconcile 到期望状态
9//!
10//! ## 用法
11//!
12//! ### 安装 CRD
13//!
14//! ```sh
15//! kubectl apply -f <(sz-rust-operator crd)
16//! ```
17//!
18//! ### 创建 SzRustApp 资源
19//!
20//! ```yaml
21//! apiVersion: sz-rust.dev/v1
22//! kind: SzRustApp
23//! metadata:
24//!   name: my-app
25//! spec:
26//!   image: ghcr.io/ljclz/sz-rust:latest
27//!   replicas: 3
28//!   port: 8080
29//! ```
30//!
31//! ### 运行 Operator
32//!
33//! ```rust,ignore
34//! use sz_rust_operator::controller::run_controller;
35//!
36//! # tokio_test::block_on(async {
37//! let client = kube::Client::try_default().await.unwrap();
38//! run_controller(client).await.unwrap();
39//! # });
40//! ```
41
42#![deny(unsafe_code)]
43#![warn(missing_docs)]
44
45pub mod controller;
46pub mod crd;
47
48pub use controller::{
49    run_controller, ControllerError, ReconcileResult, Reconciler, ReconcilerStats,
50};
51pub use crd::{
52    generate_crd_yaml, DatabaseConfig, RedisConfig, ResourceRequirements, SzRustApp,
53    SzRustAppCondition, SzRustAppSpec, SzRustAppStatus,
54};