Skip to content

Commit cb6c2c0

Browse files
author
Xenon Frey
committed
regenerated README.md using helm-docs
1 parent 0336751 commit cb6c2c0

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

charts/deepgram-self-hosted/README.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,60 @@ To configure a specific storage option, see the `engine.modelManager.volumes` [c
9292

9393
For detailed instructions on setting up and configuring each storage option, refer to the [Deepgram self-hosted guides](https://developers.deepgram.com/docs/kubernetes) and the respective cloud provider's documentation.
9494
95+
### Service Configuration
96+
97+
The Deepgram Helm chart provides flexible service configuration options for exposing the API, Engine, and License Proxy services. By default, all services use `ClusterIP` type, which provides internal cluster access only.
98+
99+
#### Service Types
100+
101+
- **ClusterIP** (default): Exposes the service on a cluster-internal IP. This is the default and recommended option for most deployments.
102+
- **NodePort**: Exposes the service on each Node's IP at a static port. Useful for development or when you need direct node access.
103+
- **LoadBalancer**: Exposes the service externally using a cloud provider's load balancer. Recommended for production deployments requiring external access.
104+
105+
#### Configuration Examples
106+
107+
**API Service with LoadBalancer (with security restrictions):**
108+
```yaml
109+
api:
110+
service:
111+
type: LoadBalancer
112+
annotations:
113+
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
114+
service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
115+
loadBalancerSourceRanges:
116+
- "10.0.0.0/8" # Allow access from private networks
117+
- "192.168.1.0/24" # Allow access from specific subnet
118+
externalTrafficPolicy: "Local" # Preserve source IP and reduce hops
119+
```
120+
121+
**Engine Metrics Service with NodePort:**
122+
```yaml
123+
engine:
124+
service:
125+
type: NodePort
126+
```
127+
128+
**License Proxy Service with LoadBalancer (restricted access):**
129+
```yaml
130+
licenseProxy:
131+
service:
132+
type: LoadBalancer
133+
annotations:
134+
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
135+
loadBalancerSourceRanges:
136+
- "10.0.0.0/8" # Only allow internal network access
137+
externalTrafficPolicy: "Cluster" # Allow traffic from any node
138+
```
139+
140+
#### LoadBalancer Security Options
141+
142+
When using `LoadBalancer` service type, you can configure additional security and performance options:
143+
144+
- **`loadBalancerSourceRanges`**: Restrict access to specific IP CIDR ranges. This provides network-level security by only allowing traffic from specified IP ranges.
145+
- **`externalTrafficPolicy`**: Controls how external traffic is routed:
146+
- `Cluster` (default): Traffic can be routed to any node in the cluster, then forwarded to the target pod
147+
- `Local`: Traffic is only routed to nodes that have the target pod running, preserving source IP addresses
148+
95149
### Autoscaling
96150
97151
Autoscaling your cluster's capacity to meet incoming traffic demands involves both node autoscaling and pod autoscaling. Node autoscaling for supported cloud providers is setup by default when using this Helm chart and creating your cluster with the [Deepgram self-hosted guides](https://developers.deepgram.com/docs/kubernetes). Pod autoscaling can be enabled via the `scaling.auto.enabled` configuration option in this chart.

0 commit comments

Comments
 (0)