<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Reference on Coraza Kubernetes Operator</title><link>https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/</link><description>Recent content in Reference on Coraza Kubernetes Operator</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/index.xml" rel="self" type="application/rss+xml"/><item><title>API Reference</title><link>https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/api/</guid><description>&lt;!-- This file is auto-generated by crd-ref-docs. Do not edit manually. --&gt;
&lt;!-- Regenerate with: make docs.api --&gt;
&lt;h2 id="packages"&gt;Packages&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/api/#wafk8scorazaiov1alpha1"&gt;waf.k8s.coraza.io/v1alpha1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="wafk8scorazaiov1alpha1"&gt;waf.k8s.coraza.io/v1alpha1&lt;/h2&gt;
&lt;p&gt;Package v1alpha1 contains API Schema definitions for the waf v1alpha1 API group.&lt;/p&gt;
&lt;h3 id="resource-types"&gt;Resource Types&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/api/#engine"&gt;Engine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/api/#enginelist"&gt;EngineList&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/api/#ruledata"&gt;RuleData&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/api/#ruledatalist"&gt;RuleDataList&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/api/#ruleset"&gt;RuleSet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/api/#rulesetlist"&gt;RuleSetList&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/api/#rulesource"&gt;RuleSource&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/api/#rulesourcelist"&gt;RuleSourceList&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="datareference"&gt;DataReference&lt;/h3&gt;
&lt;p&gt;DataReference is a reference to a RuleData object in the same namespace
as the RuleSet.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Appears in:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/api/#rulesetspec"&gt;RuleSetSpec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Field&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;th&gt;Default&lt;/th&gt;
 &lt;th&gt;Validation&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;name&lt;/code&gt; &lt;em&gt;string&lt;/em&gt;&lt;/td&gt;
 &lt;td&gt;name is the name of the RuleData in the same namespace as the RuleSet.&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;MaxLength: 253 &lt;br /&gt;MinLength: 1 &lt;br /&gt;Required: {} &lt;br /&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="driverconfig"&gt;DriverConfig&lt;/h3&gt;
&lt;p&gt;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).&lt;/p&gt;</description></item><item><title>Helm Chart Values</title><link>https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/helm-values/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/helm-values/</guid><description>&lt;p&gt;The Coraza Kubernetes Operator Helm chart is located at &lt;code&gt;charts/coraza-kubernetes-operator/&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="values-reference"&gt;Values Reference&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Default&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;replicas&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;int&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Number of operator replicas. A PodDisruptionBudget with &lt;code&gt;minAvailable: 1&lt;/code&gt; is created automatically when greater than 1.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;image.repository&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;ghcr.io/networking-incubator/coraza-kubernetes-operator&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Container image repository.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;image.tag&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;latest&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Container image tag.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;image.pullPolicy&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;IfNotPresent&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Image pull policy.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;imagePullSecrets&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;list&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Image pull secrets for private registries.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;resources.requests.cpu&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;10m&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;CPU request.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;resources.requests.memory&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;128Mi&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Memory request.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;resources.limits.cpu&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;500m&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;CPU limit.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;resources.limits.memory&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;256Mi&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Memory limit.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;metrics.enabled&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;bool&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Enable the controller-runtime metrics endpoint (HTTPS on port 8443).&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;metrics.certSecret&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Name of a Secret with TLS cert/key for metrics. When empty, a self-signed certificate is generated.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;metrics.certName&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;tls.crt&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Key name of the certificate file inside &lt;code&gt;certSecret&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;metrics.keyName&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;tls.key&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Key name of the private key file inside &lt;code&gt;certSecret&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;metrics.caName&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Key name of a CA certificate inside &lt;code&gt;certSecret&lt;/code&gt; for ServiceMonitor TLS verification.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;metrics.serviceMonitor.enabled&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;bool&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Create a Prometheus ServiceMonitor resource.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;logging.development&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;bool&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Use console encoder with debug level (development mode). When false, the production settings below apply.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;logging.encoder&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Log encoding format (&lt;code&gt;json&lt;/code&gt; or &lt;code&gt;console&lt;/code&gt;). Only used when &lt;code&gt;development&lt;/code&gt; is false.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;logging.level&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;info&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Minimum log level (&lt;code&gt;debug&lt;/code&gt;, &lt;code&gt;info&lt;/code&gt;, &lt;code&gt;error&lt;/code&gt;). Only used when &lt;code&gt;development&lt;/code&gt; is false.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;logging.stacktraceLevel&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;error&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Minimum level for stack traces (&lt;code&gt;info&lt;/code&gt;, &lt;code&gt;error&lt;/code&gt;, &lt;code&gt;panic&lt;/code&gt;). Only used when &lt;code&gt;development&lt;/code&gt; is false.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;logging.timeEncoding&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;rfc3339nano&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Timestamp format (&lt;code&gt;epoch&lt;/code&gt;, &lt;code&gt;millis&lt;/code&gt;, &lt;code&gt;nano&lt;/code&gt;, &lt;code&gt;iso8601&lt;/code&gt;, &lt;code&gt;rfc3339&lt;/code&gt;, &lt;code&gt;rfc3339nano&lt;/code&gt;). Only used when &lt;code&gt;development&lt;/code&gt; is false.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;istio.revision&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Istio control plane revision label. When empty, no revision label is set on managed resources.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;defaultWasmImage&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Default WASM plugin OCI URL when an Engine omits &lt;code&gt;spec.driver.wasm.image&lt;/code&gt;. When empty, uses the operator&amp;rsquo;s built-in default.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;createNamespace&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;bool&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Manage the release namespace with Pod Security Standard labels. Requires &lt;code&gt;--create-namespace&lt;/code&gt; on first install.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;openshift.enabled&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;bool&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Omit &lt;code&gt;runAsUser&lt;/code&gt;, &lt;code&gt;fsGroup&lt;/code&gt;, and &lt;code&gt;fsGroupChangePolicy&lt;/code&gt; from the pod security context for OpenShift SCC compatibility.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;podSecurityStandard.version&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;latest&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Kubernetes version for Pod Security Standard labels (&lt;code&gt;latest&lt;/code&gt; or &lt;code&gt;vX.YZ&lt;/code&gt;).&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;nodeSelector&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;object&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Node selector constraints.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;tolerations&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;list&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Tolerations.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;affinity&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;object&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Affinity rules.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;topologySpreadConstraints&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;list&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Topology spread constraints for pod scheduling.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="platform-requirements"&gt;Platform Requirements&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Platform&lt;/th&gt;
 &lt;th&gt;Minimum Version&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Kubernetes&lt;/td&gt;
 &lt;td&gt;v1.32+&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OpenShift Container Platform&lt;/td&gt;
 &lt;td&gt;v4.20+&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="openshift-values-example"&gt;OpenShift Values Example&lt;/h2&gt;
&lt;p&gt;For OpenShift installations, use the following values overlay:&lt;/p&gt;</description></item><item><title>kubectl-coraza CLI</title><link>https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/kubectl-coraza/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/kubectl-coraza/</guid><description>&lt;p&gt;&lt;code&gt;kubectl-coraza&lt;/code&gt; is a kubectl plugin for generating Kubernetes manifests (RuleSource, RuleData, RuleSet) from OWASP CoreRuleSet files.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The operator validates and compiles rules after you apply manifests; this tool does not compile Coraza rules.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="installation"&gt;Installation&lt;/h2&gt;
&lt;p&gt;Build from source:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/networking-incubator/coraza-kubernetes-operator.git
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; coraza-kubernetes-operator
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;make build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Copy &lt;code&gt;bin/kubectl-coraza&lt;/code&gt; to a directory on your &lt;code&gt;PATH&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp bin/kubectl-coraza /usr/local/bin/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once installed, the plugin is available as &lt;code&gt;kubectl coraza&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="commands"&gt;Commands&lt;/h2&gt;
&lt;h3 id="kubectl-coraza-generate-coreruleset"&gt;&lt;code&gt;kubectl coraza generate coreruleset&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Generate &lt;strong&gt;RuleSource&lt;/strong&gt; resources (one per &lt;code&gt;*.conf&lt;/code&gt; file), an optional &lt;strong&gt;RuleData&lt;/strong&gt; resource for &lt;code&gt;*.data&lt;/code&gt; files, and a &lt;strong&gt;RuleSet&lt;/strong&gt; that references them.&lt;/p&gt;</description></item><item><title>Operator CLI Flags</title><link>https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/operator-cli-flags/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/operator-cli-flags/</guid><description>&lt;p&gt;The operator manager binary accepts the following command-line flags. When deployed via Helm, these are configured through the chart values and passed as container arguments.&lt;/p&gt;
&lt;h2 id="flags"&gt;Flags&lt;/h2&gt;
&lt;h3 id="core"&gt;Core&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Flag&lt;/th&gt;
 &lt;th&gt;Default&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--metrics-bind-address&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Address for the metrics endpoint. Use &lt;code&gt;:8443&lt;/code&gt; for HTTPS or &lt;code&gt;0&lt;/code&gt; to disable.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--health-probe-bind-address&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;:8081&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Address for the health and readiness probe endpoint.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--leader-elect&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Enable leader election for controller manager. Required for running multiple replicas.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--operator-name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;(none)&lt;/td&gt;
 &lt;td&gt;Helm release name. When set, the operator creates Istio ServiceEntry and DestinationRule prerequisites at startup.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="tls-certificates"&gt;TLS Certificates&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Flag&lt;/th&gt;
 &lt;th&gt;Default&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--metrics-cert-path&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;(none)&lt;/td&gt;
 &lt;td&gt;Directory containing the metrics server TLS certificate.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--metrics-cert-name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;tls.crt&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Filename of the metrics certificate.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--metrics-cert-key&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;tls.key&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Filename of the metrics private key.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="ruleset-cache"&gt;RuleSet Cache&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Flag&lt;/th&gt;
 &lt;th&gt;Default&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--cache-gc-interval&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;5m&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;How often to check for and remove stale cache entries.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--cache-max-age&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;24h&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Maximum age before a cache entry is considered stale.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--cache-max-size&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;104857600&lt;/code&gt; (100 MB)&lt;/td&gt;
 &lt;td&gt;Maximum total size of all cached rules in bytes.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--cache-server-port&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;18080&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Port for the RuleSet cache HTTP server.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--envoy-cluster-name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;(required)&lt;/td&gt;
 &lt;td&gt;Envoy cluster name pointing to the cache server.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="istio-integration"&gt;Istio Integration&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Flag&lt;/th&gt;
 &lt;th&gt;Default&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--istio-revision&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;(none)&lt;/td&gt;
 &lt;td&gt;Istio revision label value for managed Istio resources.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;--default-wasm-image&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Built-in default&lt;/td&gt;
 &lt;td&gt;OCI reference for the Coraza WASM plugin used when an Engine omits the &lt;code&gt;image&lt;/code&gt; field. Can also be set via the &lt;code&gt;CORAZA_DEFAULT_WASM_IMAGE&lt;/code&gt; environment variable.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="environment-variables"&gt;Environment Variables&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Variable&lt;/th&gt;
 &lt;th&gt;Required&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;POD_NAMESPACE&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Yes&lt;/td&gt;
 &lt;td&gt;The namespace in which the operator is running. Typically set via the Kubernetes downward API.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;CORAZA_DEFAULT_WASM_IMAGE&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;No&lt;/td&gt;
 &lt;td&gt;Override the default WASM plugin OCI image. Equivalent to &lt;code&gt;--default-wasm-image&lt;/code&gt;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="logging"&gt;Logging&lt;/h2&gt;
&lt;p&gt;The operator uses &lt;a href="https://github.com/uber-go/zap"&gt;Zap&lt;/a&gt; via controller-runtime. Logging behavior is controlled through Helm values rather than direct CLI flags:&lt;/p&gt;</description></item><item><title>Status Conditions and Troubleshooting</title><link>https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/status-conditions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://networking-incubator.github.io/coraza-kubernetes-operator/latest/reference/status-conditions/</guid><description>&lt;p&gt;Both Engine and RuleSet resources report their state through standard Kubernetes conditions. This page describes each condition type and provides troubleshooting guidance.&lt;/p&gt;
&lt;h2 id="condition-types"&gt;Condition Types&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Type&lt;/th&gt;
 &lt;th&gt;Meaning&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Ready&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The resource has been successfully processed and is operational.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Progressing&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The resource is being created or updated.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Degraded&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The resource failed to reach or maintain its desired state.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Each condition includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: &lt;code&gt;True&lt;/code&gt;, &lt;code&gt;False&lt;/code&gt;, or &lt;code&gt;Unknown&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;reason&lt;/strong&gt;: A programmatic identifier (CamelCase) explaining the condition.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;message&lt;/strong&gt;: A human-readable description.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;lastTransitionTime&lt;/strong&gt;: When the condition last changed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;observedGeneration&lt;/strong&gt;: The resource generation that was observed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="engine-conditions"&gt;Engine Conditions&lt;/h2&gt;
&lt;h3 id="accepted"&gt;Accepted&lt;/h3&gt;
&lt;p&gt;The Engine&amp;rsquo;s target Gateway has been validated. Only one Engine may target a given Gateway at a time. When multiple Engines reference the same Gateway, the oldest one (by creation timestamp) wins; if timestamps are equal, the lexicographically first name wins. The losing Engines receive &lt;code&gt;Accepted=False&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>