-
Notifications
You must be signed in to change notification settings - Fork 23
Support optional use of Billing container in Helm chart #110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
charts/deepgram-self-hosted/templates/billing/billing.statefulset.yaml
Outdated
Show resolved
Hide resolved
charts/deepgram-self-hosted/templates/license-proxy/license-proxy.deployment.yaml
Outdated
Show resolved
Hide resolved
charts/deepgram-self-hosted/templates/license-proxy/license-proxy.deployment.yaml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jkroll-deepgram I have seen u already fixed that envsubst and API KEY error , i also got one more error related to flux , i think that config expects script_path and socket_path to be present,
Error: TOML parse error at line 26, column 1
|
26 | [flux]
| ^^^^^^
missing field `script_path`
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mk2134226 that error is odd to me, script_path and socket_path are not Deepgram values or feature flags. Do those have any contextual meaning to you?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mk2134226, I got clarity that those are Deepgram Flux parameters, but we don't expect users to need to set them; we set the defaults. Let me know if this is still an ongoing issue that is being surfaced.
bd-g
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Most of my comments are nits that would be nice to clean up, but can be done in a subsequent PR since they're internal-only details and aren't breaking changes. That said, I have a couple comments that might be better to address before merging:
- Removing the
licenseProxy.upstream.useBillingoption - Double-checking that multiple
billingreplicas works as expected
Anyways, well done!
Proposed changes
Adds optional support for the Billing container, providing airgapped license management and usage tracking for Deepgram self-hosted deployments.
This implementation provides enterprise customers with a robust, HA-capable, airgapped licensing solution while maintaining full backward compatibility with existing cloud-connected deployments.
Key Features & Implementation Choices
1. Deployment Flexibility
license.deepgram.com(default, no changes)2. High Availability (HA) Support
volumeClaimTemplates(ReadWriteMany by default)billing.journal.existingPvcNamefor EFS/NFS (ReadWriteMany)3. Persistent Usage Tracking
/journal/journal) persists all usage data for billing and compliance4. Secure Secret Management
global.deepgramLicenseSecretRef: License key (env var:DEEPGRAM_LICENSE_KEY)billing.licenseFile.secretRef: License file (mounted as/license/license.dg)sedin initContainers for secure key injectionglobal.initContainer.image) withubuntu:22.04default5. Minimal Container Design
tar) for security and size optimizationsamples/airgapped.md)6. Seamless License Proxy Integration
licenseProxy.upstream.useBillingtrue: License Proxy forwards requests to Billingfalse: License Proxy useslicense.deepgram.com(default)7. Automatic Configuration Management
billing.enabledbilling-internalheadless serviceDEEPGRAM_API_KEY=airgapped-modefor API/Engine/License Proxy to satisfy internal checksbilling.enabled: false8. Resource Management
k8s.deepgram.com/node-type=billing)9. Comprehensive Documentation
samples/airgapped.mdwith step-by-step instructions07-basic-setup-aws-airgapped.values.yaml- Complete airgapped deployment values07-basic-setup-aws-airgapped.cluster-config.yaml- EKS cluster setup for airgapped deploymentsMigration Path
billing.enabled: trueand configure secretssamples/airgapped.mdTechnical Highlights
generic(license key),generic(license file as file mount)ubuntu:22.04) withsedfor runtime secret injectionTesting Completed
sedTypes of changes
What types of changes does your code introduce to the Deepgram self-hosted resources?
Put an
xin the boxes that applyChecklist
Put an
xin the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.I brought up a deployment with this Helm chart and the
07airgapped samples, served a test STT request, and confirmed that the usage was logged in the journal file.Further comments