HAProxy Kubernetes Ingress Controller Documentation 1.7

Global CRD

The Global custom resource extends the Kubernetes API to let you manage process-level options for the ingress controller.

Install the Global custom resource

Before you can use the Global custom resource, you must install its definition into your Kubernetes cluster.

  1. Install the custom resource definition with kubectl apply:

    Community ingress controller

    $ kubectl apply -f https://cdn.haproxy.com/documentation/kubernetes/1.7/community/crd/global.yaml
  2. Verify that the installation worked by listing custom resources defined in your cluster:

    $ kubectl get crd

    output

    NAME                        CREATED AT
    globals.core.haproxy.org    2022-06-01T16:56:57Z
    

Use the Global custom resource

With the Global custom resource, you can tune process-level options for the ingress controller. To use it:

  1. Create a YAML file that declares a Global resource and add properties to its spec.config section.

    In the example below, the maxconn property limits how many concurrent TCP connections the ingress controller will accept.

    example-global.yaml

    apiVersion: "core.haproxy.org/v1alpha1"
    kind: Global
    metadata:
      name: example-global
      namespace: default
    spec:
      config:
        maxconn: 60000
  2. Deploy it to your cluster using kubectl apply.

    $ kubectl apply -f example-global.yaml
  3. Create a new ConfigMap with the name haproxy-kubernetes-ingress to override the one that ships with the ingress controller. Add the cr-global key to the data section to implement the global properties.

    example-configmap.yaml

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: haproxy-kubernetes-ingress
      namespace: haproxy-controller
    data:
      cr-global: default/example-global
  4. Update the ConfigMap in your cluster by using kubectl apply.

    $ kubectl apply -f  example-configmap.yaml

Global custom resource reference

Version: core.haproxy.org/v1alpha1

chroot

Type Values
string

cpu_maps

Type Values
array

daemon

Type Values
string enabled, disabled

external_check

Type Values
boolean

group

Type Values
string

hard_stop_after

Type Values
integer

log_send_hostname

Type Values
object

Child properties

Property Type Values
enabled string enabled, disabled
param string

lua_loads

Type Values
array

master-worker

Type Values
boolean

maxconn

Type Values
integer

nbproc

Type Values
integer

nbthread

Type Values
integer

pidfile

Type Values
string

runtime_apis

Type Values
array

server_state_base

Type Values
string

ssl_default_bind_ciphers

Type Values
string

ssl_default_bind_ciphersuites

Type Values
string

ssl_default_bind_options

Type Values
string

ssl_default_server_ciphers

Type Values
string

ssl_default_server_ciphersuites

Type Values
string

ssl_default_server_options

Type Values
string

ssl_mode_async

Type Values
string enabled, disabled

stats_timeout

Type Values
integer

tune_ssl_default_dh_param

Type Values
integer

user

Type Values
string

Next up

HAProxy Enterprise Kubernetes Ingress Controller