GitOps Configuration Management
Manage Qtap configuration through Git while using Qplane for visualization, search, and dashboards.
Why This Approach
GitOps benefits:
Version-controlled configuration with full audit trail
Pull request reviews for config changes
Reproducible deployments across environments
Rollback capability through git history
Infrastructure-as-code workflows (ArgoCD, Flux, etc.)
Qplane benefits:
Real-time dashboards and traffic visualization
Object storage search and retrieval
Alerting and issue detection
No infrastructure to manage for the control plane
The tradeoff: Configuration lives in git, not Qplane's UI. Changes made in Qplane won't affect your deployed agents.
How It Works
Qtap agents run with your git-managed configuration but still send telemetry to Qplane. You get GitOps workflow control with Qplane's visualization capabilities.
Step 1: Configure in Qplane
Start by setting up your configuration in Qplane's UI:
Log in to app.qpoint.io
Configure your stacks, plugins, and capture rules
Set up error detection rules
Configure PII/sensitive data monitors
Define endpoint-specific behaviors
Set up tagging for your environment
Use the UI to experiment and validate your configuration before committing to git.
Step 2: Export Your Configuration Snapshot
Once your configuration is ready:
Navigate to Settings → Snapshot
Copy the YAML configuration
The snapshot includes everything:
Services (event stores, object stores)
Stacks and plugins configuration
Tag extraction rules
Tap settings (direction, filters, endpoints)
Example snapshot:
The pulse event store with your REGISTRATION_TOKEN is what connects Qtap to Qplane. Events and metrics flow to Qplane for visualization even though configuration is managed through git.
How object storage works with Qplane:
When you configure your own S3 object store, the access_url tells Qplane how to link to your stored objects. When you investigate a connection in the Qplane UI that was captured by a rule (like detect_errors), Qplane renders a direct link to your S3 using this URL template.
For example, with access_url: http://100.75.117.58:3904/qpoint/{{DIGEST}}, clicking on a captured request in Qplane opens your object directly from your storage. Your sensitive HTTP payloads stay in your infrastructure while Qplane provides the search and navigation interface.
Step 3: Secure Your Secrets
The snapshot references secrets via environment variables - it doesn't contain the actual values:
This means the snapshot is safe to commit to git. But you need to provision the actual secret values separately using your secret management solution.
Secrets You'll Need
REGISTRATION_TOKEN
Connects Qtap to Qplane for telemetry
Settings → Environments → Manage → Copy Registration Token
S3_ACCESS_KEY
Object store authentication (if using S3)
Your S3 provider
S3_SECRET_KEY
Object store authentication (if using S3)
Your S3 provider
With External Secrets Operator
External Secrets Operator syncs secrets from your vault to Kubernetes:
With Sealed Secrets
Sealed Secrets encrypts secrets for safe git storage:
Commit sealed-qtap-secrets.yaml to git. The Sealed Secrets controller decrypts it in-cluster.
With HashiCorp Vault Agent
If using Vault Agent Injector, annotate your Qtap deployment to inject secrets:
Referencing Secrets in Helm
Once your secrets exist in the cluster, reference them in your Helm deployment:
GitOps-friendly pattern: Store the encrypted/external secret reference in git alongside your snapshot. The actual secret values live in your vault, never in git.
Step 4: Commit Snapshot to Git
Save the exported snapshot directly to your infrastructure repository:
Don't modify the snapshot. The snapshot from Qplane is your source of truth. Editing it manually defeats the purpose of using Qplane for configuration and introduces drift between what Qplane shows and what's deployed.
Deploying with Helm:
The Qtap Helm chart accepts your config file directly via --set-file:
The chart creates the necessary ConfigMap from your file automatically.
For complete Helm installation instructions, see:
Step 5: Deploy via GitOps
With ArgoCD
With Flux
Manual Helm
Configuration Drift
Important: Once you deploy via GitOps, changes made in Qplane's UI will NOT affect your running agents. Your git repository is the source of truth.
To update configuration:
Make changes in Qplane UI
Test and validate in the Qplane interface
Export a new snapshot
Replace the config in your git repository
Submit a pull request for review
Merge and let GitOps sync the changes
Avoid editing the YAML directly in git. Manual edits create drift between Qplane's view and your deployed configuration. Always make changes in Qplane first, then export.
User Permissions
To prevent accidental configuration drift from UI changes:
Navigate to Settings → Team Members
Set most users to Viewer role
Reserve Admin or Editor roles for config managers
Viewers can:
Access all dashboards and visualizations
Search and view captured objects
See alerts and issues
Viewers cannot:
Modify stacks or plugins
Change capture rules
Alter endpoint configurations
This ensures the git repository remains the authoritative source while your team still benefits from Qplane's visualization.
What You Get from Qplane
Even with GitOps-managed configuration, Qplane provides:
Traffic Dashboards
Real-time visibility into all captured traffic
Vendor Inventory
Automatic discovery of external APIs
Object Search & Retrieval
Find captured payloads and click through to your S3 storage
Issue Detection
Alerts based on your detect_errors rules
PII Monitoring
Results from qscan plugin analysis
Usage Metrics
Performance data from report_usage plugin
The pulse event store streams all this data to Qplane regardless of how the configuration was deployed.
Why Qplane for object search? When Qtap captures a request/response to your S3, Qplane indexes the metadata and provides a searchable interface. Click any captured connection to open the full payload directly from your storage via the access_url you configured. Without Qplane, you'd need to build your own search and retrieval tooling.
Environment-Specific Configuration
If you need different configurations per environment (dev, staging, prod), manage them as separate snapshots in Qplane:
Create separate Qplane environments or organizations
Configure each environment appropriately in the UI
Export a snapshot for each environment
Store each snapshot in your git repository under environment-specific paths
This keeps each environment's configuration as a complete, unmodified snapshot from Qplane rather than trying to patch or overlay configurations.
Workflow Summary
1
Qplane UI
Configure and experiment
2
Qplane Settings
Export snapshot
3
Vault
Store secrets (token, S3 keys)
4
Git
Commit snapshot + secret references
5
CI/CD
Review via pull request
6
GitOps
Deploy to clusters
7
Qplane
Monitor and visualize
What's Next
Stacks & Plugins Reference - Detailed plugin configuration
Object Storage Configuration - S3 setup for captured payloads
Alerting - Configure notifications for issues
Last updated