sherpack_kube/
lib.rs

1//! Sherpack Kube - Kubernetes integration for Sherpack
2//!
3//! This crate provides:
4//! - **Storage Drivers**: Persist release information in Kubernetes (Secrets, ConfigMaps) or locally
5//! - **Release Management**: Full lifecycle management with state machine and auto-recovery
6//! - **Hooks System**: Improved hooks with policies and better error handling
7//! - **Diff Engine**: Compare releases and detect cluster drift
8//! - **Health Checks**: Validate deployments with REAL Kubernetes API calls
9//! - **Sync Waves**: Resource ordering with wait-for dependencies
10//! - **Progress Reporting**: Real-time feedback during deployment operations
11//! - **Annotations**: Helm-compatible annotation parsing with Sherpack extensions
12
13pub mod actions;
14pub mod annotations;
15pub mod client;
16pub mod crd;
17pub mod diff;
18pub mod error;
19pub mod health;
20pub mod hooks;
21pub mod progress;
22pub mod release;
23pub mod resources;
24pub mod storage;
25pub mod waves;
26
27pub use actions::{InstallOptions, RollbackOptions, UninstallOptions, UpgradeOptions};
28pub use annotations::{DeletePolicy, FailurePolicy, ResourceRef};
29pub use client::KubeClient;
30pub use diff::{ChangeType, DiffEngine, DiffResult, ResourceChange};
31pub use error::{KubeError, Result};
32pub use health::{HealthCheckConfig, HealthChecker, HealthStatus, ResourceHealth};
33pub use hooks::{Hook, HookCleanupPolicy, HookExecutor, HookFailurePolicy, HookPhase};
34pub use progress::{ProgressReporter, ResourceState, ResourceStatus};
35pub use release::{ReleaseState, StoredRelease, ValueSource, ValuesProvenance};
36pub use resources::{ApplyResult, DeleteResult, OperationSummary, ResourceManager};
37pub use storage::{
38    CompressionMethod, LargeReleaseStrategy, MockStorageDriver, OperationCounts, StorageConfig,
39    StorageDriver,
40};
41pub use waves::{ExecutionPlan, Resource, Wave, WaveExecutionConfig};
42// CRD handling - Phase 2 Safe Updates
43pub use crd::{
44    ChangeKind,
45    ChangeSeverity,
46    CrdAnalysis,
47    // Analysis types
48    CrdAnalyzer,
49    CrdApplyResult,
50    CrdChange,
51    CrdManager,
52    CrdParser,
53    // Schema types
54    CrdSchema,
55    CrdScope,
56    CrdUpgradeResult,
57    ForceStrategy,
58    // Apply operations
59    ResourceCategory,
60    SafeStrategy,
61    SkipStrategy,
62    UpgradeDecision,
63    // Strategy types
64    UpgradeStrategy,
65    strategy_from_options,
66};
67
68// CRD handling - Phase 3 Templated CRDs
69pub use crd::{
70    CRD_POLICY_ANNOTATION,
71    CrdDeletionImpact,
72    // Detection types
73    CrdLintCode,
74    CrdLintWarning,
75    CrdLocation,
76    CrdOwnership,
77    // Policy types
78    CrdPolicy,
79    // Protection types
80    CrdProtection,
81    DeletionConfirmation,
82    DeletionImpactSummary,
83    DetectedCrd,
84    HELM_RESOURCE_POLICY,
85    JinjaConstruct,
86    LintSeverity,
87    TemplatedCrdFile,
88    contains_jinja_syntax,
89    detect_crds_in_manifests,
90    is_crd_manifest,
91    lint_crds,
92};