Skip to Content
Internal Scanning AgentDeploySelf-Managed Kubernetes

Self-Managed Kubernetes

Deploy the Internal Scanner to any Kubernetes cluster using our Helm chart. This option is for organizations running their own Kubernetes infrastructure, whether on-premises or on cloud providers without a dedicated Terraform module.

Helm Resources: Helm Charts  | GitHub 

When to Use This Option

  • On-premises Kubernetes clusters
  • Self-managed Kubernetes on any cloud provider
  • Managed Kubernetes services not yet supported by our Terraform modules (e.g., DigitalOcean, Oracle Cloud)
  • Existing clusters where you prefer Helm over Terraform

Prerequisites

Kubernetes Cluster

RequirementMinimumRecommended
Kubernetes Version1.28+Latest stable
Nodes12+ (for HA)
CPU2 vCPU4+ vCPU
Memory8 Gi16 Gi
Storage8 Gi16 Gi

Network Requirements

Your cluster needs:

  • Outbound HTTPS (443) to *.detectify.com for API communication and container images
  • Internal load balancer capability (or ingress controller)
  • Network access from scanner pods to your target applications

Tools

ToolVersionPurpose
kubectl>= 1.28Cluster management
Helm>= 3.0Chart deployment

Detectify Credentials

From Internal Scanning Agents in the Detectify Platform:

  • License Key
  • Connector API Key
  • Registry credentials (username and password)

Deployment Overview

The Helm chart deploys the following components:

┌─────────────────────────────────────────────────────────────────────────────┐ │ SCANNER COMPONENTS │ ├─────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │ scan-scheduler │ │ scan-manager │ │chrome-controller│ │ │ │ │ │ │ │ │ │ │ │ Receives scan │───►│ Orchestrates │───►│ Manages browser │ │ │ │ jobs from │ │ scan execution │ │ instances for │ │ │ │ Detectify │ │ │ │ DAST testing │ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────┐ │ │ │ Redis │ │ │ │ │ │ │ │ Job queue and │ │ │ │ state storage │ │ │ └─────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────┘

Getting Started

Step 1: Get Your Credentials

Before deploying, you need credentials from the Detectify Platform. Navigate to Internal Scanning Agents in your Detectify account to obtain:

  • License Key
  • Connector API Key
  • Registry credentials (username and password)

If you don’t have access to Internal Scanning, contact your Detectify account team or reach out to us .

Step 2: Prepare Your Cluster

Ensure your cluster meets the prerequisites above. Key items to verify:

# Check Kubernetes version kubectl version # Verify cluster connectivity kubectl get nodes # Check available resources kubectl top nodes

Step 3: Configure Networking

The scanner needs:

  1. Ingress or Load Balancer - To expose the scanner endpoint (internal only)
  2. TLS Certificate - For HTTPS communication
  3. DNS Record - Pointing to your scanner endpoint

Your specific configuration will depend on your infrastructure:

EnvironmentIngress OptionTLS Option
On-premisesNGINX Ingress, Traefikcert-manager, manual certs
Cloud (generic)Cloud load balancerCloud-managed certs, cert-manager

Step 4: Deploy with Helm

Add the Detectify Helm repository and deploy:

# Add the Detectify Helm repository helm repo add detectify https://detectify.github.io/helm-charts helm repo update # Create namespace kubectl create namespace scanner # Create secrets for credentials kubectl create secret generic detectify-credentials \ --namespace scanner \ --from-literal=license-key='your-license-key' \ --from-literal=connector-api-key='your-connector-api-key' kubectl create secret docker-registry detectify-registry \ --namespace scanner \ --docker-server=registry.detectify.com \ --docker-username='your-registry-username' \ --docker-password='your-registry-password' # Install the chart helm install internal-scanner detectify/internal-scanning-agent \ --namespace scanner \ --set ingress.enabled=true \ --set ingress.host=scanner.internal.example.com

For all available configuration options, see the chart documentation  or the values.yaml on GitHub .

Step 5: Verify Deployment

# Check pods are running kubectl get pods -n scanner # Check scanner logs kubectl logs -n scanner -l app=scan-scheduler # Test the endpoint (from within your network) curl https://your-scanner-url/health

Configuration

The Helm chart supports configuration for:

  • Resource requests and limits
  • Replica counts for each component
  • Autoscaling settings
  • Custom ingress annotations
  • TLS configuration

See the chart documentation  for all available options, or view the default values.yaml  on GitHub.

Compared to Terraform Modules

AspectTerraform ModuleHelm Chart
InfrastructureCreates cluster + deploys scannerDeploys to existing cluster
ComplexityLower (all-in-one)Higher (requires existing K8s)
FlexibilityCloud-specificAny Kubernetes cluster
DNS/TLSAutomated (Route53, ACM)Manual configuration
Best forNew deployments on AWS/Azure/GCPExisting clusters, on-premises

Support

For assistance with Helm chart deployment:

Next Steps

After deployment:

Last updated on