v1.0.0 release: Initial release
This commit is contained in:
commit
9ec5e3d112
11 changed files with 1184 additions and 0 deletions
71
Readme.md
Normal file
71
Readme.md
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
|
||||
# k8s-pages Helm Chart
|
||||
|
||||
This repository contains a Helm chart for deploying an NGINX reverse proxy configured with dynamic site definitions, configurable caching headers for Cloudflare (using `stale-while-revalidate`), and more. The chart is designed to be deployed either via the Helm CLI or using Argo CD for GitOps-style continuous delivery.
|
||||
|
||||
## Features
|
||||
|
||||
- **Dynamic Site Configuration:** Define multiple sites with individual hosts, backend URLs, and host headers.
|
||||
- **Configurable Caching:** Set the `Cache-Control` header to control browser/CDN caching with `max-age` and `stale-while-revalidate` directives.
|
||||
- **NGINX Reverse Proxy:** Leverages a ConfigMap to generate the NGINX configuration, a Deployment to run NGINX, and a Service/Ingress for routing.
|
||||
- **GitOps Ready:** Easily deploy via Argo CD by pointing to this GitHub repository.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- **Kubernetes Cluster:** Ensure you have a running Kubernetes cluster.
|
||||
- **Helm 3:** [Install Helm 3](https://helm.sh/docs/intro/install/).
|
||||
- **Argo CD (optional):** If you prefer a GitOps approach, install [Argo CD](https://argo-cd.readthedocs.io/en/stable/getting_started/).
|
||||
|
||||
## Configuration
|
||||
|
||||
The default configuration is defined in `helm-chart/values.yaml`. Here you can set:
|
||||
|
||||
``` yaml
|
||||
# The namespace where all resources will be created.
|
||||
namespace: k8s-pages
|
||||
# Number of replicas for the deployment.
|
||||
replicaCount: 1
|
||||
# List of sites to configure.
|
||||
bucket: "k8s-pages"
|
||||
sites:
|
||||
- name: pages
|
||||
host: example.com
|
||||
# URL to which the proxy_pass should direct traffic. (Include protocol and path)
|
||||
minioURL: "minio.minio.svc.cluster.local:9000"
|
||||
# The host header to set when proxying.
|
||||
minioHost: "minio.example.com"
|
||||
# Error Page
|
||||
errorPage: "/404.html"
|
||||
maxAge: 31536000
|
||||
staleWhileRevalidate: 86400
|
||||
```
|
||||
|
||||
## Deploying with Argo CD
|
||||
|
||||
``` yaml
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: k8s-pages
|
||||
namespace: argocd # Namespace where Argo CD is installed
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: 'https://github.com/waylonwalker/k8s-pages.git'
|
||||
targetRevision: HEAD
|
||||
path: helm-chart
|
||||
helm:
|
||||
valueFiles:
|
||||
- values.yaml
|
||||
# Optional: Override values with parameters
|
||||
# parameters:
|
||||
# - name: replicaCount
|
||||
# value: "2"
|
||||
destination:
|
||||
server: 'https://kubernetes.default.svc'
|
||||
namespace: mypages # Target namespace for deployment
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue