Controllers Arguments

You can customize the ingress controller by passing these arguments at startup.


--configmap

Sets the ConfigMap object that defines global settings for the ingress controller. An empty ConfigMap is deployed by default and you can see its name by calling kubectl get configmaps. You can either override the default ConfigMap with your own object that uses the same name, or you can set this argument to point to a different ConfigMap. See the ConfigMap Options to learn which values you can store in the ConfigMap.

Values
  • The name of the ConfigMap that contains global settings. Defaults to default/haproxy-configmap
YAML
# Deployment object spec
containers:
    - name: haproxy-ingress
      image: kubernetes-registry.haproxy.com/hapee-ingress
      args:
      - --configmap=default/my-configmap
  

--configmap-tcp-services

Sets the ConfigMap that contains mappings for TCP services to proxy through the ingress controller. This ConfigMap contains mappings like this:

apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp
  namespace: default
data:
  3306:              # Port where the frontend is going to listen to.
    tcp/mysql:3306   # Kuberntes service to use for the backend.
  389:
    tcp/ldap:389:ssl # ssl option will enable ssl offloading for target service.
  6379:
    tcp/redis:6379
 
Values
  • The name of the ConfigMap that contains mappings for TCP services
YAML
# Deployment object spec
containers:
    - name: haproxy-ingress
      image: kubernetes-registry.haproxy.com/hapee-ingress
      args:
      - --configmap-tcp-services=default/my-tcpservices-configmap
  

--default-backend-service

The name of the Kubernetes service to send requests to when no Ingress rules match.

Values
  • The name of the backend service
YAML
# Deployment object spec
containers:
    - name: haproxy-ingress
      image: kubernetes-registry.haproxy.com/hapee-ingress
      args:
      - --default-backend-service=default/my-default-service
  

--default-ssl-certificate

The name of a TLS Secret that contains the certificate to use for SSL/TLS traffic. This can be overridden with the ssl-certificate setting.

Values
  • The name of the TLS Secret
YAML
# Deployment object spec
containers:
    - name: haproxy-ingress
      image: kubernetes-registry.haproxy.com/hapee-ingress
      args:
      - --default-ssl-certificate=default/my-tls
  

--ingress.class

A name to assign to the ingress controller so that Ingress objects can target it apart from other running ingress controllers.

Values
  • The name of the ingress class
YAML
# Deployment object spec
containers:
    - name: haproxy-ingress
      image: kubernetes-registry.haproxy.com/hapee-ingress
      args:
      - --ingress.class=haproxy
  
Helm
helm install intranet haproxytech/kubernetes-ingress \
  --set controller.ingressClass=haproxy
  

--namespace-blacklist

Namespaces that the ingress controller should not monitor for changes to pods and services.

Values
  • The namespace to exclude from monitoring; You can specify this argument multiple times
YAML
# Deployment object spec
containers:
    - name: haproxy-ingress
      image: kubernetes-registry.haproxy.com/hapee-ingress
      args:
    - --namespace-blacklist=foo
    - --namespace-blacklist=bar
  
Helm
helm install haproxy haproxytech/kubernetes-ingress \
  --set-string "controller.extraArgs={--namespace-blacklist=foo}"
  

--namespace-whitelist

Namespaces that the ingress controller should monitor for changes to pods and service.

Values
  • The namespace to monitor; You can specify this argument multiple times
YAML
# Deployment object spec
containers:
    - name: haproxy-ingress
      image: kubernetes-registry.haproxy.com/hapee-ingress
      args:
      - --namespace-whitelist=foo
      - --namespace-whitelist=bar
  
Helm
helm install haproxy haproxytech/kubernetes-ingress \
  --set-string "controller.extraArgs={--namespace-whitelist=foo}"
  

--publish-service

Copies the ingress controller's IP address to the 'Address' field in all Ingress objects that the controller manages. This is useful for tools like external-dns, which use this information to create DNS records.

Values
  • Name of the ingress controller's service, e.g. default/kubernetes-ingress
YAML
# Deployment object spec
containers:
    - name: haproxy-ingress
      image: kubernetes-registry.haproxy.com/hapee-ingress
      args:
      - --publish-service=default/kubernetes-ingress
  

--sync-period

The interval at which the controller syncs its configuration with updated Kubernetes objects.

Values
  • An integer with unit of time (1s = 1 second, 1m = 1 minute, 1h = 1 hour); Defaults to 5s
YAML
# Deployment object spec
containers:
    - name: haproxy-ingress
      image: kubernetes-registry.haproxy.com/hapee-ingress
      args:
      - --sync-period=10s
  
Helm
helm install haproxy haproxytech/kubernetes-ingress \
  --set-string "controller.extraArgs={--sync-period=10s}"
  

--log

The level of logging to perform; Defaults to info

Values
  • error
  • warning
  • info (default)
  • debug
  • trace
YAML
# Deployment object spec
containers:
    - name: haproxy-ingress
      image: kubernetes-registry.haproxy.com/hapee-ingress
      args:
      - --log=debug
  
Helm
helm install haproxy haproxytech/kubernetes-ingress \
  --set controller.logging.level=debug
  

Next up

ConfigMap