mirror of
https://github.com/aquasecurity/kube-hunter.git
synced 2026-08-21 13:16:28 +00:00
* added service account token flag to use in hunting * added flag to main parsing config creation * fixed linting issues * added documentation on the service-account-token flag * minor readme change
56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
from dataclasses import dataclass
|
|
from typing import Any, Optional
|
|
|
|
|
|
@dataclass
|
|
class Config:
|
|
"""Config is a configuration container.
|
|
It contains the following fields:
|
|
- active: Enable active hunters
|
|
- cidr: Network subnets to scan
|
|
- dispatcher: Dispatcher object
|
|
- include_patched_version: Include patches in version comparison
|
|
- interface: Interface scanning mode
|
|
- list_hunters: Print a list of existing hunters
|
|
- log_level: Log level
|
|
- log_file: Log File path
|
|
- mapping: Report only found components
|
|
- network_timeout: Timeout for network operations
|
|
- pod: From pod scanning mode
|
|
- quick: Quick scanning mode
|
|
- remote: Hosts to scan
|
|
- report: Output format
|
|
- statistics: Include hunters statistics
|
|
"""
|
|
|
|
active: bool = False
|
|
cidr: Optional[str] = None
|
|
dispatcher: Optional[Any] = None
|
|
include_patched_versions: bool = False
|
|
interface: bool = False
|
|
log_file: Optional[str] = None
|
|
mapping: bool = False
|
|
network_timeout: float = 5.0
|
|
pod: bool = False
|
|
quick: bool = False
|
|
remote: Optional[str] = None
|
|
reporter: Optional[Any] = None
|
|
statistics: bool = False
|
|
k8s_auto_discover_nodes: bool = False
|
|
service_account_token: Optional[str] = None
|
|
kubeconfig: Optional[str] = None
|
|
|
|
|
|
_config: Optional[Config] = None
|
|
|
|
|
|
def get_config() -> Config:
|
|
if not _config:
|
|
raise ValueError("Configuration is not initialized")
|
|
return _config
|
|
|
|
|
|
def set_config(new_config: Config) -> None:
|
|
global _config
|
|
_config = new_config
|