# Changelog

All notable changes to this project will be documented in this file.

## [Unreleased]

### Changed

- Updated `kube` from 0.97 to 2.0.1 for latest Kubernetes client features
- Updated `k8s-openapi` from 0.23 to 0.26 with v1_31 API support
- Fixed NetworkPolicy pod_selector to be Optional per kube 2.0 API changes

## [0.1.0] - 2025-01-26

### Added

#### Core Resources
- **Deployments**: Full lifecycle management with health probes, init containers, rolling updates, rollbacks, and scaling
- **Services**: ClusterIP, NodePort, and LoadBalancer support
- **Secrets**: Docker registry and generic secrets management
- **Namespaces**: Namespace creation and management
- **ConfigMaps**: Configuration data management with volume mounting
- **Ingress**: HTTP/HTTPS routing with TLS support and path-based routing
- **Gateway API**: Next-generation traffic management with Gateway and HTTPRoute resources
- **NetworkPolicy**: Network security and micro-segmentation with ingress/egress rules
- **Jobs**: Batch processing with parallelism, retries, and TTL
- **CronJobs**: Scheduled recurring tasks with cron syntax
- **PersistentVolumeClaims**: Persistent storage management with multiple access modes
- **HorizontalPodAutoscaler**: Auto-scaling based on CPU, memory, and custom metrics

#### Advanced Features
- Health probes (liveness, readiness, startup) with HTTP, TCP, and Exec support
- Init containers for initialization tasks
- Resource limits and requests (CPU and memory)
- Volume mounts (ConfigMap, Secret, EmptyDir, HostPath, PersistentVolumeClaim)
- Image pull secrets for private registries
- Service accounts for RBAC integration
- Command and args override for containers
- Pre-deployment validation
- Deployment strategies (RollingUpdate, Recreate)
- Multi-namespace support
- Label-based resource querying

#### Developer Experience
- Type-safe builder patterns throughout
- Comprehensive error types with detailed context
- Ergonomic API design
- Full async/await support with tokio
- 66 unit tests covering all functionality

### Features by Category

**Storage & Configuration**
- ConfigMap management with binary data support
- Secret management (Docker registry, generic)
- PersistentVolumeClaim support with storage classes
- Volume mounting in all supported formats

**Networking & Traffic**
- Service management (ClusterIP, NodePort, LoadBalancer)
- Ingress with TLS and path-based routing
- Gateway API for advanced traffic management
- NetworkPolicy for network segmentation

**Workloads**
- Deployment with rolling updates and rollbacks
- Jobs for batch processing
- CronJobs for scheduled tasks
- Auto-scaling with HorizontalPodAutoscaler

**Observability & Operations**
- Health probes (liveness, readiness, startup)
- Deployment status monitoring
- Resource existence checks
- Detailed error reporting

### Documentation
- Comprehensive README with quick start guide
- Inline API documentation for all public types
- Usage examples for all major features
- Production deployment examples

### Testing
- 66 unit tests covering all modules
- Clean compilation with no errors
- All tests passing

## Architecture

The library is organized into focused modules:
- `client`: Main client for accessing Kubernetes API
- `deployment`: Deployment specifications and management
- `service`: Service specifications and management
- `secret`: Secret management
- `namespace`: Namespace operations
- `config`: Configuration types and options
- `configmap`: ConfigMap management
- `ingress`: Ingress management
- `gateway`: Gateway API management
- `networkpolicy`: NetworkPolicy management
- `job`: Job management
- `cronjob`: CronJob management
- `pvc`: PersistentVolumeClaim management
- `hpa`: HorizontalPodAutoscaler management
- `error`: Comprehensive error types
