initial git commit saving configs
This commit is contained in:
124
README.md
Normal file
124
README.md
Normal file
@@ -0,0 +1,124 @@
|
||||
# Kubernetes Cluster Configuration
|
||||
|
||||
A comprehensive Helm-based Kubernetes cluster setup with multiple applications and services organized by function.
|
||||
|
||||
## 📁 Project Structure
|
||||
|
||||
### Core Infrastructure
|
||||
|
||||
#### **Cluster**
|
||||
- Storage class configuration for persistent volumes
|
||||
|
||||
#### **Traefik** (`traefik/`)
|
||||
- Ingress controller and reverse proxy
|
||||
- Routes external traffic to internal services
|
||||
- Helm values configuration included
|
||||
|
||||
#### **Shared Database** (`shared-db/`)
|
||||
- Centralized PostgreSQL database instance
|
||||
- Shared across multiple applications
|
||||
- Persistent volume and claim configuration
|
||||
- NodePort service for external access
|
||||
|
||||
### Applications
|
||||
|
||||
#### **Bitwarden** (`bitwarden/`)
|
||||
- Password manager and secrets vault
|
||||
- Full Helm chart with templates and customizable values
|
||||
- Persistent storage configuration
|
||||
|
||||
#### **Vaultwarden** (`vaultwarden/`)
|
||||
- Open-source Bitwarden alternative
|
||||
- Complete Helm chart with deployment templates
|
||||
- Ingress, service, and persistence configuration
|
||||
|
||||
#### **Gitea** (`gitea/`)
|
||||
- Git hosting service
|
||||
- Persistent volume and PostgreSQL backed
|
||||
- Values configuration for customization
|
||||
|
||||
#### **Nextcloud** (`nextcloud/`)
|
||||
- File sync, sharing, and collaboration platform
|
||||
- Separate persistent volumes for data and PostgreSQL
|
||||
- Notification push service included
|
||||
- Custom ingress configuration
|
||||
|
||||
#### **Immich** (`immich/`)
|
||||
- Photo and video backup service
|
||||
- Sub-chart for PostgreSQL database management
|
||||
- Master node persistent volume
|
||||
- PostgreSQL and application storage
|
||||
|
||||
#### **Linkwarden Stack** (`linkwarden-stack/`)
|
||||
- Link management and bookmarking service
|
||||
- Complete Helm chart with ConfigMap, deployment, and ingress
|
||||
- Persistent storage configuration
|
||||
|
||||
#### **Mumble** (`mumble/`)
|
||||
- Voice communication and VoIP service
|
||||
- Helm values for configuration
|
||||
|
||||
#### **Letsencrypt** (`letsencrypt/`)
|
||||
- Automated SSL certificate provisioning
|
||||
- Integrations with ingress controllers
|
||||
|
||||
### Observability & Monitoring
|
||||
|
||||
#### **Observability Stack** (`observability/`)
|
||||
|
||||
##### **Prometheus** (`observability/prometheus/`)
|
||||
- Metrics collection and time-series database
|
||||
- Custom storage class for performance
|
||||
- Persistent volume configuration
|
||||
|
||||
##### **Loki** (`observability/loki/`)
|
||||
- Log aggregation system
|
||||
- Companion to Prometheus
|
||||
- Dedicated storage configuration
|
||||
|
||||
##### **Grafana** (`observability/grafana/`)
|
||||
- Metrics and logs visualization
|
||||
- Loki backend for log exploration
|
||||
- Dashboard and alerting capabilities
|
||||
|
||||
##### **Alloy** (`observability/alloy/`)
|
||||
- Telemetry collection agent
|
||||
- Data collection for Prometheus and Loki
|
||||
|
||||
## 🚀 Deployment
|
||||
|
||||
Each service is configured as a Helm chart with:
|
||||
- `values.yaml` - Configuration and customization
|
||||
- `Chart.yaml` - Chart metadata (where applicable)
|
||||
- `templates/` - Kubernetes resource templates
|
||||
- Persistent volume (PV) and persistent volume claim (PVC) for stateful services
|
||||
|
||||
### Quick Start
|
||||
|
||||
```bash
|
||||
# Add Helm repositories as needed
|
||||
helm repo add <repo-name> <repo-url>
|
||||
helm repo update
|
||||
|
||||
# Deploy a service
|
||||
helm install <release-name> <chart-path> -f <chart-path>/values.yaml -n <namespace>
|
||||
```
|
||||
|
||||
## 📝 Storage Configuration
|
||||
|
||||
All persistent services include:
|
||||
- **pv-\*.yaml** - PersistentVolume definitions
|
||||
- **pvc-\*.yaml** - PersistentVolumeClaim definitions
|
||||
- Reference storage class configurations
|
||||
|
||||
## 🔗 Ingress Routes
|
||||
|
||||
Traefik handles ingress routing with:
|
||||
- `ingress.yaml` templates in major services
|
||||
- SSL termination via Letsencrypt
|
||||
- Pretty hostname routing (e.g., `bitwarden.example.com`)
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- [backup.md](backup.md) - Backup and recovery procedures
|
||||
- Individual service notes in each subdirectory (notes.md, NOTES.md)
|
||||
Reference in New Issue
Block a user