Configuration reference
Backend CRD
Selected version
Backend CRD Configuration reference
Use the Backend CRD (custom resource definition) to customize the backend that HAProxy Unified Gateway generates for an HTTPRoute.
Incompatible with TLSRoutes
The Backend CRD isn’t currently supported with TLSRoute, as the current version of Gateway API doesn’t support the ExtensionRef filter for TLSRoute. You can still apply some settings to TLSRoutes using the Defaults and Global CRDs; these settings will apply to all of your routes and gateways.
Use the Backend custom resource Jump to heading
You can tune the options for a specific route by defining and applying a Backend custom resource. For applying custom setting to all Gateways and Routes see the Defaults custom resource.
For this example, we’ll apply Backend custom resources to an existing HTTPRoute. Create an HTTPRoute if you don’t already have one.
To associate a Backend custom resource with an HTTPRoute:
-
Create a file named
backend.yamland add to it abackendcustom resource definition. In this example, we define a Backend custom resource namedrandom-load-balancing. You must create the Backend CR in the same namespace as your HTTPRoute. Cross-namespace support forExtensionRefisn’t part of Gateway API yet.Under
spec, define the settings that you want to add to a specific route. In this example, we are setting the load balancing algorithm torandom:backend.yamlyamlapiVersion: gate.v3.haproxy.org/v3kind: Backendmetadata:name: random-load-balancingnamespace: defaultspec:balance:algorithm: randombackend.yamlyamlapiVersion: gate.v3.haproxy.org/v3kind: Backendmetadata:name: random-load-balancingnamespace: defaultspec:balance:algorithm: random -
Apply the custom resource using
kubectl apply:nixkubectl apply -f backend.yamlnixkubectl apply -f backend.yamloutputtextbackend.gate.v3.haproxy.org/random-load-balancing createdoutputtextbackend.gate.v3.haproxy.org/random-load-balancing created -
Update your HTTPRoute by adding a
filterssection to thebackendRefsthat corresponds to the backend application you’d like to customize. The type of filter we’re adding isExtensionRef, which means that it’s an implementation-specific extension to the filter behavior. UnderextensionRef, setgrouptogate.v3.haproxy.org,kindtoBackend, andnameto the name you assigned to your Backend CRD.hostname-based-route.yamlyamlapiVersion: gateway.networking.k8s.io/v1kind: HTTPRoutemetadata:name: web-hostname-routenamespace: defaultspec:parentRefs:- name: example-haproxy-gatewaysectionName: http-listenerhostnames:- web.example.comrules:- backendRefs:- name: web-svcnamespace: defaultport: 80filters:- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: random-load-balancinghostname-based-route.yamlyamlapiVersion: gateway.networking.k8s.io/v1kind: HTTPRoutemetadata:name: web-hostname-routenamespace: defaultspec:parentRefs:- name: example-haproxy-gatewaysectionName: http-listenerhostnames:- web.example.comrules:- backendRefs:- name: web-svcnamespace: defaultport: 80filters:- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: random-load-balancing -
Apply the changes to your HTTPRoute:
nixkubectl apply -f hostname-based-route.yamlnixkubectl apply -f hostname-based-route.yamlThe controller will pick up the changes, apply the configuration, and reload the load balancer automatically.
Tip
Alternatively, you can make changes directly to the resource as it’s currently deployed using
kubectl edit:nixkubectl edit httproute web-hostname-routenixkubectl edit httproute web-hostname-routeUpon saving your changes and exiting the editor, your changes are applied.
Use multiple Backend custom resources Jump to heading
You can reference multiple Backend custom resources within one HTTPRoute. This allows you to:
- Reuse a Backend custom resource in multiple routes, for example, to apply some settings, such as the load balancing algorithm, to all of your routes. This allows you to apply consistent configurations across your routes without duplication.
- Combine multiple Backend custom resources in a single Route. In this way, you can override or apply additional settings defined in other Backend custom resources. By default, each additional Backend CR you reference only adds to the configuration; it doesn’t override any settings defined by another Backend CR, though you can change this behavior.
When you combine multiple Backend custom resources, the way that the settings are applied depends on whether the merge type is append, which adds to the configuration, or override, which replaces the configuration.
To illustrate how the settings are applied, consider the following Backend custom resource that sets the load balancing algorithm to random:
backend-config1.yamlyamlapiVersion: gate.v3.haproxy.org/v3kind: Backendmetadata:name: backend-config1namespace: defaultspec:balance:algorithm: random
backend-config1.yamlyamlapiVersion: gate.v3.haproxy.org/v3kind: Backendmetadata:name: backend-config1namespace: defaultspec:balance:algorithm: random
The Backend CR sets only the balance parameter; it resides in the default namespace.
To apply this Backend CR to an HTTPRoute:
-
Create a file named
backend-config1.yaml, paste the contents above, and apply the resource usingkubectl applyto create it in your cluster:nixkubectl apply -f backend-config1.yamlnixkubectl apply -f backend-config1.yamloutputtextbackend.gate.v3.haproxy.org/backend-config1 createdoutputtextbackend.gate.v3.haproxy.org/backend-config1 created -
Add a
filterssection to thebackendRefsof the HTTPRoute that corresponds to the backend application you’d like to customize. The type of filter we’re adding isExtensionRef. UnderextensionRef, set:grouptogate.v3.haproxy.orgkindtoBackendnameto the name of the Backend CRD
Here, we’re referencing the Backend CR named
backend-config1:hostname-based-route.yamlyamlapiVersion: gateway.networking.k8s.io/v1kind: HTTPRoutemetadata:name: web-hostname-routenamespace: defaultspec:parentRefs:- name: example-haproxy-gatewaysectionName: http-listenerhostnames:- web.example.comrules:- backendRefs:- name: web-svcnamespace: defaultport: 80filters:- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config1hostname-based-route.yamlyamlapiVersion: gateway.networking.k8s.io/v1kind: HTTPRoutemetadata:name: web-hostname-routenamespace: defaultspec:parentRefs:- name: example-haproxy-gatewaysectionName: http-listenerhostnames:- web.example.comrules:- backendRefs:- name: web-svcnamespace: defaultport: 80filters:- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config1 -
Apply the changes to your HTTPRoute:
nixkubectl apply -f hostname-based-route.yamlnixkubectl apply -f hostname-based-route.yamlThe controller will pick up the changes, apply the configuration, and reload the load balancer automatically.
In the sections that follow, we’ll show how to use additional Backend custom resources to append settings to and to override the settings of this Backend CR named backend-config1.
Tip
Backend custom resources don’t change any configurations until you reference them in an HTTPRoute.
Append settings Jump to heading
To add settings without overriding them, create additional Backend custom resources and reference them in your HTTPRoute by adding an ExtensionRef for each Backend CR. For example, we’ll create a Backend CR that sets the number of retries and then reference it in our HTTPRoute.
-
Create a second Backend CR with additional settings. We’ll create one named
backend-config2that will set the number of retries to 3:backend-config2.yamlyamlapiVersion: gate.v3.haproxy.org/v3kind: Backendmetadata:name: backend-config2namespace: defaultspec:retries: 3backend-config2.yamlyamlapiVersion: gate.v3.haproxy.org/v3kind: Backendmetadata:name: backend-config2namespace: defaultspec:retries: 3 -
Use
kubectl applyto apply the resource:nixkubectl apply -f backend-config2.yamlnixkubectl apply -f backend-config2.yamloutputtextbackend.gate.v3.haproxy.org/backend-config2 createdoutputtextbackend.gate.v3.haproxy.org/backend-config2 created -
Add an additional filter of type
ExtensionRefafter the first Backend CR entry. UnderextensionRef, set:grouptogate.v3.haproxy.orgkindtoBackendnameto the name of the second Backend CRD
Here, we’re referencing our second Backend CR named
backend-config2:hostname-based-route.yamlyamlapiVersion: gateway.networking.k8s.io/v1kind: HTTPRoutemetadata:name: web-hostname-routenamespace: defaultspec:parentRefs:- name: example-haproxy-gatewaysectionName: http-listenerhostnames:- web.example.comrules:- backendRefs:- name: web-svcnamespace: defaultport: 80filters:- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config1- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config2hostname-based-route.yamlyamlapiVersion: gateway.networking.k8s.io/v1kind: HTTPRoutemetadata:name: web-hostname-routenamespace: defaultspec:parentRefs:- name: example-haproxy-gatewaysectionName: http-listenerhostnames:- web.example.comrules:- backendRefs:- name: web-svcnamespace: defaultport: 80filters:- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config1- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config2The custom resources are applied in the order in which they appear in the
filterslist. Each subsequent Backend custom resource’s parameters are added to the configuration without replacing the previous CR’s settings. -
Use
kubectl applyto apply the changes to the HTTPRoute:nixkubectl apply -f hostname-based-route.yamlnixkubectl apply -f hostname-based-route.yaml
The controller will pick up the changes, apply the configuration, and reload the load balancer automatically. The settings from both Backend custom resources are applied to the configuration.
Override settings Jump to heading
You can override settings set by Backend custom resources when referencing multiple Backend custom resources in the same HTTPRoute. In this case, the overriding Backend CR’s properties take precedence, and settings applied by the overriding Backend CR replace the values defined in Backend CRs that appeared earlier in the filters list. If the overriding Backend CR doesn’t have a value for a setting that was applied by an earlier Backend CR, the setting is removed entirely.
To override the settings of one Backend custom resource with another:
-
Create a second Backend CR with additional settings. This will be the overriding Backend CR. We’ll create one named
backend-config2that will set the number of retries to 3:backend-config2.yamlyamlapiVersion: gate.v3.haproxy.org/v3kind: Backendmetadata:name: backend-config2namespace: defaultspec:retries: 3backend-config2.yamlyamlapiVersion: gate.v3.haproxy.org/v3kind: Backendmetadata:name: backend-config2namespace: defaultspec:retries: 3 -
Use
kubectl applyto apply the resource:nixkubectl apply -f backend-config2.yamlnixkubectl apply -f backend-config2.yaml -
Add an additional filter of type
ExtensionRefafter the first Backend CR entry. UnderextensionRef, set:grouptogate.v3.haproxy.orgkindtoBackendnameto the name of the second Backend CRD
Here, we’re referencing our second Backend CR named
backend-config2:hostname-based-route.yamlyamlapiVersion: gateway.networking.k8s.io/v1kind: HTTPRoutemetadata:name: web-hostname-routenamespace: defaultspec:parentRefs:- name: example-haproxy-gatewaysectionName: http-listenerhostnames:- web.example.comrules:- backendRefs:- name: web-svcnamespace: defaultport: 80filters:- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config1- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config2hostname-based-route.yamlyamlapiVersion: gateway.networking.k8s.io/v1kind: HTTPRoutemetadata:name: web-hostname-routenamespace: defaultspec:parentRefs:- name: example-haproxy-gatewaysectionName: http-listenerhostnames:- web.example.comrules:- backendRefs:- name: web-svcnamespace: defaultport: 80filters:- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config1- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config2 -
Add another filter of type
ExtensionRefimmediately before the filter entry for the overriding Backend CR. For this example, we’ll place it in the filters list afterbackend-config1, but beforebackend-config2. UnderextensionRef, set:grouptogate.v3.haproxy.orgkindtoMergeTypenametoOverride
This signals to the controller that the entries that follow will override, instead of append to, the settings of the Backend CRs appearing earlier in the list. The Backend custom resources are evaluated in the order in which they appear in the filters list.
hostname-based-route.yamlyamlapiVersion: gateway.networking.k8s.io/v1kind: HTTPRoutemetadata:name: web-hostname-routenamespace: defaultspec:parentRefs:- name: example-haproxy-gatewaysectionName: http-listenerhostnames:- web.example.comrules:- backendRefs:- name: web-svcnamespace: defaultport: 80filters:- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config1- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: MergeTypename: Override- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config2hostname-based-route.yamlyamlapiVersion: gateway.networking.k8s.io/v1kind: HTTPRoutemetadata:name: web-hostname-routenamespace: defaultspec:parentRefs:- name: example-haproxy-gatewaysectionName: http-listenerhostnames:- web.example.comrules:- backendRefs:- name: web-svcnamespace: defaultport: 80filters:- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config1- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: MergeTypename: Override- type: ExtensionRefextensionRef:group: gate.v3.haproxy.orgkind: Backendname: backend-config2Tip
Once you add a MergeType to the list, it affects all Backend CR references that follow it, until another MergeType is encountered. If you want Backend CRs that follow to use the append merge type, add another MergeType ExtensionRef to the list immediately before the ExtensionRef that references the Backend CR that shouldn’t override, and set its name to
Append. -
Use
kubectl applyto apply the changes to the HTTPRoute:nixkubectl apply -f hostname-based-route.yamlnixkubectl apply -f hostname-based-route.yamlThe controller will pick up the changes, apply the configuration, and reload the load balancer automatically. The Backend CR named
backend-config2setsretriesto3, and it doesn’t set a load balancing algorithm as didbackend-config. Because the merge type isOverride, the settingbalanceis removed (and the default setting used) sincebackend-config2didn’t explicitly set a value for it. The resulting configuration sets only the value forretries.Tip
If you set a value for
balanceinbackend-config2, it will override the value set bybackend-config1.backend-config2.yamlyamlapiVersion: gate.v3.haproxy.org/v3kind: Backendmetadata:name: backend-config2namespace: defaultspec:retries: 3balance:algorithm: leastconnbackend-config2.yamlyamlapiVersion: gate.v3.haproxy.org/v3kind: Backendmetadata:name: backend-config2namespace: defaultspec:retries: 3balance:algorithm: leastconn
Backend
-
CRD version:
1.0 -
API version:
gate.v3.haproxy.org/v3
abortonclose
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
abortonclose: String # Allowed values are enabled, disabled
accept_invalid_http_response
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
accept_invalid_http_response: String # Allowed values are enabled, disabled
accept_unsafe_violations_in_http_response
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
accept_unsafe_violations_in_http_response: String # Allowed values are enabled, disabled
acl_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
acl_list:
- acl_name: String # Allowed pattern: ^[^\s]+$
criterion: String # Allowed pattern: ^[^\s]+$
value: String
adv_check
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
adv_check: String # Allowed values are httpchk, ldap-check, mysql-check, pgsql-check, redis-check, smtpchk, ssl-hello-chk, tcp-check
allbackups
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
allbackups: String # Allowed values are enabled, disabled
balance
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
balance:
algorithm: String # Allowed values are first, hash, hdr, leastconn, random, rdp-cookie, roundrobin, source, static-rr, uri, url_param
hash_expression: String
hdr_name: String
hdr_use_domain_only: Boolean
random_draws: Integer
rdp_cookie_name: String # Allowed pattern: ^[^\s]+$
uri_depth: Integer
uri_len: Integer
uri_path_only: Boolean
uri_whole: Boolean
url_param: String # Allowed pattern: ^[^\s]+$
url_param_check_post: Integer
url_param_max_wait: Integer
check_timeout
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
check_timeout: Integer
checkcache
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
checkcache: String # Allowed values are enabled, disabled
compression
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
compression:
algo-req: String # Allowed values are identity, gzip, deflate, raw-deflate
algorithms: [ String ]
algos-res: [ String ]
direction: String # Allowed values are request, response, both
minsize_req: Integer
minsize_res: Integer
offload: Boolean
types: [ String ]
types-req: [ String ]
types-res: [ String ]
connect_timeout
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
connect_timeout: Integer # Minimum: 0
cookie
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
cookie:
attr:
- value: String # Allowed pattern: ^[^\s]+$
domain:
- value: String # Allowed pattern: ^[^\s]+$
dynamic: Boolean
httponly: Boolean
indirect: Boolean
maxidle: Integer
maxlife: Integer
name: String # Allowed pattern: ^[^\s]+$
nocache: Boolean
postonly: Boolean
preserve: Boolean
secure: Boolean
type: String # Allowed values are rewrite, insert, prefix
default_server
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
default_server:
agent-addr: String # Allowed pattern: ^[^\s]+$
agent-check: String # Allowed values are enabled, disabled
agent-inter: Integer # Minimum: 0
agent-port: Integer # Minimum: 1, Maximum: 65535
agent-send: String
allow_0rtt: Boolean
alpn: String # Allowed pattern: ^[^\s]+$
backup: String # Allowed values are enabled, disabled
check: String # Allowed values are enabled, disabled
check-pool-conn-name: String # Allowed pattern: ^[^\s]+$
check-reuse-pool: String # Allowed values are enabled, disabled
check-send-proxy: String # Allowed values are enabled, disabled
check-sni: String # Allowed pattern: ^[^\s]+$
check-ssl: String # Allowed values are enabled, disabled
check_alpn: String # Allowed pattern: ^[^\s]+$
check_proto: String # Allowed pattern: ^[^\s]+$
check_via_socks4: String # Allowed values are enabled, disabled
ciphers: String
ciphersuites: String
client_sigalgs: String
cookie: String # Allowed pattern: ^[^\s]+$
crl_file: String
curves: String
downinter: Integer # Minimum: 0
error_limit: Integer
fall: Integer
fastinter: Integer # Minimum: 0
force_sslv3: String # Allowed values are enabled, disabled
force_tlsv10: String # Allowed values are enabled, disabled
force_tlsv11: String # Allowed values are enabled, disabled
force_tlsv12: String # Allowed values are enabled, disabled
force_tlsv13: String # Allowed values are enabled, disabled
guid: String # Allowed pattern: ^[A-Za-z0-9-_.:]+$
hash_key: String # Allowed pattern: ^[^\s]+$
health_check_address: String # Allowed pattern: ^[^\s]+$
health_check_port: Integer # Minimum: 1, Maximum: 65535
idle_ping: Integer # Minimum: 0
init-addr: String # Allowed pattern: ^[^\s]+$
init-state: String # Allowed values are fully-up, up, down, fully-down
inter: Integer # Minimum: 0
log-bufsize: Integer
log_proto: String # Allowed values are legacy, octet-count
maintenance: String # Allowed values are enabled, disabled
max_reuse: Integer
maxconn: Integer
maxqueue: Integer
minconn: Integer
namespace: String
no_sslv3: String # Allowed values are enabled, disabled
no_tlsv10: String # Allowed values are enabled, disabled
no_tlsv11: String # Allowed values are enabled, disabled
no_tlsv12: String # Allowed values are enabled, disabled
no_tlsv13: String # Allowed values are enabled, disabled
no_verifyhost: String # Allowed values are enabled, disabled
npn: String
observe: String # Allowed values are layer4, layer7
on-error: String # Allowed values are fastinter, fail-check, sudden-death, mark-down
on-marked-down: String # Allowed values are shutdown-sessions
on-marked-up: String # Allowed values are shutdown-backup-sessions
pool_conn_name: String # Allowed pattern: ^[^\s]+$
pool_low_conn: Integer
pool_max_conn: Integer
pool_purge_delay: Integer # Minimum: 0
proto: String # Allowed pattern: ^[^\s]+$
proxy-v2-options: [ String ]
redir: String
resolve-net: String # Allowed pattern: ^([A-Za-z0-9.:/]+)(,[A-Za-z0-9.:/]+)*$
resolve-prefer: String # Allowed values are ipv4, ipv6
resolve_opts: String # Allowed pattern: ^(allow-dup-ip|ignore-weight|prevent-dup-ip)(,(allow-dup-ip|ignore-weight|prevent-dup-ip))*$
resolvers: String # Allowed pattern: ^[^\s]+$
rise: Integer
send-proxy: String # Allowed values are enabled, disabled
send-proxy-v2: String # Allowed values are enabled, disabled
send_proxy_v2_ssl: String # Allowed values are enabled, disabled
send_proxy_v2_ssl_cn: String # Allowed values are enabled, disabled
set-proxy-v2-tlv-fmt:
id: String
value: String
shard: Integer
sigalgs: String
slowstart: Integer # Minimum: 0
sni: String # Allowed pattern: ^[^\s]+$
socks4: String # Allowed pattern: ^[^\s]+$
source: String
ssl: String # Allowed values are enabled, disabled
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
ssl_reuse: String # Allowed values are enabled, disabled
sslv3: String # Allowed values are enabled, disabled
stick: String # Allowed values are enabled, disabled
strict-maxconn: Boolean
tcp_ut: Integer # Minimum: 0
tfo: String # Allowed values are enabled, disabled
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
track: String
verify: String # Allowed values are none, required
verifyhost: String
weight: Integer
ws: String # Allowed values are auto, h1, h2
description
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
description: String
disabled
[boolean]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
disabled: Boolean
dynamic_cookie_key
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
dynamic_cookie_key: String # Allowed pattern: ^[^\s]+$
email_alert
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
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: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
enabled: Boolean
error_files
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
error_files:
- code: Integer # Allowed values are 200, 400, 401, 403, 404, 405, 407, 408, 410, 413, 425, 429, 500, 501, 502, 503, 504
file: String
errorfiles_from_http_errors
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
errorfiles_from_http_errors:
- codes: [ Integer ]
name: String
errorloc302
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
errorloc302:
code: Integer # Allowed values are 200, 400, 401, 403, 404, 405, 407, 408, 410, 413, 425, 429, 500, 501, 502, 503, 504
url: String
errorloc303
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
errorloc303:
code: Integer # Allowed values are 200, 400, 401, 403, 404, 405, 407, 408, 410, 413, 425, 429, 500, 501, 502, 503, 504
url: String
external_check
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
external_check: String # Allowed values are enabled, disabled
external_check_command
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
external_check_command: String # Allowed pattern: ^[^\s]+$
external_check_path
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
external_check_path: String # Allowed pattern: ^[^\s]+$
filter_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
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
force_persist
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
force_persist:
cond: String # Allowed values are if, unless
cond_test: String
force_persist_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
force_persist_list:
- cond: String # Allowed values are if, unless
cond_test: String
forwardfor
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
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: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
from: String # Allowed pattern: ^[A-Za-z0-9-_.:]+$
fullconn
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
fullconn: Integer
guid
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
guid: String # Allowed pattern: ^[A-Za-z0-9-_.:]+$
h1_case_adjust_bogus_server
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
h1_case_adjust_bogus_server: String # Allowed values are enabled, disabled
hash_balance_factor
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
hash_balance_factor: Integer
hash_preserve_affinity
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
hash_preserve_affinity: String # Allowed values are always, maxconn, maxqueue
hash_type
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
hash_type:
function: String # Allowed values are sdbm, djb2, wt6, crc32, none
method: String # Allowed values are map-based, consistent
modifier: String # Allowed values are avalanche
http-buffer-request
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
http-buffer-request: String # Allowed values are enabled, disabled
http-drop-request-trailers
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
http-drop-request-trailers: String # Allowed values are enabled, disabled
http-no-delay
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
http-no-delay: String # Allowed values are enabled, disabled
http-use-htx
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
http-use-htx: String # Allowed values are enabled, disabled
http_after_response_rule_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
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_check_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
http_check_list:
- addr: String # Allowed pattern: ^[^\s]+$
alpn: String # Allowed pattern: ^[^\s]+$
body: String
body_log_format: String
check_comment: String
default: Boolean
error_status: String # Allowed values are L7OKC, L7RSP, L7STS, L6RSP, L4CON
exclamation_mark: Boolean
headers:
- fmt: String
name: String
linger: Boolean
match: String # Allowed values are status, rstatus, hdr, fhdr, string, rstring
method: String # Allowed values are HEAD, PUT, POST, GET, TRACE, PATCH, DELETE, CONNECT, OPTIONS
min_recv: Integer
ok_status: String # Allowed values are L7OK, L7OKC, L6OK, L4OK
on_error: String
on_success: String
pattern: String
port: Integer # Minimum: 1, Maximum: 65535
port_string: String
proto: String
send_proxy: Boolean
sni: String
ssl: Boolean
status-code: String
tout_status: String # Allowed values are L7TOUT, L6TOUT, L4TOUT
type: String # Allowed values are comment, connect, disable-on-404, expect, send, send-state, set-var, set-var-fmt, unset-var
uri: String
uri_log_format: String
var_expr: String
var_format: String
var_name: String # Allowed pattern: ^[^\s]+$
var_scope: String # Allowed pattern: ^[^\s]+$
version: String
via_socks4: Boolean
http_connection_mode
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
http_connection_mode: String # Allowed values are httpclose, http-server-close, http-keep-alive
http_error_rule_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
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 # Allowed values are 200, 400, 401, 403, 404, 405, 407, 408, 410, 413, 425, 429, 500, 501, 502, 503, 504
type: String # Allowed values are status
http_keep_alive_timeout
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
http_keep_alive_timeout: Integer # Minimum: 0
http_pretend_keepalive
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
http_pretend_keepalive: String # Allowed values are enabled, disabled
http_proxy
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
http_proxy: String # Allowed values are enabled, disabled
http_request_rule_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
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 # Allowed values are 301, 302, 303, 307, 308
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: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
http_request_timeout: Integer # Minimum: 0
http_response_rule_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
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 # Allowed values are 301, 302, 303, 307, 308
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: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
http_restrict_req_hdr_names: String # Allowed values are preserve, delete, reject
http_reuse
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
http_reuse: String # Allowed values are aggressive, always, never, safe
http_send_name_header
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
http_send_name_header: String
httpchk_params
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
httpchk_params:
host: String
method: String # Allowed values are HEAD, PUT, POST, GET, TRACE, PATCH, DELETE, CONNECT, OPTIONS
uri: String # Allowed pattern: ^[^ ]*$
version: String
id
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
id: Integer
ignore_persist
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
ignore_persist:
cond: String # Allowed values are if, unless
cond_test: String
ignore_persist_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
ignore_persist_list:
- cond: String # Allowed values are if, unless
cond_test: String
independent_streams
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
independent_streams: String # Allowed values are enabled, disabled
load_server_state_from_file
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
load_server_state_from_file: String # Allowed values are global, local, none
log_health_checks
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
log_health_checks: String # Allowed values are enabled, disabled
log_tag
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
log_tag: String # Allowed pattern: ^[^\s]+$
log_target_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
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
max_keep_alive_queue
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
max_keep_alive_queue: Integer
mode
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
mode: String # Allowed values are http, tcp, log
mysql_check_params
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
mysql_check_params:
client_version: String # Allowed values are pre-41, post-41
username: String
nolinger
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
nolinger: String # Allowed values are enabled, disabled
originalto
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
originalto:
enabled: String # Allowed values are enabled
except: String # Allowed pattern: ^[^\s]+$
header: String # Allowed pattern: ^[^\s]+$
persist
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
persist: String # Allowed values are enabled, disabled
persist_rule
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
persist_rule:
rdp_cookie_name: String # Allowed pattern: ^[^\s]+$
type: String # Allowed values are rdp-cookie
pgsql_check_params
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
pgsql_check_params:
username: String
prefer_last_server
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
prefer_last_server: String # Allowed values are enabled, disabled
queue_timeout
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
queue_timeout: Integer # Minimum: 0
redispatch
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
redispatch:
enabled: String # Allowed values are enabled, disabled
interval: Integer
retries
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
retries: Integer
retry_on
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
retry_on: String
server_fin_timeout
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
server_fin_timeout: Integer # Minimum: 0
server_state_file_name
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
server_state_file_name: String
server_switching_rule_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
server_switching_rule_list:
- cond: String # Allowed values are if, unless
cond_test: String
target_server: String # Allowed pattern: ^[^\s]+$
server_templates
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
server_templates:
server_templates-example:
agent-addr: String # Allowed pattern: ^[^\s]+$
agent-check: String # Allowed values are enabled, disabled
agent-inter: Integer # Minimum: 0
agent-port: Integer # Minimum: 1, Maximum: 65535
agent-send: String
allow_0rtt: Boolean
alpn: String # Allowed pattern: ^[^\s]+$
backup: String # Allowed values are enabled, disabled
check: String # Allowed values are enabled, disabled
check-pool-conn-name: String # Allowed pattern: ^[^\s]+$
check-reuse-pool: String # Allowed values are enabled, disabled
check-send-proxy: String # Allowed values are enabled, disabled
check-sni: String # Allowed pattern: ^[^\s]+$
check-ssl: String # Allowed values are enabled, disabled
check_alpn: String # Allowed pattern: ^[^\s]+$
check_proto: String # Allowed pattern: ^[^\s]+$
check_via_socks4: String # Allowed values are enabled, disabled
ciphers: String
ciphersuites: String
client_sigalgs: String
cookie: String # Allowed pattern: ^[^\s]+$
crl_file: String
curves: String
downinter: Integer # Minimum: 0
error_limit: Integer
fall: Integer
fastinter: Integer # Minimum: 0
force_sslv3: String # Allowed values are enabled, disabled
force_tlsv10: String # Allowed values are enabled, disabled
force_tlsv11: String # Allowed values are enabled, disabled
force_tlsv12: String # Allowed values are enabled, disabled
force_tlsv13: String # Allowed values are enabled, disabled
fqdn: String
guid: String # Allowed pattern: ^[A-Za-z0-9-_.:]+$
hash_key: String # Allowed pattern: ^[^\s]+$
health_check_address: String # Allowed pattern: ^[^\s]+$
health_check_port: Integer # Minimum: 1, Maximum: 65535
id: Integer
idle_ping: Integer # Minimum: 0
init-addr: String # Allowed pattern: ^[^\s]+$
init-state: String # Allowed values are fully-up, up, down, fully-down
inter: Integer # Minimum: 0
log-bufsize: Integer
log_proto: String # Allowed values are legacy, octet-count
maintenance: String # Allowed values are enabled, disabled
max_reuse: Integer
maxconn: Integer
maxqueue: Integer
minconn: Integer
namespace: String
no_sslv3: String # Allowed values are enabled, disabled
no_tlsv10: String # Allowed values are enabled, disabled
no_tlsv11: String # Allowed values are enabled, disabled
no_tlsv12: String # Allowed values are enabled, disabled
no_tlsv13: String # Allowed values are enabled, disabled
no_verifyhost: String # Allowed values are enabled, disabled
npn: String
num_or_range: String
observe: String # Allowed values are layer4, layer7
on-error: String # Allowed values are fastinter, fail-check, sudden-death, mark-down
on-marked-down: String # Allowed values are shutdown-sessions
on-marked-up: String # Allowed values are shutdown-backup-sessions
pool_conn_name: String # Allowed pattern: ^[^\s]+$
pool_low_conn: Integer
pool_max_conn: Integer
pool_purge_delay: Integer # Minimum: 0
port: Integer # Minimum: 1, Maximum: 65535
prefix: String # Allowed pattern: ^[^\s]+$
proto: String # Allowed pattern: ^[^\s]+$
proxy-v2-options: [ String ]
redir: String
resolve-net: String # Allowed pattern: ^([A-Za-z0-9.:/]+)(,[A-Za-z0-9.:/]+)*$
resolve-prefer: String # Allowed values are ipv4, ipv6
resolve_opts: String # Allowed pattern: ^(allow-dup-ip|ignore-weight|prevent-dup-ip)(,(allow-dup-ip|ignore-weight|prevent-dup-ip))*$
resolvers: String # Allowed pattern: ^[^\s]+$
rise: Integer
send-proxy: String # Allowed values are enabled, disabled
send-proxy-v2: String # Allowed values are enabled, disabled
send_proxy_v2_ssl: String # Allowed values are enabled, disabled
send_proxy_v2_ssl_cn: String # Allowed values are enabled, disabled
set-proxy-v2-tlv-fmt:
id: String
value: String
shard: Integer
sigalgs: String
slowstart: Integer # Minimum: 0
sni: String # Allowed pattern: ^[^\s]+$
socks4: String # Allowed pattern: ^[^\s]+$
source: String
ssl: String # Allowed values are enabled, disabled
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
ssl_reuse: String # Allowed values are enabled, disabled
sslv3: String # Allowed values are enabled, disabled
stick: String # Allowed values are enabled, disabled
strict-maxconn: Boolean
tcp_ut: Integer # Minimum: 0
tfo: String # Allowed values are enabled, disabled
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
track: String
verify: String # Allowed values are none, required
verifyhost: String
weight: Integer
ws: String # Allowed values are auto, h1, h2
server_timeout
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
server_timeout: Integer # Minimum: 0
servers
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
servers:
servers-example:
address: String # Allowed pattern: ^[^\s]+$
agent-addr: String # Allowed pattern: ^[^\s]+$
agent-check: String # Allowed values are enabled, disabled
agent-inter: Integer # Minimum: 0
agent-port: Integer # Minimum: 1, Maximum: 65535
agent-send: String
allow_0rtt: Boolean
alpn: String # Allowed pattern: ^[^\s]+$
backup: String # Allowed values are enabled, disabled
check: String # Allowed values are enabled, disabled
check-pool-conn-name: String # Allowed pattern: ^[^\s]+$
check-reuse-pool: String # Allowed values are enabled, disabled
check-send-proxy: String # Allowed values are enabled, disabled
check-sni: String # Allowed pattern: ^[^\s]+$
check-ssl: String # Allowed values are enabled, disabled
check_alpn: String # Allowed pattern: ^[^\s]+$
check_proto: String # Allowed pattern: ^[^\s]+$
check_via_socks4: String # Allowed values are enabled, disabled
ciphers: String
ciphersuites: String
client_sigalgs: String
cookie: String # Allowed pattern: ^[^\s]+$
crl_file: String
curves: String
downinter: Integer # Minimum: 0
error_limit: Integer
fall: Integer
fastinter: Integer # Minimum: 0
force_sslv3: String # Allowed values are enabled, disabled
force_tlsv10: String # Allowed values are enabled, disabled
force_tlsv11: String # Allowed values are enabled, disabled
force_tlsv12: String # Allowed values are enabled, disabled
force_tlsv13: String # Allowed values are enabled, disabled
guid: String # Allowed pattern: ^[A-Za-z0-9-_.:]+$
hash_key: String # Allowed pattern: ^[^\s]+$
health_check_address: String # Allowed pattern: ^[^\s]+$
health_check_port: Integer # Minimum: 1, Maximum: 65535
id: Integer
idle_ping: Integer # Minimum: 0
init-addr: String # Allowed pattern: ^[^\s]+$
init-state: String # Allowed values are fully-up, up, down, fully-down
inter: Integer # Minimum: 0
log-bufsize: Integer
log_proto: String # Allowed values are legacy, octet-count
maintenance: String # Allowed values are enabled, disabled
max_reuse: Integer
maxconn: Integer
maxqueue: Integer
minconn: Integer
name: String # Allowed pattern: ^[^\s]+$
namespace: String
no_sslv3: String # Allowed values are enabled, disabled
no_tlsv10: String # Allowed values are enabled, disabled
no_tlsv11: String # Allowed values are enabled, disabled
no_tlsv12: String # Allowed values are enabled, disabled
no_tlsv13: String # Allowed values are enabled, disabled
no_verifyhost: String # Allowed values are enabled, disabled
npn: String
observe: String # Allowed values are layer4, layer7
on-error: String # Allowed values are fastinter, fail-check, sudden-death, mark-down
on-marked-down: String # Allowed values are shutdown-sessions
on-marked-up: String # Allowed values are shutdown-backup-sessions
pool_conn_name: String # Allowed pattern: ^[^\s]+$
pool_low_conn: Integer
pool_max_conn: Integer
pool_purge_delay: Integer # Minimum: 0
port: Integer # Minimum: 1, Maximum: 65535
proto: String # Allowed pattern: ^[^\s]+$
proxy-v2-options: [ String ]
redir: String
resolve-net: String # Allowed pattern: ^([A-Za-z0-9.:/]+)(,[A-Za-z0-9.:/]+)*$
resolve-prefer: String # Allowed values are ipv4, ipv6
resolve_opts: String # Allowed pattern: ^(allow-dup-ip|ignore-weight|prevent-dup-ip)(,(allow-dup-ip|ignore-weight|prevent-dup-ip))*$
resolvers: String # Allowed pattern: ^[^\s]+$
rise: Integer
send-proxy: String # Allowed values are enabled, disabled
send-proxy-v2: String # Allowed values are enabled, disabled
send_proxy_v2_ssl: String # Allowed values are enabled, disabled
send_proxy_v2_ssl_cn: String # Allowed values are enabled, disabled
set-proxy-v2-tlv-fmt:
id: String
value: String
shard: Integer
sigalgs: String
slowstart: Integer # Minimum: 0
sni: String # Allowed pattern: ^[^\s]+$
socks4: String # Allowed pattern: ^[^\s]+$
source: String
ssl: String # Allowed values are enabled, disabled
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
ssl_reuse: String # Allowed values are enabled, disabled
sslv3: String # Allowed values are enabled, disabled
stick: String # Allowed values are enabled, disabled
strict-maxconn: Boolean
tcp_ut: Integer # Minimum: 0
tfo: String # Allowed values are enabled, disabled
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
track: String
verify: String # Allowed values are none, required
verifyhost: String
weight: Integer
ws: String # Allowed values are auto, h1, h2
smtpchk_params
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
smtpchk_params:
domain: String
hello: String
source
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
source:
address: String
address_second: String
hdr: String
interface: String
occ: String
port: Integer # Minimum: 1, Maximum: 65535
port_second: Integer # Minimum: 1, Maximum: 65535
usesrc: String # Allowed values are address, client, clientip, hdr_ip
splice_auto
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
splice_auto: String # Allowed values are enabled, disabled
splice_request
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
splice_request: String # Allowed values are enabled, disabled
splice_response
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
splice_response: String # Allowed values are enabled, disabled
spop_check
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
spop_check: String # Allowed values are enabled, disabled
srvtcpka
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
srvtcpka: String # Allowed values are enabled, disabled
srvtcpka_cnt
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
srvtcpka_cnt: Integer
srvtcpka_idle
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
srvtcpka_idle: Integer
srvtcpka_intvl
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
srvtcpka_intvl: Integer
stats_options
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
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_rule_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
stick_rule_list:
- cond: String # Allowed values are if, unless
cond_test: String
pattern: String # Allowed pattern: ^[^\s]+$
table: String # Allowed pattern: ^[^\s]+$
type: String # Allowed values are match, on, store-request, store-response
stick_table
[object]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
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: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
tarpit_timeout: Integer # Minimum: 0
tcp_check_rule_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
tcp_check_rule_list:
- action: String # Allowed values are comment, connect, expect, send, send-lf, send-binary, send-binary-lf, set-var, set-var-fmt, unset-var
addr: String # Allowed pattern: ^[^\s]+$
alpn: String # Allowed pattern: ^[^\s]+$
check_comment: String
data: String
default: Boolean
error_status: String # Allowed values are L7OKC, L7RSP, L7STS, L6RSP, L4CON
exclamation_mark: Boolean
fmt: String
hex_fmt: String
hex_string: String
linger: Boolean
match: String # Allowed values are string, rstring, string-lf, binary, rbinary, binary-lf
min_recv: Integer
ok_status: String # Allowed values are L7OK, L7OKC, L6OK, L4OK
on_error: String
on_success: String
pattern: String
port: Integer # Minimum: 1, Maximum: 65535
port_string: String
proto: String
send_proxy: Boolean
sni: String
ssl: Boolean
status-code: String
tout_status: String # Allowed values are L7TOUT, L6TOUT, L4TOUT
var_expr: String
var_fmt: String
var_name: String # Allowed pattern: ^[^\s]+$
var_scope: String # Allowed pattern: ^[^\s]+$
via_socks4: Boolean
tcp_request_rule_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
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_response_rule_list
[array]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
tcp_response_rule_list:
- action: String # Allowed values are accept, close, 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-fc-mark, set-fc-tos, set-log-level, set-mark, set-nice, set-tos, set-var, set-var-fmt, silent-drop, unset-var, do-log
bandwidth_limit_limit: String
bandwidth_limit_name: String
bandwidth_limit_period: String
cond: String # Allowed values are if, unless
cond_test: String
expr: 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
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]+$
timeout: Integer
tos_value: String # Allowed pattern: ^(0x[0-9A-Fa-f]+|[0-9]+)$
type: String # Allowed values are content, inspect-delay
var_format: String
var_name: String # Allowed pattern: ^[^\s]+$
var_scope: String # Allowed pattern: ^[^\s]+$
tcp_smart_connect
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
tcp_smart_connect: String # Allowed values are enabled, disabled
tcpka
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
tcpka: String # Allowed values are enabled, disabled
transparent
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
transparent: String # Allowed values are enabled, disabled
tunnel_timeout
[integer]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
tunnel_timeout: Integer # Minimum: 0
use_fcgi_app
[string]
apiVersion: "gate.v3.haproxy.org/v3"
kind: Backend
metadata:
name: example-backend
namespace: default
spec:
use_fcgi_app: String