Skip to main content

Azul base app

This repo contains the Helm Charts for Azul.

Validation

json schema validates the values.yaml entries. Azul helm charts use the draft-07 schema version.

This is the latest release that Helm supports (seehere and here) and vscode knows how to parse.

./azul

The main Helm Chart for Azul. Ensure you read and understand the contents of values.yaml.

You'll need to create your own values.yaml with content relevant to your specific deployment environment.

Redis

Redis is integrated into the Azul chart as its very unlikely you'll ever want to run redis elsewhere.

Redis can be updated by updating the image in the images list.

./infra

The Helm chart to deploy optional infrastructure related components of Azul is located in infra. This allows installation of services that Azul relies on such as Opensearch and Minio.

In production it is recommended that large components such as Opensearch, Kafka and Minio be installed outside the K8s cluster on dedicated hardware or an equivalent managed service by a provider is used.

Currently this includes:

  • Opensearch
  • Minio
  • Redis
  • Keycloak
  • Kafka

Data safety is not currently guaranteed between different versions of the infra chart. PVCs may be deleted during an upgrade. Please ensure all required data is backed up via the Azul disaster recovery module or otherwise. DO NOT back data up to the Minio cluster provisioned by this chart.

Disaster Recovery

The recovery service backs up Azul binary events and streams to S3. This requires an external s3-compatible service, ideally running outside of the Azul infrastructure.

Backup and restore can be configured in the main azul/values.yaml file, disabled by default.

Please see Azul documentation for further information on configuring a backup and performing a restore. Also reference .recovery in values.yaml for specific values that can be configured.

Backup

Backup runs like a plugin taking in all kafka events and then downloading all their binary streams, it then saves this data to an S3 server. This is a continuous backup of current state and will never 'finish'. Note - avoid deleting this pod as deletions will cause data not to be backed up.

Restore

Runs as a k8s 'job'. It will restore all raw stream data first and then restore all the kafka events.

Once restore is successful, remember to configure the backup to run instead. You should configure backup to a different bucket and delete the old bucket.

Networking port allocations

Port Purposes

To keep the system more secure specific ports are allocated for specific purposes.

Here is the table of values

Azul Ports

PortPod/ServiceDescriptionFlow Direction
53AllDNSEgress
80InternetConnecting out to internet servicesEgress
443InternetConnecting out to internet servicesEgress
3100Audit ForwarderConnection outbound to Loki for log scrapingEgress
3100PromTail Side carConnection outbound to Loki for log scrapingEgress
6379RedisConnections to and from RedisBoth
8000RestAPIInbound connections to the RestAPIIngress
8080Docs,WebUIInbound connections to the WebUI/DocsIngress
8090ScalerInbound connections from Keda to Scaler.Ingress
8111Dispatcher,lost-tasksInternal communication between dispatcher and everything elseBoth
8850Assemblyline ReceiverReceive data from Assemblyline and hosts statsIngress
8851Smart string finderFilter strings for restapi and hosts statsBoth
8852Retrohunt-serverHosts the retrohunt serverIngress
8853NSRL lookup ServerHosts the Nsrl lookup serverIngress
8854Virustotal ServerHosts the Virustotal push server.Ingress
8855Audit ForwarderAudit forwarder health probe.Ingress
8900ScalerOutbound connection to burrow from scaler.Egress
8900Burrow,Stats,Ingestors,age-off,BackupDefault Prometheus statistic collectionIngress
8900-8950Retrohunt WorkersExtra ports for statistic collectionIngress
9000MinioFor connection to Minio S3 StorageEgress
9091Prometheus Push GatewayConnection to Prometheus pushgateway for stat collectionEgress
9090-9093KafkaAllow connections out to KafkaEgress
9200-9700OpensearchAllow connections out to OpensearchEgress
9998Tika Side cartAllow connection between the Tika plugin and it's sidecarBoth

Licensing

See the license.md file for Azul licensing details.

This repository includes additional pre-packaged charts which are included for simplicity, and are distributed under their respective licenses:

  • kube-prometheus-stack: Apache 2.0
  • loki: AGPL 3.0
  • prometheus-blackbox-exporter: Apache 2.0
  • prometheus-pushgateway: Apache 2.0