https://github.com/pmdevers/k8s-frontman
A Kubernetes operator for hosting and managing versioned static content with support for multiple storage providers (Azure Blob, File System). Built with .NET 10.0 and C# 14.
https://github.com/pmdevers/k8s-frontman
asp-net-core azure-blob-storage cloud-native containerization content-management csharp docker dotnet k8s kubernetes kubernetes-operator operator-framework static-content versioning webserver
Last synced: about 2 months ago
JSON representation
A Kubernetes operator for hosting and managing versioned static content with support for multiple storage providers (Azure Blob, File System). Built with .NET 10.0 and C# 14.
- Host: GitHub
- URL: https://github.com/pmdevers/k8s-frontman
- Owner: pmdevers
- License: mit
- Created: 2026-01-09T10:59:39.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-02-13T13:57:22.000Z (about 2 months ago)
- Last Synced: 2026-02-13T22:47:04.564Z (about 2 months ago)
- Topics: asp-net-core, azure-blob-storage, cloud-native, containerization, content-management, csharp, docker, dotnet, k8s, kubernetes, kubernetes-operator, operator-framework, static-content, versioning, webserver
- Language: C#
- Homepage: https://pmdevers.github.io/k8s-frontman/
- Size: 2.56 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# k8s-frontman
Manager for hosting versioned static content within Kubernetes



## Overview
k8s-frontman is a Kubernetes operator that simplifies the deployment and management of versioned static content. It provides a declarative approach to hosting and serving static files from multiple sources, with built-in support for various storage providers.
## Features
- 🚀 **Kubernetes Native** - Deploy as a native Kubernetes operator
- 📦 **Multiple Storage Providers** - Support for Azure Blob Storage, File System, and more
- 🔄 **Version Management** - Manage multiple versions of your static content
- 🎯 **Declarative Configuration** - Define your content using Kubernetes Custom Resources
- ⚡ **High Performance** - Built-in response caching and compression
- 🐳 **Container Ready** - Available as a Docker image on GitHub Container Registry
## Quick Start
### Prerequisites
- Kubernetes cluster (v1.20+)
- kubectl configured to communicate with your cluster
### Installation
**Using kubectl:**
```bash
kubectl apply -f https://github.com/pmdevers/k8s-frontman/releases/latest/download/install.yaml
```
**Using Helm (if available):**
```bash
helm repo add k8s-frontman https://pmdevers.github.io/k8s-frontman
helm install k8s-frontman k8s-frontman/k8s-frontman
```
### CLI Installation
For local development and management, install the k8s-frontman CLI:
**Linux/macOS:**
```bash
curl -s https://raw.githubusercontent.com/pmdevers/k8s-frontman/main/install/setup.sh | sudo bash
```
**Windows (PowerShell):**
```powershell
iwr -useb https://raw.githubusercontent.com/pmdevers/k8s-frontman/main/install/setup.ps1 | iex
```
For detailed installation options, see the [install README](install/README.md).
## Usage
### Defining a Provider
Create a provider to specify where your static content is stored:
```yaml
apiVersion: frontman.k8s.io/v1
kind: Provider
metadata:
name: my-static-content
spec:
type: azureBlob
azureBlob:
connectionString:
containerName: static-files
```
### Creating a Release
Create a release to serve specific versions of your content:
```yaml
apiVersion: frontman.k8s.io/v1
kind: Release
metadata:
name: my-app-v1
spec:
provider: my-static-content
version: "1.0.0"
path: /app
```
### Accessing Your Content
Once deployed, your static content will be available at the configured path through the k8s-frontman service.
## Configuration
Configuration is done through Kubernetes Custom Resources. For detailed configuration options, see the [documentation](docs/introduction.md).
### Supported Providers
- **Azure Blob Storage** - Store content in Azure Blob Storage
- **File System** - Use local file system storage
- More providers coming soon!
## Development
### Building from Source
```bash
# Clone the repository
git clone https://github.com/pmdevers/k8s-frontman.git
cd k8s-frontman
# Build the project
dotnet build
# Run locally
dotnet run --project src/k8sFrontman
```
### Running Tests
```bash
dotnet test
```
## Documentation
For more information, see:
- [Getting Started Guide](docs/getting-started.md)
- [Introduction](docs/introduction.md)
- [Installation Guide](install/README.md)
## Contributing
Contributions are welcome! Please see our [Code of Conduct](CODE_OF_CONDUCT.md) for details.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
Built with:
- [.NET 10.0](https://dotnet.microsoft.com/)
- [k8sOperator](https://github.com/pmdevers/k8sOperator) - Kubernetes Operator framework for .NET
---
Made with ❤️ by [Patrick Evers](https://github.com/pmdevers)