Configuration reference

Frontend CRD

Selected version

Frontend CRD Configuration reference

This page applies to:

  • HAProxy Kubernetes Ingress Controller 3.2 and newer

The Frontend custom resource extends the Kubernetes API to let you manage settings for the frontend sections that the ingress controller generates. There are three frontends named http, https, and stats.

Install the Frontend custom resource Jump to heading

Info

If you installed the ingress controller with Helm, this CRD is installed and updated automatically. If you installed with kubectl, follow these instructions for installation. Once installed, to perform updates on this CRD see: Update CRDs.

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

  1. Download the v3-2 Frontend custom resource file.

  2. Install the custom resource definition with kubectl apply:

    nix
    kubectl apply -f ingress.v3.haproxy.org_frontends.yaml
    nix
    kubectl apply -f ingress.v3.haproxy.org_frontends.yaml
  3. Verify that the installation worked by listing custom resources defined in your cluster:

    nix
    kubectl get crd
    nix
    kubectl get crd
    output
    text
    NAME CREATED AT
    frontends.ingress.v3.haproxy.org 2022-01-21T20:00:31Z
    output
    text
    NAME CREATED AT
    frontends.ingress.v3.haproxy.org 2022-01-21T20:00:31Z
    output
    text
    NAME CREATED AT
    frontends.core.haproxy.org 2022-01-21T20:00:31Z
    output
    text
    NAME CREATED AT
    frontends.core.haproxy.org 2022-01-21T20:00:31Z
    output
    text
    NAME CREATED AT
    frontends.core.haproxy.org 2022-01-21T20:00:31Z
    output
    text
    NAME CREATED AT
    frontends.core.haproxy.org 2022-01-21T20:00:31Z
    output
    text
    NAME CREATED AT
    frontends.core.haproxy.org 2022-01-21T20:00:31Z
    output
    text
    NAME CREATED AT
    frontends.core.haproxy.org 2022-01-21T20:00:31Z
    output
    text
    NAME CREATED AT
    frontends.core.haproxy.org 2022-01-21T20:00:31Z
    output
    text
    NAME CREATED AT
    frontends.core.haproxy.org 2022-01-21T20:00:31Z

Use the Frontend custom resource Jump to heading

With a Frontend custom resource, you can customize any of the frontends that the ingress controller manages, which are named http, https, and stats.

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

    In the example below, we define a Frontend custom resource in the default namespace. In it, we add binds, an ACL rule, compression, and a setting for accepting invalid HTTP reuests.

    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
    example-frontend.yaml
    yaml
    apiVersion: "ingress.v3.haproxy.org/v3"
    kind: Frontend
    metadata:
    name: example-frontend-crd
    namespace: default
    spec:
    name: example-frontend-crd
    accept_invalid_http_request: enabled
    binds:
    test:
    address: 127.0.0.1
    port: 9080
    name: test-http
    compression:
    algo-req: identity
    acl_list:
    - acl_name: images_url
    criterion: path
    value: -i -m beg /images/
  2. Deploy it to your cluster using kubectl apply.

    nix
    kubectl apply -f example-frontend.yaml
    nix
    kubectl apply -f example-frontend.yaml
  3. Decide which frontends the resource should apply to: http, https, and/or stats. Use kubectl edit to modify the haproxy-kubernetes-ingress ConfigMap.

    nix
    kubectl edit configmap haproxy-kubernetes-ingress --namespace haproxy-controller
    nix
    kubectl edit configmap haproxy-kubernetes-ingress --namespace haproxy-controller

    Add the keys to the data section to use your Frontend custom resource on the frontends, then save the file. Each frontend can point to a different custom resource. For each key, specify the namespace and name of the custom resource.

    yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: haproxy-kubernetes-ingress
    namespace: haproxy-controller
    data:
    cr-frontend-http: default/example-frontend-crd
    cr-frontend-https: default/example-frontend-crd
    cr-frontend-stats: default/example-frontend-crd
    yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: haproxy-kubernetes-ingress
    namespace: haproxy-controller
    data:
    cr-frontend-http: default/example-frontend-crd
    cr-frontend-https: default/example-frontend-crd
    cr-frontend-stats: default/example-frontend-crd

Properties

  • CRD version: 3.2
  • API version: ingress.v3.haproxy.org/v3

accept_invalid_http_request

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    accept_invalid_http_request: String # Allowed values are enabled, disabled

accept_unsafe_violations_in_http_request

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    accept_unsafe_violations_in_http_request: String # Allowed values are enabled, disabled

acl_list

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    acl_list: 
- acl_name: String # Allowed pattern: ^[^\s]+$
criterion: String # Allowed pattern: ^[^\s]+$
value: String

backend_switching_rule_list

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    backend_switching_rule_list: 
- cond: String # Allowed values are if, unless
cond_test: String
name: String # Allowed pattern: ^[^\s]+$

backlog

[integer]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    backlog: Integer 

binds

[object]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    binds: 
accept_netscaler_cip: Integer
accept_proxy: Boolean
address: String # Allowed pattern: ^[^\s]+$
allow_0rtt: Boolean
alpn: String # Allowed pattern: ^[^\s]+$
backlog: String
ca_ignore_err: String
ca_sign_file: String
ca_sign_pass: String
ca_verify_file: String
ciphers: String
ciphersuites: String
client_sigalgs: String
crl_file: String
crt_ignore_err: String
crt_list: String
curves: String
default_crt_list: Array of String
defer_accept: Boolean
ecdhe: String
expose_fd_listeners: Boolean
force_sslv3: Boolean
force_strict_sni: String # Allowed values are enabled, disabled
force_tlsv10: Boolean
force_tlsv11: Boolean
force_tlsv12: Boolean
force_tlsv13: Boolean
generate_certificates: Boolean
gid: Integer
group: String
guid_prefix: String # Allowed pattern: ^[A-Za-z0-9-_.:]+$
id: String
idle_ping: Integer Minimum: 0
interface: String
level: String # Allowed values are user, operator, admin
maxconn: Integer
mode: String
mss: String
name: String # Allowed pattern: ^[^\s]+$
namespace: String
nbconn: Integer
nice: Integer
no_alpn: Boolean
no_ca_names: Boolean
no_sslv3: Boolean
no_strict_sni: Boolean
no_tls_tickets: Boolean
no_tlsv10: Boolean
no_tlsv11: Boolean
no_tlsv12: Boolean
no_tlsv13: Boolean
npn: String
port: Integer Minimum: 1 Maximum: 65535
port-range-end: Integer Minimum: 1 Maximum: 65535
prefer_client_ciphers: Boolean
proto: String
quic-cc-algo: String # Allowed values are cubic, newreno, bbr, nocc
quic-force-retry: Boolean
quic-socket: String # Allowed values are connection, listener
quic_cc_algo_burst_size: Integer Minimum: 0 Maximum: 1024
quic_cc_algo_max_window: Integer Minimum: 10 Maximum: 4194304
severity_output: String # Allowed values are none, number, string
sigalgs: String
ssl: Boolean
ssl_cafile: String # Allowed pattern: ^[^\s]+$
ssl_certificate: String # Allowed pattern: ^[^\s]+$
ssl_max_ver: String # Allowed values are SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3
ssl_min_ver: String # Allowed values are SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3
sslv3: String # Allowed values are enabled, disabled
strict_sni: Boolean
tcp_user_timeout: Integer
tfo: Boolean
thread: String
tls_ticket_keys: String
tls_tickets: String # Allowed values are enabled, disabled
tlsv10: String # Allowed values are enabled, disabled
tlsv11: String # Allowed values are enabled, disabled
tlsv12: String # Allowed values are enabled, disabled
tlsv13: String # Allowed values are enabled, disabled
transparent: Boolean
uid: String
user: String
v4v6: Boolean
v6only: Boolean
verify: String # Allowed values are none, optional, required

capture_list

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    capture_list: 
- length: Integer
type: String # Allowed values are request, response

clflog

[boolean]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    clflog: Boolean

client_fin_timeout

[integer]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    client_fin_timeout: Integer Minimum: 0 

client_timeout

[integer]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    client_timeout: Integer Minimum: 0 

clitcpka

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    clitcpka: String # Allowed values are enabled, disabled

clitcpka_cnt

[integer]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    clitcpka_cnt: Integer 

clitcpka_idle

[integer]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    clitcpka_idle: Integer 

clitcpka_intvl

[integer]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    clitcpka_intvl: Integer 

compression

[object]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    compression: 
algo-req: String # Allowed values are identity, gzip, deflate, raw-deflate
algorithms: Array of String
algos-res: Array of String
direction: String # Allowed values are request, response, both
minsize_req: Integer
minsize_res: Integer
offload: Boolean
types: Array of String
types-req: Array of String
types-res: Array of String

contstats

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    contstats: String # Allowed values are enabled

default_backend

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    default_backend: String # Allowed pattern: ^[A-Za-z0-9-_.:]+$

description

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    description: String 

disable_h2_upgrade

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    disable_h2_upgrade: String # Allowed values are enabled, disabled

disabled

[boolean]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    disabled: Boolean

dontlog_normal

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    dontlog_normal: String # Allowed values are enabled, disabled

dontlognull

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    dontlognull: String # Allowed values are enabled, disabled

email_alert

[object]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    email_alert: 
from: String # Allowed pattern: ^\S+@\S+$
level: String # Allowed values are emerg, alert, crit, err, warning, notice, info, debug
mailers: String
myhostname: String
to: String # Allowed pattern: ^\S+@\S+$

enabled

[boolean]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    enabled: Boolean

error_files

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    error_files: 
- code: Integer 200400401403404405407408410413425429500501502503504
file: String

error_log_format

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    error_log_format: String 

errorfiles_from_http_errors

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    errorfiles_from_http_errors: 
- codes: Array of Integer
name: String

errorloc302

[object]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    errorloc302: 
code: Integer 200400401403404405407408410413425429500501502503504
url: String

errorloc303

[object]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    errorloc303: 
code: Integer 200400401403404405407408410413425429500501502503504
url: String

filter_list

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    filter_list: 
- app_name: String # Allowed pattern: ^[^\s]+$
bandwidth_limit_name: String # Allowed pattern: ^[^\s]+$
cache_name: String # Allowed pattern: ^[^\s]+$
default_limit: Integer
default_period: Integer
key: String
limit: Integer
min_size: Integer
spoe_config: String # Allowed pattern: ^[^\s]+$
spoe_engine: String # Allowed pattern: ^[^\s]+$
table: String
trace_hexdump: Boolean
trace_name: String # Allowed pattern: ^[^\s]+$
trace_rnd_forwarding: Boolean
trace_rnd_parsing: Boolean
type: String # Allowed values are bwlim-in, bwlim-out, cache, compression, fcgi-app, spoe, trace

forwardfor

[object]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    forwardfor: 
enabled: String # Allowed values are enabled
except: String # Allowed pattern: ^[^\s]+$
header: String # Allowed pattern: ^[^\s]+$
ifnone: Boolean

from

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    from: String # Allowed pattern: ^[A-Za-z0-9-_.:]+$

guid

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    guid: String # Allowed pattern: ^[A-Za-z0-9-_.:]+$

h1_case_adjust_bogus_client

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    h1_case_adjust_bogus_client: String # Allowed values are enabled, disabled

http-buffer-request

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http-buffer-request: String # Allowed values are enabled, disabled

http-drop-response-trailers

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http-drop-response-trailers: String # Allowed values are enabled, disabled

http-use-htx

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http-use-htx: String # Allowed values are enabled, disabled

http_after_response_rule_list

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http_after_response_rule_list: 
- acl_file: String # Allowed pattern: ^[^\s]+$
acl_keyfmt: String # Allowed pattern: ^[^\s]+$
capture_id: Integer
capture_len: Integer
capture_sample: String # Allowed pattern: ^(?:[A-Za-z]+\("([A-Za-z\s]+)"\)|[A-Za-z]+)
cond: String # Allowed values are if, unless
cond_test: String
hdr_format: String
hdr_match: String
hdr_method: String
hdr_name: String
log_level: String # Allowed values are emerg, alert, crit, err, warning, notice, info, debug, silent
map_file: String # Allowed pattern: ^[^\s]+$
map_keyfmt: String # Allowed pattern: ^[^\s]+$
map_valuefmt: String # Allowed pattern: ^[^\s]+$
sc_expr: String
sc_id: Integer
sc_idx: Integer
sc_int: Integer
status: Integer Minimum: 100 Maximum: 999
status_reason: String
strict_mode: String # Allowed values are on, off
type: String # Allowed values are add-header, allow, capture, del-acl, del-header, del-map, replace-header, replace-value, sc-add-gpc, sc-inc-gpc, sc-inc-gpc0, sc-inc-gpc1, sc-set-gpt, sc-set-gpt0, set-header, set-log-level, set-map, set-status, set-var, set-var-fmt, strict-mode, unset-var, do-log
var_expr: String
var_format: String
var_name: String # Allowed pattern: ^[^\s]+$
var_scope: String # Allowed pattern: ^[^\s]+$

http_connection_mode

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http_connection_mode: String # Allowed values are httpclose, http-server-close, http-keep-alive

http_error_rule_list

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http_error_rule_list: 
return_content: String
return_content_format: String # Allowed values are default-errorfiles, errorfile, errorfiles, file, lf-file, string, lf-string
return_content_type: String
return_hdrs:
- fmt: String
name: String
status: Integer 200400401403404405407408410413425429500501502503504
type: String # Allowed values are status

http_ignore_probes

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http_ignore_probes: String # Allowed values are enabled, disabled

http_keep_alive_timeout

[integer]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http_keep_alive_timeout: Integer Minimum: 0 

http_no_delay

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http_no_delay: String # Allowed values are enabled, disabled

http_request_rule_list

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http_request_rule_list: 
- acl_file: String # Allowed pattern: ^[^\s]+$
acl_keyfmt: String # Allowed pattern: ^[^\s]+$
auth_realm: String # Allowed pattern: ^[^\s]+$
bandwidth_limit_limit: String
bandwidth_limit_name: String
bandwidth_limit_period: String
cache_name: String # Allowed pattern: ^[^\s]+$
capture_id: Integer
capture_len: Integer
capture_sample: String # Allowed pattern: ^(?:[A-Za-z]+\("([A-Za-z\s]+)"\)|[A-Za-z]+)
cond: String # Allowed values are if, unless
cond_test: String
deny_status: Integer Minimum: 200 Maximum: 599
expr: String
hdr_format: String
hdr_match: String
hdr_method: String
hdr_name: String
hint_format: String # Allowed pattern: ^[^\s]+$
hint_name: String # Allowed pattern: ^[^\s]+$
log_level: String # Allowed values are emerg, alert, crit, err, warning, notice, info, debug, silent
lua_action: String # Allowed pattern: ^[^\s]+$
lua_params: String
map_file: String # Allowed pattern: ^[^\s]+$
map_keyfmt: String # Allowed pattern: ^[^\s]+$
map_valuefmt: String # Allowed pattern: ^[^\s]+$
mark_value: String # Allowed pattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$
method_fmt: String # Allowed pattern: ^[^\s]+$
nice_value: Integer Minimum: -1024 Maximum: 1024
normalizer: String # Allowed values are fragment-encode, fragment-strip, path-merge-slashes, path-strip-dot, path-strip-dotdot, percent-decode-unreserved, percent-to-uppercase, query-sort-by-name
normalizer_full: Boolean
normalizer_strict: Boolean
path_fmt: String # Allowed pattern: ^[^\s]+$
path_match: String # Allowed pattern: ^[^\s]+$
protocol: String # Allowed values are ipv4, ipv6
query-fmt: String
redir_code: Integer 301302303307308
redir_option: String
redir_type: String # Allowed values are location, prefix, scheme
redir_value: String # Allowed pattern: ^[^\s]+$
resolvers: String
return_content: String
return_content_format: String # Allowed values are default-errorfiles, errorfile, errorfiles, file, lf-file, string, lf-string
return_content_type: String
return_hdrs:
- fmt: String
name: String
return_status_code: Integer Minimum: 200 Maximum: 599
rst_ttl: Integer
sc_expr: String
sc_id: Integer
sc_idx: Integer
sc_int: Integer
service_name: String
spoe_engine: String # Allowed pattern: ^[^\s]+$
spoe_group: String # Allowed pattern: ^[^\s]+$
strict_mode: String # Allowed values are on, off
timeout: String
timeout_type: String # Allowed values are server, tunnel, client
tos_value: String # Allowed pattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$
track_sc_key: String # Allowed pattern: ^[^\s]+$
track_sc_stick_counter: Integer
track_sc_table: String # Allowed pattern: ^[^\s]+$
type: String # Allowed values are add-acl, add-header, allow, auth, cache-use, capture, del-acl, del-header, del-map, deny, disable-l7-retry, do-resolve, early-hint, lua, normalize-uri, pause, redirect, reject, replace-header, replace-path, replace-pathq, replace-uri, replace-value, return, sc-add-gpc, sc-inc-gpc, sc-inc-gpc0, sc-inc-gpc1, sc-set-gpt, sc-set-gpt0, send-spoe-group, set-bc-mark, set-bc-tos, set-dst, set-dst-port, set-fc-mark, set-fc-tos, set-header, set-log-level, set-map, set-mark, set-method, set-nice, set-path, set-pathq, set-priority-class, set-priority-offset, set-query, set-src, set-src-port, set-timeout, set-tos, set-uri, set-var, set-var-fmt, silent-drop, strict-mode, tarpit, track-sc, unset-var, use-service, wait-for-body, wait-for-handshake, set-bandwidth-limit, set-retries, do-log
uri-fmt: String
uri-match: String
var_expr: String
var_format: String
var_name: String # Allowed pattern: ^[^\s]+$
var_scope: String # Allowed pattern: ^[^\s]+$
wait_at_least: Integer
wait_time: Integer Minimum: 0

http_request_timeout

[integer]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http_request_timeout: Integer Minimum: 0 

http_response_rule_list

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http_response_rule_list: 
- acl_file: String # Allowed pattern: ^[^\s]+$
acl_keyfmt: String # Allowed pattern: ^[^\s]+$
bandwidth_limit_limit: String
bandwidth_limit_name: String
bandwidth_limit_period: String
cache_name: String # Allowed pattern: ^[^\s]+$
capture_id: Integer
capture_sample: String # Allowed pattern: ^[^\s]+$
cond: String # Allowed values are if, unless
cond_test: String
deny_status: Integer Minimum: 200 Maximum: 599
expr: String
hdr_format: String
hdr_match: String
hdr_method: String
hdr_name: String
log_level: String # Allowed values are emerg, alert, crit, err, warning, notice, info, debug, silent
lua_action: String # Allowed pattern: ^[^\s]+$
lua_params: String
map_file: String # Allowed pattern: ^[^\s]+$
map_keyfmt: String # Allowed pattern: ^[^\s]+$
map_valuefmt: String # Allowed pattern: ^[^\s]+$
mark_value: String # Allowed pattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$
nice_value: Integer Minimum: -1024 Maximum: 1024
redir_code: Integer 301302303307308
redir_option: String
redir_type: String # Allowed values are location, prefix, scheme
redir_value: String # Allowed pattern: ^[^\s]+$
return_content: String
return_content_format: String # Allowed values are default-errorfiles, errorfile, errorfiles, file, lf-file, string, lf-string
return_content_type: String
return_hdrs:
- fmt: String
name: String
return_status_code: Integer Minimum: 200 Maximum: 599
rst_ttl: Integer
sc_expr: String
sc_id: Integer
sc_idx: Integer
sc_int: Integer
spoe_engine: String # Allowed pattern: ^[^\s]+$
spoe_group: String # Allowed pattern: ^[^\s]+$
status: Integer Minimum: 100 Maximum: 999
status_reason: String
strict_mode: String # Allowed values are on, off
timeout: String
timeout_type: String # Allowed values are server, tunnel, client
tos_value: String # Allowed pattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$
track_sc_key: String # Allowed pattern: ^[^\s]+$
track_sc_stick_counter: Integer
track_sc_table: String # Allowed pattern: ^[^\s]+$
type: String # Allowed values are add-acl, add-header, allow, cache-store, capture, del-acl, del-header, del-map, deny, lua, pause, redirect, replace-header, replace-value, return, sc-add-gpc, sc-inc-gpc, sc-inc-gpc0, sc-inc-gpc1, sc-set-gpt, sc-set-gpt0, send-spoe-group, set-fc-mark, set-fc-tos, set-header, set-log-level, set-map, set-mark, set-nice, set-status, set-timeout, set-tos, set-var, set-var-fmt, silent-drop, strict-mode, track-sc, unset-var, wait-for-body, set-bandwidth-limit, do-log
var_expr: String
var_format: String
var_name: String # Allowed pattern: ^[^\s]+$
var_scope: String # Allowed pattern: ^[^\s]+$
wait_at_least: Integer
wait_time: Integer Minimum: 0

http_restrict_req_hdr_names

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http_restrict_req_hdr_names: String # Allowed values are preserve, delete, reject

http_use_proxy_header

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    http_use_proxy_header: String # Allowed values are enabled, disabled

httplog

[boolean]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    httplog: Boolean

httpslog

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    httpslog: String # Allowed values are enabled, disabled

id

[integer]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    id: Integer 

idle_close_on_response

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    idle_close_on_response: String # Allowed values are enabled, disabled

independent_streams

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    independent_streams: String # Allowed values are enabled, disabled

log_format

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    log_format: String 

log_format_sd

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    log_format_sd: String 

log_separate_errors

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    log_separate_errors: String # Allowed values are enabled, disabled

log_steps

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    log_steps: Array of String 

log_tag

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    log_tag: String # Allowed pattern: ^[A-Za-z0-9-_.:]+$

log_target_list

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    log_target_list: 
- address: String # Allowed pattern: ^[^\s]+$
facility: String # Allowed values are kern, user, mail, daemon, auth, syslog, lpr, news, uucp, cron, auth2, ftp, ntp, audit, alert, cron2, local0, local1, local2, local3, local4, local5, local6, local7
format: String # Allowed values are local, rfc3164, rfc5424, priority, short, timed, iso, raw
global: Boolean
length: Integer
level: String # Allowed values are emerg, alert, crit, err, warning, notice, info, debug
minlevel: String # Allowed values are emerg, alert, crit, err, warning, notice, info, debug
nolog: Boolean
profile: String
sample_range: String
sample_size: Integer

logasap

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    logasap: String # Allowed values are enabled, disabled

maxconn

[integer]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    maxconn: Integer 

metadata

[]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    metadata: 

mode

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    mode: String # Allowed values are http, tcp

monitor_fail

[object]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    monitor_fail: 
cond: String # Allowed values are if, unless
cond_test: String

monitor_uri

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    monitor_uri: String 

name

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    name: String # Allowed pattern: ^[A-Za-z0-9-_.:]+$

nolinger

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    nolinger: String # Allowed values are enabled, disabled

originalto

[object]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    originalto: 
enabled: String # Allowed values are enabled
except: String # Allowed pattern: ^[^\s]+$
header: String # Allowed pattern: ^[^\s]+$

quic_initial_rule_list

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    quic_initial_rule_list: 
- cond: String # Allowed values are if, unless
cond_test: String
type: String # Allowed values are reject, accept, send-retry, dgram-drop

socket_stats

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    socket_stats: String # Allowed values are enabled, disabled

splice_auto

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    splice_auto: String # Allowed values are enabled, disabled

splice_request

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    splice_request: String # Allowed values are enabled, disabled

splice_response

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    splice_response: String # Allowed values are enabled, disabled

ssl_front_use_list

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    ssl_front_use_list: 
- allow_0rtt: Boolean
alpn: String
ca_file: String
certificate: String # Allowed pattern: ^[^\s]+$
ciphers: String
ciphersuites: String
client_sigalgs: String
crl_file: String
curves: String
ecdhe: String
issuer: String
key: String
no_alpn: Boolean
no_ca_names: Boolean
npn: String
ocsp: String
ocsp_update: String # Allowed values are enabled, disabled
sctl: String
sigalgs: String
ssl_max_ver: String # Allowed values are SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3
ssl_min_ver: String # Allowed values are SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3
verify: String # Allowed values are none, optional, required

stats_options

[object]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    stats_options: 
stats_admin: Boolean
stats_admin_cond: String # Allowed values are if, unless
stats_admin_cond_test: String
stats_auths:
- passwd: String
user: String
stats_enable: Boolean
stats_hide_version: Boolean
stats_http_requests:
- cond: String
cond_test: String
realm: String
type: String # Allowed values are allow, deny, auth
stats_maxconn: Integer Minimum: 1
stats_realm: Boolean
stats_realm_realm: String
stats_refresh_delay: Integer Minimum: 0
stats_show_desc: String
stats_show_legends: Boolean
stats_show_modules: Boolean
stats_show_node_name: String # Allowed pattern: ^[^\s]+$
stats_uri_prefix: String # Allowed pattern: ^[^\s]+$

stick_table

[object]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    stick_table: 
expire: Integer Minimum: 0
keylen: Integer
nopurge: Boolean
peers: String # Allowed pattern: ^[^\s]+$
recv_only: Boolean
size: Integer Minimum: 0
srvkey: String # Allowed values are addr, name
store: String # Allowed pattern: ^[^\s]+$
type: String # Allowed values are ip, ipv6, integer, string, binary
write_to: String # Allowed pattern: ^[^\s]+$

tarpit_timeout

[integer]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    tarpit_timeout: Integer Minimum: 0 

tcp_request_rule_list

[array]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    tcp_request_rule_list: 
- action: String # Allowed values are accept, attach-srv, capture, do-resolve, expect-netscaler-cip, expect-proxy, lua, reject, sc-add-gpc, sc-inc-gpc, sc-inc-gpc0, sc-inc-gpc1, sc-set-gpt, sc-set-gpt0, send-spoe-group, set-bandwidth-limit, set-bc-mark, set-bc-tos, set-dst-port, set-dst, set-fc-mark, set-fc-tos, set-log-level, set-mark, set-nice, set-priority-class, set-priority-offset, set-src, set-src-port, set-tos, set-var, set-var-fmt, silent-drop, switch-mode, track-sc, unset-var, use-service, set-retries, do-log
bandwidth_limit_limit: String
bandwidth_limit_name: String
bandwidth_limit_period: String
capture_len: Integer
capture_sample: String # Allowed pattern: ^(?:[A-Za-z]+\("([A-Za-z\s]+)"\)|[A-Za-z]+)
cond: String # Allowed values are if, unless
cond_test: String
expr: String
gpt_value: String
log_level: String # Allowed values are emerg, alert, crit, err, warning, notice, info, debug, silent
lua_action: String # Allowed pattern: ^[^\s]+$
lua_params: String
mark_value: String # Allowed pattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$
nice_value: Integer Minimum: -1024 Maximum: 1024
resolve_protocol: String # Allowed values are ipv4, ipv6
resolve_resolvers: String
resolve_var: String
rst_ttl: Integer
sc_idx: String
sc_inc_id: String
sc_int: Integer
server_name: String
service_name: String
spoe_engine_name: String
spoe_group_name: String
switch_mode_proto: String
timeout: Integer
tos_value: String # Allowed pattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$
track_key: String
track_stick_counter: Integer
track_table: String
type: String # Allowed values are connection, content, inspect-delay, session
var_format: String
var_name: String # Allowed pattern: ^[^\s]+$
var_scope: String # Allowed pattern: ^[^\s]+$

tcp_smart_accept

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    tcp_smart_accept: String # Allowed values are enabled, disabled

tcpka

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    tcpka: String # Allowed values are enabled, disabled

tcplog

[boolean]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    tcplog: Boolean

unique_id_format

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    unique_id_format: String 

unique_id_header

[string]
apiVersion: "ingress.v3.haproxy.org/v3"
kind: Frontend
metadata:
  name: example-frontend-crd
  namespace: default
spec:
    unique_id_header: String 

Do you have any suggestions on how we can improve the content of this page?