- Introduced new IngressClass resource in Helm templates to define `easyhaproxy` as the default ingress class. - Updated Kubernetes examples to replace `easyhaproxy-ingress` with `easyhaproxy` as the ingress class name. - Enhanced processor logic to support both the new `spec.ingressClassName` field and the deprecated `kubernetes.io/ingress.class` annotation. - Revised documentation to reflect the changes and ensure alignment with Kubernetes recommendations.
3.3 KiB
3.3 KiB
Kubernetes Static Manifests
⚠️ IMPORTANT: These files are auto-generated from Helm templates. Do not edit them directly!
About These Files
This directory contains pre-rendered Kubernetes manifests for deploying EasyHAProxy without Helm. These are generated from the Helm chart at ../../helm/easyhaproxy/ and provide three deployment options:
| File | Type | Use Case |
|---|---|---|
easyhaproxy-daemonset.yml |
DaemonSet + hostPort | Direct host networking, best for bare-metal or simple setups |
easyhaproxy-nodeport.yml |
Deployment + NodePort | Exposes via NodePort (31080/31443/31936) |
easyhaproxy-clusterip.yml |
Deployment + ClusterIP | Internal cluster access only, use with external LoadBalancer |
How to Use
Choose the manifest that fits your deployment scenario:
# Option 1: DaemonSet mode (hostPort)
kubectl apply -f easyhaproxy-daemonset.yml
# Option 2: NodePort mode
kubectl apply -f easyhaproxy-nodeport.yml
# Option 3: ClusterIP mode
kubectl apply -f easyhaproxy-clusterip.yml
For more details, see the Kubernetes documentation.
Regenerating These Files
When to regenerate:
- After modifying Helm chart templates (
helm/easyhaproxy/templates/) - After updating default values (
helm/easyhaproxy/values.yaml) - After a new release to sync with latest Helm chart
How to regenerate:
# Navigate to helm directory
cd helm
# Generate DaemonSet manifest (hostPort mode)
helm template ingress ./easyhaproxy --namespace easyhaproxy \
--set service.create=false \
> ../deploy/kubernetes/easyhaproxy-daemonset.yml
# Generate NodePort manifest
helm template ingress ./easyhaproxy --namespace easyhaproxy \
--set service.create=true \
--set service.type=NodePort \
> ../deploy/kubernetes/easyhaproxy-nodeport.yml
# Generate ClusterIP manifest
helm template ingress ./easyhaproxy --namespace easyhaproxy \
--set service.create=true \
--set service.type=ClusterIP \
> ../deploy/kubernetes/easyhaproxy-clusterip.yml
Verify regeneration:
# Check IngressClass is present
grep "kind: IngressClass" ../deploy/kubernetes/easyhaproxy-*.yml
# Validate manifest syntax
kubectl apply --dry-run=client -f ../deploy/kubernetes/easyhaproxy-daemonset.yml
What's Included
Each manifest contains:
- ServiceAccount: RBAC identity for EasyHAProxy
- ClusterRole: Permissions to read Ingress resources and Secrets
- ClusterRoleBinding: Binds the role to the service account
- IngressClass: Defines
easyhaproxyas the ingress class - DaemonSet/Deployment: The EasyHAProxy workload
- Service (NodePort/ClusterIP only): Network exposure
Source of Truth
The Helm chart at ../../helm/easyhaproxy/ is the source of truth. All changes should be made there, then these static manifests regenerated.
To modify these deployments:
- Edit Helm templates in
helm/easyhaproxy/templates/ - Update default values in
helm/easyhaproxy/values.yaml - Regenerate static manifests using commands above
- Commit both Helm changes and regenerated manifests