diff --git a/examples/customization/custom-configuration/haproxy/README.md b/examples/customization/custom-configuration/haproxy/README.md new file mode 100644 index 000000000..a0eafc7a3 --- /dev/null +++ b/examples/customization/custom-configuration/haproxy/README.md @@ -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) \ No newline at end of file diff --git a/examples/customization/custom-configuration/haproxy/haproxy-custom-configuration.yaml b/examples/customization/custom-configuration/haproxy/haproxy-custom-configuration.yaml new file mode 100644 index 000000000..694179f73 --- /dev/null +++ b/examples/customization/custom-configuration/haproxy/haproxy-custom-configuration.yaml @@ -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