API Reference

Auto-generated API reference for CRDs defined by the Coraza Kubernetes Operator.

Packages

waf.k8s.coraza.io/v1alpha1

Package v1alpha1 contains API Schema definitions for the waf v1alpha1 API group.

Resource Types

DataReference

DataReference is a reference to a RuleData object in the same namespace as the RuleSet.

Appears in:

FieldDescriptionDefaultValidation
name stringname is the name of the RuleData in the same namespace as the RuleSet.MaxLength: 253
MinLength: 1
Required: {}

DriverConfig

DriverConfig configures how the WAF filter is deployed into the target. When omitted from the Engine spec, the operator uses a default driver (currently wasm for Istio).

what GatewayAPI controller was used and set the better default driver.

Exactly one driver-specific configuration must match the selected type.

Validation:

  • MinProperties: 0

Appears in:

FieldDescriptionDefaultValidation
type DriverTypetype selects the driver mechanism used to deploy the WAF filter.Enum: [wasm]
Required: {}
wasm WasmDriverConfigwasm contains configuration specific to the WASM driver.MinProperties: 0
Optional: {}

DriverType

Underlying type: string

DriverType specifies the mechanism used to deploy the WAF filter.

Validation:

  • Enum: [wasm]

Appears in:

ValueDescription
wasmDriverTypeWasm deploys the WAF as a WebAssembly plugin.

Engine

Engine represents an instance of a Web Application Firewall (WAF) engine.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringwaf.k8s.coraza.io/v1alpha1
kind stringEngine
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec EngineSpecspec defines the desired state of Engine.Required: {}
status EngineStatusstatus defines the observed state of Engine.MinProperties: 0
Optional: {}

EngineList

EngineList contains a list of Engine resources.

FieldDescriptionDefaultValidation
apiVersion stringwaf.k8s.coraza.io/v1alpha1
kind stringEngineList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
items Engine arrayItems is the list of Engines.Required: {}

EngineSpec

EngineSpec defines the desired state of an Engine.

Appears in:

FieldDescriptionDefaultValidation
ruleSet RuleSetReferenceruleSet specifies the RuleSet resource that will be used to load rules
into the Engine. The referenced RuleSet must be in the same namespace
as the Engine.
Required: {}
target EngineTargettarget identifies the workload that the Engine protects. The operator
derives the workload selector from this reference (e.g., for Gateway
targets, the GEP-1762 gateway-name label is used).
Required: {}
failurePolicy FailurePolicyfailurePolicy determines the behavior when the WAF is not ready or
encounters errors. Valid values are:
- “Fail”: Block traffic when the WAF is not ready or encounters errors
- “Allow”: Allow traffic through when the WAF is not ready or encounters errors
When omitted, this means the user has no opinion and the platform
will choose a reasonable default, which is subject to change over time.
The current default is fail.
failEnum: [fail allow]
Optional: {}
ruleSetCacheServer RuleSetCacheServerConfigruleSetCacheServer contains configuration for the ruleset cache server.
When omitted, no cache server will be used and no rulesets will be
dynamically loaded. This implies that your Engine will be deployed with
all rules statically embedded.
MinProperties: 0
Optional: {}
driver DriverConfigdriver configures the mechanism used to deploy the WAF filter into the
target workload. When omitted, the operator uses a default driver for the
underlying Engine (eg.: WASM for Istio)
MinProperties: 0
Optional: {}

EngineStatus

EngineStatus defines the observed state of Engine.

Validation:

  • MinProperties: 0

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayconditions represent the current state of the Engine resource.
Each condition has a unique type and reflects the status of a specific
aspect of the resource.
Standard condition types include:
- “Accepted”: the target is valid and not contested by another Engine.
Reasons: “Accepted”, “TargetNotFound”, “TargetConflict”
- “Ready”: the engine has been successfully deployed and is operational
- “Progressing”: the resource is being created or updated
- “Degraded”: the resource failed to reach or maintain its desired state
The status of each condition is one of True, False, or Unknown.
MaxItems: 16
MinItems: 1
Optional: {}

EngineTarget

EngineTarget identifies the workload that the Engine protects.

Appears in:

FieldDescriptionDefaultValidation
type EngineTargetTypetype is the type of resource being targeted.
Currently only supports “Gateway” mode, utilizing Gateway API resources.
Enum: [Gateway]
Required: {}
name stringname is the name of the target resource in the same namespace as the
Engine. For Gateway targets, the operator derives the workload selector
from this name using the GEP-1762 convention
(gateway.networking.k8s.io/gateway-name label).
Must conform to RFC 1035 label syntax: lowercase alphanumeric or
hyphens, must start with a letter and end with an alphanumeric
(e.g. “my-gateway”, “gw1”). This matches Kubernetes Service naming
rules and ensures compatibility with Gateway implementations that
derive Service names from the Gateway name.
MaxLength: 63
MinLength: 1
Required: {}
provider EngineTargetProviderprovider identifies the infrastructure provider that manages the
target workload. The provider determines which driver types are
valid for the Engine.
This field is immutable after creation. Changing providers requires
creating a new Engine resource so the controller does not need to
clean up and recreate child resources from the previous driver.
Currently supported providers and their allowed driver types:
- “Istio”: supports “wasm” driver type.
Future providers may support different driver types. For example,
“EnvoyGateway” will only support “dynamicModule” once implemented.
When omitted, this means the user has no opinion and the platform
will choose a reasonable default, which is subject to change over time.
The current default is Istio.
IstioEnum: [Istio]
Optional: {}

EngineTargetProvider

Underlying type: string

EngineTargetProvider identifies the infrastructure provider managing the target workload. Each provider supports a specific set of driver types.

Validation:

  • Enum: [Istio]

Appears in:

ValueDescription
IstioEngineTargetProviderIstio indicates the target is managed by Istio.
Supported driver types: “wasm”.

EngineTargetType

Underlying type: string

EngineTargetType specifies the type of resource an Engine targets.

Validation:

  • Enum: [Gateway]

Appears in:

ValueDescription
GatewayEngineTargetTypeGateway targets a Gateway API Gateway resource.

FailurePolicy

Underlying type: string

FailurePolicy describes the failure policy for the Engine.

Validation:

  • Enum: [fail allow]

Appears in:

ValueDescription
failFailurePolicyFail blocks traffic when the Engine is not ready or encounters
errors.
allowFailurePolicyAllow allows traffic through when the Engine is not ready or
encounters errors.

RuleData

RuleData holds data file content (e.g. for @pmFromFile) for consumption by RuleSet resources. Each entry in spec.files maps a filename to its content.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringwaf.k8s.coraza.io/v1alpha1
kind stringRuleData
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec RuleDataSpecspec defines the data file content.Required: {}

RuleDataList

RuleDataList contains a list of RuleData resources.

FieldDescriptionDefaultValidation
apiVersion stringwaf.k8s.coraza.io/v1alpha1
kind stringRuleDataList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
items RuleData arrayItems is the list of RuleData.Required: {}

RuleDataSpec

RuleDataSpec defines the content of a RuleData resource.

Appears in:

FieldDescriptionDefaultValidation
files object (keys:string, values:string)files maps filenames to file content, used for @pmFromFile data.MinProperties: 1
Required: {}

RuleSet

RuleSet represents a set of Web Application Firewall (WAF) rules.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringwaf.k8s.coraza.io/v1alpha1
kind stringRuleSet
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec RuleSetSpecspec defines the desired state of RuleSet.Required: {}
status RuleSetStatusstatus defines the observed state of RuleSet.MinProperties: 1
Optional: {}

RuleSetCacheServerConfig

RuleSetCacheServerConfig defines the configuration for the RuleSet cache server.

Validation:

  • MinProperties: 0

Appears in:

FieldDescriptionDefaultValidation
pollIntervalSeconds integerpollIntervalSeconds specifies how often the WAF should check for
configuration updates. The value is specified in seconds.
When omitted, this means the user has no opinion and the platform
will choose a reasonable default, which is subject to change over time.
The current default is 15 seconds.
15Maximum: 3600
Minimum: 1
Optional: {}

RuleSetList

RuleSetList contains a list of RuleSet resources.

FieldDescriptionDefaultValidation
apiVersion stringwaf.k8s.coraza.io/v1alpha1
kind stringRuleSetList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
items RuleSet arrayItems is the list of RuleSets.Required: {}

RuleSetReference

RuleSetReference is a reference to a RuleSet resource.

Appears in:

FieldDescriptionDefaultValidation
name stringname is the name of the RuleSet in the same namespace as the Engine.MaxLength: 253
MinLength: 1
Required: {}

RuleSetSpec

RuleSetSpec defines the desired state of RuleSet.

Appears in:

FieldDescriptionDefaultValidation
sources SourceReference arraysources is an ordered list of references to RuleSource objects in the
same namespace as the RuleSet. Sources are concatenated in list order
to form the aggregated SecLang string.
MaxItems: 2048
MinItems: 1
Required: {}
data DataReference arraydata is an optional list of references to RuleData objects in the same
namespace as the RuleSet. Data entries are merged to provide the
filesystem for @pmFromFile directives (last-listed wins on duplicate keys).
MaxItems: 256
MinItems: 1
Optional: {}

RuleSetStatus

RuleSetStatus defines the observed state of RuleSet.

Validation:

  • MinProperties: 1

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayconditions represent the current state of the RuleSet resource.
Each condition has a unique type and reflects the status of a specific aspect of the resource.
Standard condition types include:
- “Ready”: the RuleSet has been processed and the rules have been cached
- “Progressing”: the resource is being created or updated
- “Degraded”: the resource failed to reach or maintain its desired state
The status of each condition is one of True, False, or Unknown.
MaxItems: 16
MinItems: 1
Optional: {}

RuleSource

RuleSource holds SecLang WAF rule text for consumption by RuleSet resources.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringwaf.k8s.coraza.io/v1alpha1
kind stringRuleSource
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
spec RuleSourceSpecspec defines the rule content.Required: {}

RuleSourceList

RuleSourceList contains a list of RuleSource resources.

FieldDescriptionDefaultValidation
apiVersion stringwaf.k8s.coraza.io/v1alpha1
kind stringRuleSourceList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}
items RuleSource arrayItems is the list of RuleSources.Required: {}

RuleSourceSpec

RuleSourceSpec defines the content of a RuleSource.

Appears in:

FieldDescriptionDefaultValidation
rules stringrules contains SecLang rule text.MaxLength: 1572864
MinLength: 1
Required: {}

SourceReference

SourceReference is a reference to a RuleSource object in the same namespace as the RuleSet.

Appears in:

FieldDescriptionDefaultValidation
name stringname is the name of the RuleSource in the same namespace as the RuleSet.MaxLength: 253
MinLength: 1
Required: {}

WasmDriverConfig

WasmDriverConfig defines configuration for deploying the Engine as a WASM plugin.

Validation:

  • MinProperties: 0

Appears in:

FieldDescriptionDefaultValidation
image stringimage is the OCI image reference for the Coraza WASM plugin.
If omitted the operator uses its configured default WASM OCI reference
(–default-wasm-image / CORAZA_DEFAULT_WASM_IMAGE).
MaxLength: 1024
MinLength: 1
Optional: {}
imagePullSecret stringimagePullSecret is the name of a Kubernetes Secret in the same namespace
as the Engine that contains Docker registry credentials for pulling the
WASM OCI image.
MaxLength: 253
MinLength: 1
Optional: {}