Set up the repository structure following GitOps principles: - apps/ for application deployments (Stalwart as example) - infrastructure/ for cluster-wide configs (networking, monitoring) - docs/ for general documentation Migrated complete Stalwart deployment configuration including: - Multiple deployment variants (basic, OIDC-enabled) - Helm values files - Monitoring and dashboard configurations - Operational documentation (backup/restore, bootstrap) - Configuration patches and fixes Added comprehensive README files at each level to guide future use. Co-Authored-By: Paperclip <noreply@paperclip.ing>
65 lines
No EOL
2.4 KiB
Markdown
65 lines
No EOL
2.4 KiB
Markdown
# stack.basicstack.de
|
|
|
|
CD/CI deployment manifests and configurations for the basicstack.de Kubernetes cluster.
|
|
|
|
## Repository Structure
|
|
|
|
```
|
|
stack.basicstack.de/
|
|
├── apps/ # Application deployments
|
|
│ ├── stalwart/ # Stalwart mail server (example)
|
|
│ └── forgejo/ # Forgejo Git service (placeholder)
|
|
├── infrastructure/ # Infrastructure-level configurations
|
|
│ ├── networking/ # Network policies, ingress, DNS
|
|
│ └── monitoring/ # Monitoring, logging, observability
|
|
└── docs/ # Documentation and guides
|
|
```
|
|
|
|
## Purpose
|
|
|
|
This repository serves as the central source of truth for all deployment configurations targeting the `basicstack.de` Kubernetes cluster. It follows GitOps principles where infrastructure and application state is declaratively defined and version-controlled.
|
|
|
|
## Directory Details
|
|
|
|
### `apps/`
|
|
Contains deployment configurations for individual applications and services running on the cluster. Each application should have its own subdirectory with:
|
|
- Kubernetes manifests (Deployments, StatefulSets, Services, etc.)
|
|
- Helm values files
|
|
- Configuration files
|
|
- Application-specific documentation
|
|
|
|
**Example:** The `stalwart/` directory contains the complete deployment configuration for the Stalwart mail server, including multiple deployment variants, monitoring setup, and operational guides.
|
|
|
|
### `infrastructure/`
|
|
Contains cluster-wide infrastructure configurations:
|
|
- **networking/**: Ingress controllers, network policies, DNS configurations, load balancers
|
|
- **monitoring/**: Prometheus, Grafana, logging infrastructure, observability tools
|
|
|
|
### `docs/`
|
|
General documentation including:
|
|
- Deployment procedures
|
|
- Cluster architecture
|
|
- Troubleshooting guides
|
|
- Best practices
|
|
|
|
## Getting Started
|
|
|
|
1. Clone this repository
|
|
2. Review the example Stalwart deployment in `apps/stalwart/`
|
|
3. Follow the pattern for new application deployments
|
|
4. Ensure all manifests are tested before committing
|
|
|
|
## Contributing
|
|
|
|
All changes should be:
|
|
1. Committed with clear, descriptive messages
|
|
2. Tested in a development environment when possible
|
|
3. Documented appropriately
|
|
4. Reviewed before deployment to production
|
|
|
|
## Cluster Information
|
|
|
|
- **Cluster**: basicstack.de
|
|
- **Platform**: K3s on Hetzner Cloud
|
|
- **Namespace Strategy**: One namespace per application (recommended)
|
|
- **Ingress**: Traefik (default K3s ingress controller) |