Merge pull request #561 from caiyixiang/haproxy_custom_configuration

add a example for haproxy_custom_configuration
This commit is contained in:
Manuel Alejandro de Brito Fontes 2017-05-03 07:58:55 -03:00 committed by GitHub
commit 93e82670bd
2 changed files with 76 additions and 0 deletions

View file

@ -0,0 +1,37 @@
# Customize the HAProxy configuration
This example use a [ConfigMap](https://kubernetes.io/docs/user-guide/configmap/) to customize the HAProxy configuration.
## Prerequisites
This document has the following prerequisites:
Deploy only the tls-secret and the default backend from the [deployment instructions](../../../deployment/haproxy/)
As mentioned in the deployment instructions, you MUST turn down any existing
ingress controllers before running HAProxy Ingress.
## Customize the HAProxy configuration
Using a [ConfigMap](https://kubernetes.io/docs/user-guide/configmap/) is possible to customize the HAProxy configuration.
For example, if we want to change the syslog-endpoint we need to create a ConfigMap:
```
$ kubectl create configmap haproxy-conf --from-literal=syslog-endpoint=172.17.8.101
```
Create the HAProxy Ingress deployment:
```
$ kubectl create -f haproxy-custom-configuration.yaml
```
The only difference from the deployment instructions is the --configmap parameter:
```
- --configmap=default/haproxy-conf
```
If the Configmap it is updated, HAProxy will be reloaded with the new configuration.
Check all the config options in the [HAProxy Ingress docs](https://github.com/jcmoraisjr/haproxy-ingress#configmap)

View file

@ -0,0 +1,39 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
run: haproxy-ingress
name: haproxy-ingress
spec:
replicas: 1
selector:
matchLabels:
run: haproxy-ingress
template:
metadata:
labels:
run: haproxy-ingress
spec:
containers:
- name: haproxy-ingress
image: quay.io/jcmoraisjr/haproxy-ingress
args:
- --default-backend-service=default/ingress-default-backend
- --default-ssl-certificate=default/tls-secret
- --configmap=default/haproxy-conf
ports:
- name: http
containerPort: 80
- name: https
containerPort: 443
- name: stat
containerPort: 1936
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace