""" Configuration classes for TiOP managers. """ from dataclasses import dataclass from pathlib import Path from typing import Callable, Any, Optional @dataclass class ClusterManagerConfig: """Configuration for ClusterManager.""" tiop_home: Path script_dir: Path binary_manager: Any # BinaryManager instance run_kubectl: Callable run_jsonnet: Callable namespace: Optional[str] = None # None means use current context's namespace @dataclass class KubeManagerConfig: """Configuration for KubeManager.""" tiop_home: Path binary_manager: Any # BinaryManager instance minikube_config: Path kubeconfig_state_file: Path run_kubectl: Callable run_minikube: Callable