Wazuh is a centralized Security Information and Event Management (SIEM) platform offering vulnerability intelligence and threat monitoring capabilities.
To generate the necessary certificates, refer to the instructions available here.
To retrieve hashes, execute the following command:
docker run --rm -ti wazuh/wazuh-indexer:4.14.1 bash /usr/share/wazuh-indexer/plugins/opensearch-security/tools/hash.sh`Any changes made to the indexer configuration or secrets will be automatically applied via job hooks. The reloader monitors for updates to ensure seamless application of changes. For a practical example of a production configuration, check the example folder.
This Helm chart has been tested with Wazuh version 4.14.3. Please note:
Wazuh supports only a single master node and multiple worker nodes. Although the configuration is prepared for a multi-master setup, Wazuh does not currently support this feature. All XML configuration files are automatically updated through init containers.
As an alternative to dashboard.ingress, the dashboard can be exposed through the Kubernetes Gateway API via dashboard.gateway.enabled. This requires:
- The Gateway API CRDs installed on the cluster, Gateway API v1.5+ (
BackendTLSPolicyandListenerSetare GA as of v1.5). - A Gateway controller that supports
BackendTLSPolicyifdashboard.enable_sslis set, and a pre-existingGatewayresource referenced bydashboard.gateway.parentRef.
By default the chart creates a dedicated ListenerSet (dashboard.gateway.listenerSet.enabled: true) attached to that Gateway, and attaches the dashboard HTTPRoute to the ListenerSet. This requires the selected Gateway controller to support ListenerSets and the parent Gateway to allow them via spec.allowedListeners — not every controller does. Set dashboard.gateway.listenerSet.enabled: false to attach the HTTPRoute directly to the Gateway instead; in that case the Gateway's own listener for the dashboard hostname must already exist.
Edge TLS (client to Gateway) and backend TLS (Gateway to the dashboard Service) are configured independently:
dashboard.gateway.tls.*controls edge TLS. By default the chart creates a cert-managerCertificatefor it; setdashboard.gateway.tls.certificate.create: falseanddashboard.gateway.tls.secretNameto reuse an existing Secret instead.dashboard.gateway.backendTLS.caCertificateRef.nameis required when bothdashboard.gateway.enabledanddashboard.enable_sslare true. It must name an existingConfigMap(keyca.crt) trusted to validate the dashboard's own TLS certificate — this is decoupled from the chart's internaldashboard-tlsSecret so any CA distribution mechanism (e.g.trust-manager) can be used.
This fork welcomes contributions and is open to transitioning into the official Wazuh project repository. Contributions are encouraged and appreciated.
To see all values and instructions, refer to the README.md of the chart.