Infrastructure & Resource Requirements for Sigrid Components
This documentation covers on-premise Sigrid. It is not applicable for cloud-based Sigrid.
This document defines compute and storage resource requirements for Sigrid components only, including:
- CI/CD workloads (e.g. static analysis jobs running in your existing CI/CD system)
- Application workloads running on Kubernetes
It does not cover prerequisites such as PostgreSQL, S3-compatible object storage, or container registries.
1. Analysis (Sigrid-Multi-Analyzer)
Sigrid-Multi-Analyzer is the most resource-intensive component and runs as jobs in your existing CI/CD tool (e.g. GitLab, GitHub Actions, Azure DevOps).
Requirements:
- Memory:
- Minimum: 5 GB RAM
- Recommended: 16 GB RAM (depending on repository size)
- CPU: 2-4 vCPU
- Storage:: 5 GB (depending on repository size)
- Environment: Containerized job in your CI/CD system
Analysis workloads may exhibit memory and disk usage spikes. Avoid setting limits too close to the minimum requirements to prevent job failures.
During analysis, intermediate results are written to local disk before being uploaded to S3-compatible object storage.
2. Kubernetes (Node)
While Kubernetes itself has minimal requirements, worker nodes must be sized to support the workloads.
Recommended baseline:
- CPU: 4 vCPU
- Memory: 16 GB RAM
- Storage: 50 GB
This allows:
- Running multiple application pods
- Supporting high-memory and disk-intensive workloads such importing jobs
- Storing container images and temporary files on the node
For clusters running only Sigrid application components (API/frontend), lower disk sizes may be sufficient. Actual sizing depends on whether CI/CD workloads or other applications share the same nodes.
Node sizing must account for the largest schedulable workload (e.g. CI jobs requiring up to 16 GB RAM), not just average application usage.
Analysis jobs run in CI/CD, not in the cluster, unless CI/CD runners are deployed in the same cluster.
3. Application (Sigrid)
Resource requirements are defined per pod in the Helm configuration.
You can start with the defaults, but these can always be overridden.
- Memory request = memory limit for pods to prevent memory contention
- Changing CPU limits is not recommended, as they can have negative effects
Example:
auth-api:
image:
repository: "softwareimprovementgroup/auth-api"
replicas: 2
podDisruptionBudget:
minAvailable: 50%
resources:
limits:
memory: 2Gi
requests:
cpu: 500m
memory: 2Gi
Contact and support
Feel free to contact SIG’s support team for any questions or issues you may have after reading this documentation or when using Sigrid.