Verified against source code and enhanced with Docusaurus markdown features: Documentation Accuracy Fixes: - Fixed acme.md: Added "letsencrypt" as valid AUTOCONFIG value (was incorrectly shown as "-") - Added reference to ACME docs from environment-variable.md - Verified all features against actual implementation in /src Docusaurus Enhancements Added: - Admonitions (:::note, :::tip, :::warning, :::danger, :::info) for important callouts - Code block titles for all bash/yaml examples (e.g., title="Install EasyHAProxy") - Better structured warnings and notes for limitations - Improved formatting and readability throughout Files Enhanced: - kubernetes.md: Added info boxes, warnings, code titles - docker.md: Added limitation warnings, code titles - swarm.md: Added advantage tips, limitation warnings - acme.md: Fixed Let's Encrypt autoconfig, enhanced requirements with admonitions - ssl.md: Added code block titles for all examples - static.md: Added live reload tip, SSL certificate note - container-labels.md: Added definition explanation, code titles - limitations.md: Restructured with clear warnings and explanations - helm.md: Added warnings, code titles - microk8s.md: Added ingress controller warning, code titles - volumes.md: Added info box about volume purposes - other.md: Added code block titles - environment-variable.md: Added ACME reference note All changes verified against actual Python source code implementation.
85 lines
1.8 KiB
Markdown
85 lines
1.8 KiB
Markdown
---
|
|
sidebar_position: 5
|
|
---
|
|
|
|
# Helm 3
|
|
|
|
Helm is a package manager for Kubernetes. It allows you to install and manage applications on Kubernetes.
|
|
|
|
## Setup EasyHAProxy with Helm 3
|
|
|
|
### 1) Identify the node where your EasyHAProxy container will run
|
|
|
|
:::warning Single Node Deployment
|
|
EasyHAProxy will be limited to a single node. To understand why, see the [limitations](limitations.md) page.
|
|
:::
|
|
|
|
```bash title="List available nodes"
|
|
$ kubectl get nodes
|
|
|
|
NAME STATUS ROLES AGE VERSION
|
|
node-01 Ready <none> 561d v1.21.13-3
|
|
node-02 Ready <none> 561d v1.21.13-3
|
|
```
|
|
|
|
Add the EasyHAProxy label to the node.
|
|
|
|
```bash title="Label the node for EasyHAProxy"
|
|
kubectl label nodes node-01 "easyhaproxy/node=master"
|
|
```
|
|
|
|
### 2) Install EasyHAProxy
|
|
|
|
Minimal configuration:
|
|
|
|
```bash title="Install with Helm (minimal)"
|
|
helm repo add byjg https://opensource.byjg.com/helm
|
|
helm repo update byjg
|
|
kubectl create namespace easyhaproxy
|
|
|
|
helm upgrade --install ingress byjg/easyhaproxy \
|
|
--namespace easyhaproxy \
|
|
--set resources.requests.cpu=100m \
|
|
--set resources.requests.memory=128Mi
|
|
```
|
|
|
|
Customizing Helm Values:
|
|
|
|
```yaml title="values.yaml"
|
|
easyhaproxy:
|
|
stats:
|
|
username: admin
|
|
password: password
|
|
refresh: "10"
|
|
customErrors: "true"
|
|
sslMode: loose
|
|
logLevel:
|
|
certbot: DEBUG
|
|
easyhaproxy: DEBUG
|
|
haproxy: DEBUG
|
|
certbot:
|
|
email: ""
|
|
|
|
service:
|
|
create: false # If false, it will create a DaemonSet with hostPort. The easiest.
|
|
type: ClusterIP # or NodePort
|
|
annotations: {}
|
|
|
|
binding:
|
|
ports:
|
|
http: 80
|
|
https: 443
|
|
stats: 1936
|
|
additionalPorts: []
|
|
|
|
# Make sure to create this
|
|
masterNode:
|
|
label: easyhaproxy/node
|
|
values:
|
|
- master
|
|
```
|
|
|
|
For more parameters you can refer to the [Kubernetes](kubernetes.md) page.
|
|
|
|
----
|
|
[Open source ByJG](http://opensource.byjg.com)
|