bindy/reconcilers/bind9cluster/
types.rs

1// Copyright (c) 2025 Erick Bourgeois, firestoned
2// SPDX-License-Identifier: MIT
3
4//! Shared types and imports for `Bind9Cluster` reconciliation.
5//!
6//! This module provides common type re-exports and shared utilities
7//! used across the bind9cluster reconciliation modules.
8
9#![allow(clippy::wildcard_imports)]
10
11// Re-export commonly used types from parent modules
12pub use crate::context::Context;
13pub use crate::crd::{
14    Bind9Cluster, Bind9ClusterStatus, Bind9Instance, Bind9InstanceSpec, Condition, ServerRole,
15};
16pub use crate::labels::{
17    BINDY_CLUSTER_LABEL, BINDY_INSTANCE_INDEX_ANNOTATION, BINDY_MANAGED_BY_LABEL,
18    BINDY_RECONCILE_TRIGGER_ANNOTATION, BINDY_ROLE_LABEL, K8S_PART_OF, MANAGED_BY_BIND9_CLUSTER,
19    PART_OF_BINDY, ROLE_PRIMARY, ROLE_SECONDARY,
20};
21pub use crate::status_reasons::{
22    bind9_instance_condition_type, CONDITION_TYPE_READY, REASON_ALL_READY, REASON_NOT_READY,
23    REASON_NO_CHILDREN, REASON_PARTIALLY_READY, REASON_READY,
24};
25
26// Re-export commonly used Kubernetes types
27pub use k8s_openapi::{
28    api::{
29        apps::v1::Deployment,
30        core::v1::{ConfigMap, Secret, Service},
31    },
32    apimachinery::pkg::apis::meta::v1::ObjectMeta,
33};
34
35// Re-export kube-rs types
36pub use kube::{
37    api::{DeleteParams, ListParams, Patch, PatchParams, PostParams},
38    client::Client,
39    Api, ResourceExt,
40};
41
42// Re-export common utilities
43pub use anyhow::Result;
44pub use chrono::Utc;
45pub use serde_json::json;
46pub use std::collections::BTreeMap;
47pub use std::sync::Arc;
48pub use tracing::{debug, error, info, warn};