added repo
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
apiVersion: eksctl.io/v1alpha5
|
||||
kind: ClusterConfig
|
||||
|
||||
metadata:
|
||||
name: deepgram-self-hosted-cluster
|
||||
region: us-west-2
|
||||
version: "1.30"
|
||||
|
||||
iam:
|
||||
withOIDC: true
|
||||
serviceAccounts:
|
||||
- metadata:
|
||||
name: cluster-autoscaler-sa
|
||||
namespace: dg-self-hosted
|
||||
wellKnownPolicies:
|
||||
autoScaler: true
|
||||
roleName: cluster-autoscaler-role
|
||||
roleOnly: true
|
||||
- metadata:
|
||||
name: efs-csi-controller-sa
|
||||
namespace: kube-system
|
||||
wellKnownPolicies:
|
||||
efsCSIController: true
|
||||
roleName: efs-csi-driver-role
|
||||
roleOnly: true
|
||||
|
||||
managedNodeGroups:
|
||||
- name: control-plane-node-group
|
||||
minSize: 1
|
||||
desiredCapacity: 1
|
||||
maxSize: 3
|
||||
instanceType: t3.large
|
||||
amiFamily: Ubuntu2204
|
||||
iam:
|
||||
withAddonPolicies:
|
||||
autoScaler: true
|
||||
propagateASGTags: true
|
||||
- name: engine-node-group
|
||||
minSize: 0
|
||||
desiredCapacity: 0
|
||||
maxSize: 8
|
||||
instanceType: g6.2xlarge
|
||||
amiFamily: Ubuntu2204
|
||||
labels:
|
||||
k8s.deepgram.com/node-type: engine
|
||||
k8s.amazonaws.com/accelerator: nvidia-l4
|
||||
iam:
|
||||
withAddonPolicies:
|
||||
efs: true
|
||||
autoScaler: true
|
||||
taints:
|
||||
- key: efs.csi.aws.com/agent-not-ready
|
||||
value: "true"
|
||||
effect: NoExecute
|
||||
propagateASGTags: true
|
||||
- name: api-node-group
|
||||
minSize: 0
|
||||
desiredCapacity: 0
|
||||
maxSize: 2
|
||||
instanceType: c5n.xlarge
|
||||
amiFamily: Ubuntu2204
|
||||
labels:
|
||||
k8s.deepgram.com/node-type: api
|
||||
iam:
|
||||
withAddonPolicies:
|
||||
autoScaler: true
|
||||
propagateASGTags: true
|
||||
- name: license-proxy-node-group
|
||||
minSize: 0
|
||||
desiredCapacity: 0
|
||||
maxSize: 2
|
||||
instanceType: t3.large
|
||||
amiFamily: Ubuntu2204
|
||||
labels:
|
||||
k8s.deepgram.com/node-type: license-proxy
|
||||
iam:
|
||||
withAddonPolicies:
|
||||
autoScaler: true
|
||||
propagateASGTags: true
|
||||
@@ -0,0 +1,136 @@
|
||||
# See the Chart [README](https://github.com/deepgram/self-hosted-resources/blob/main/charts/deepgram-self-hosted#values)
|
||||
# for documentation on all available options.
|
||||
|
||||
global:
|
||||
# pullSecretRef should refer to a K8s secret that
|
||||
# must be created prior to installing this Chart.
|
||||
# Consult the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/) for best practices on configuring Secrets for use in your cluster.
|
||||
#
|
||||
# You can create a secret for your image pull credentials
|
||||
# with the following commands:
|
||||
# ```bash
|
||||
# docker login quay.io
|
||||
# kubectl create secret generic dg-regcred \
|
||||
# --from-file=.dockerconfigjson=$HOME/.docker/config.json \
|
||||
# --type=kubernetes.io/dockerconfigjson
|
||||
# ```
|
||||
pullSecretRef: "dg-regcred"
|
||||
|
||||
# deepgramSecretRef should refer to a K8s secret that
|
||||
# must be created prior to installing this Chart.
|
||||
# Consult the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/) for best practices on configuring Secrets for use in your cluster.
|
||||
#
|
||||
# You can create a secret for your Deepgram self-hosted API key
|
||||
# with the following command:
|
||||
# ```bash
|
||||
# kubectl create secret generic dg-self-hosted-api-key --from-literal=DEEPGRAM_API_KEY='<id>'
|
||||
# ```
|
||||
deepgramSecretRef: "dg-self-hosted-api-key"
|
||||
|
||||
scaling:
|
||||
replicas:
|
||||
api: 1
|
||||
engine: 1
|
||||
auto:
|
||||
# Can toggle to true to enable autoscaling. Make sure to set a value for one of the available metrics
|
||||
enabled: false
|
||||
engine:
|
||||
metrics:
|
||||
speechToText:
|
||||
batch:
|
||||
requestsPerPod: # Discuss a reasonable value with your Deepgram Account Representative
|
||||
streaming:
|
||||
requestsPerPod: # Discuss a reasonable value with your Deepgram Account Representative
|
||||
textToSpeech:
|
||||
batch:
|
||||
requestsPerPod: # Discuss a reasonable value with your Deepgram Account Representative
|
||||
# Discuss a reasoanble value with your Deepgram Account Representative
|
||||
# Must also set engine.concurrencyLimit.activeRequests if using request ratio for autoscaling
|
||||
requestCapacityRatio:
|
||||
api:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: k8s.deepgram.com/node-type
|
||||
operator: In
|
||||
values:
|
||||
- api
|
||||
resources:
|
||||
requests:
|
||||
memory: "4Gi"
|
||||
cpu: "2000m"
|
||||
limits:
|
||||
memory: "8Gi"
|
||||
cpu: "4000m"
|
||||
|
||||
engine:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: k8s.deepgram.com/node-type
|
||||
operator: In
|
||||
values:
|
||||
- engine
|
||||
resources:
|
||||
requests:
|
||||
memory: "28Gi"
|
||||
cpu: "6000m"
|
||||
gpu: 1
|
||||
limits:
|
||||
memory: "40Gi"
|
||||
cpu: "8000m"
|
||||
gpu: 1
|
||||
# Discuss a reasonable value with your Deepgram Account Representative
|
||||
# If not using autoscaling, can be left empty, but must be set if using
|
||||
# autoscaling with scaling.auto.engine.metrics.requestCapacityRatio
|
||||
concurrencyLimit:
|
||||
activeRequests:
|
||||
|
||||
modelManager:
|
||||
volumes:
|
||||
aws:
|
||||
efs:
|
||||
enabled: true
|
||||
fileSystemId: fs-xxxxxxxxxxxxxxxx # Replace with your EFS ID
|
||||
models:
|
||||
links:
|
||||
- https://link-to-model-1.dg # Replace these links with those provided to you
|
||||
- https://link-to-model-2.dg # by your Deepgram Account Representative.
|
||||
- https://link-to-model-3.dg
|
||||
- ...
|
||||
|
||||
licenseProxy:
|
||||
enabled: true
|
||||
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: k8s.deepgram.com/node-type
|
||||
operator: In
|
||||
values:
|
||||
- license-proxy
|
||||
resources:
|
||||
requests:
|
||||
memory: "6Gi"
|
||||
cpu: "1500m"
|
||||
limits:
|
||||
memory: "8Gi"
|
||||
cpu: "2000m"
|
||||
|
||||
cluster-autoscaler:
|
||||
enabled: true
|
||||
rbac:
|
||||
serviceAccount:
|
||||
name: "cluster-autoscaler-sa"
|
||||
annotations:
|
||||
# Replace with the AWS Role ARN configured for the Cluster Autoscaler
|
||||
eks.amazonaws.com/role-arn: "arn:aws:iam::000000000000:role/MyRoleName"
|
||||
autoDiscovery:
|
||||
clusterName: "deepgram-self-hosted-cluster"
|
||||
awsRegion: "us-west-2"
|
||||
@@ -0,0 +1,123 @@
|
||||
# See the Chart [README](https://github.com/deepgram/self-hosted-resources/blob/main/charts/deepgram-self-hosted#values)
|
||||
# for documentation on all available options.
|
||||
|
||||
global:
|
||||
# pullSecretRef should refer to a K8s secret that
|
||||
# must be created prior to installing this Chart.
|
||||
# Consult the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/) for best practices on configuring Secrets for use in your cluster.
|
||||
#
|
||||
# You can create a secret for your image pull credentials
|
||||
# with the following commands:
|
||||
# ```bash
|
||||
# docker login quay.io
|
||||
# kubectl create secret generic dg-regcred \
|
||||
# --from-file=.dockerconfigjson=$HOME/.docker/config.json \
|
||||
# --type=kubernetes.io/dockerconfigjson
|
||||
# ```
|
||||
pullSecretRef: "dg-regcred"
|
||||
|
||||
# deepgramSecretRef should refer to a K8s secret that
|
||||
# must be created prior to installing this Chart.
|
||||
# Consult the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/) for best practices on configuring Secrets for use in your cluster.
|
||||
#
|
||||
# You can create a secret for your Deepgram self-hosted API key
|
||||
# with the following command:
|
||||
# ```bash
|
||||
# kubectl create secret generic dg-self-hosted-api-key --from-literal=DEEPGRAM_API_KEY='<id>'
|
||||
# ```
|
||||
deepgramSecretRef: "dg-self-hosted-api-key"
|
||||
|
||||
scaling:
|
||||
replicas:
|
||||
api: 1
|
||||
engine: 1
|
||||
auto:
|
||||
# Can toggle to true to enable autoscaling. Make sure to set a value for one of the available metrics
|
||||
enabled: false
|
||||
engine:
|
||||
metrics:
|
||||
speechToText:
|
||||
batch:
|
||||
requestsPerPod: # Discuss a reasonable value with your Deepgram Account Representative
|
||||
streaming:
|
||||
requestsPerPod: # Discuss a reasonable value with your Deepgram Account Representative
|
||||
textToSpeech:
|
||||
batch:
|
||||
requestsPerPod: # Discuss a reasonable value with your Deepgram Account Representative
|
||||
# Discuss a reasoanble value with your Deepgram Account Representative
|
||||
# Must also set engine.concurrencyLimit.activeRequests if using request ratio for autoscaling
|
||||
requestCapacityRatio:
|
||||
|
||||
api:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: k8s.deepgram.com/node-type
|
||||
operator: In
|
||||
values:
|
||||
- api
|
||||
resources:
|
||||
requests:
|
||||
memory: "4Gi"
|
||||
cpu: "2000m"
|
||||
limits:
|
||||
memory: "12Gi"
|
||||
cpu: "4000m"
|
||||
|
||||
engine:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: k8s.deepgram.com/node-type
|
||||
operator: In
|
||||
values:
|
||||
- engine
|
||||
resources:
|
||||
requests:
|
||||
memory: "24Gi"
|
||||
cpu: "5000m"
|
||||
gpu: 1
|
||||
limits:
|
||||
memory: "40Gi"
|
||||
cpu: "8000m"
|
||||
gpu: 1
|
||||
# Discuss a reasonable value with your Deepgram Account Representative
|
||||
# If not using autoscaling, can be left empty, but must be set if using
|
||||
# autoscaling with scaling.auto.engine.metrics.requestCapacityRatio
|
||||
concurrencyLimit:
|
||||
activeRequests:
|
||||
modelManager:
|
||||
volumes:
|
||||
gcp:
|
||||
gpd:
|
||||
enabled: true
|
||||
# Replace with your Google disk handle
|
||||
volumeHandle: "projects/<your-project-id>/zones/<your-zone>/disks/<your-disk>"
|
||||
|
||||
licenseProxy:
|
||||
enabled: true
|
||||
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: k8s.deepgram.com/node-type
|
||||
operator: In
|
||||
values:
|
||||
- license-proxy
|
||||
resources:
|
||||
requests:
|
||||
memory: "4Gi"
|
||||
cpu: "1000m"
|
||||
limits:
|
||||
memory: "8Gi"
|
||||
cpu: "2000m"
|
||||
|
||||
gpu-operator:
|
||||
# GKE will manage the driver and toolkit installation for us by default.
|
||||
enabled: false
|
||||
@@ -0,0 +1,50 @@
|
||||
# See the Chart [README](https://github.com/deepgram/self-hosted-resources/blob/main/charts/deepgram-self-hosted#values)
|
||||
# for documentation on all available options.
|
||||
|
||||
global:
|
||||
# pullSecretRef should refer to a K8s secret that
|
||||
# must be created prior to installing this Chart.
|
||||
# Consult the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/) for best practices on configuring Secrets for use in your cluster.
|
||||
#
|
||||
# You can create a secret for your image pull credentials
|
||||
# with the following commands:
|
||||
# ```bash
|
||||
# docker login quay.io
|
||||
# kubectl create secret generic dg-regcred \
|
||||
# --from-file=.dockerconfigjson=$HOME/.docker/config.json \
|
||||
# --type=kubernetes.io/dockerconfigjson
|
||||
# ```
|
||||
pullSecretRef: "dg-regcred"
|
||||
|
||||
# deepgramSecretRef should refer to a K8s secret that
|
||||
# must be created prior to installing this Chart.
|
||||
# Consult the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/) for best practices on configuring Secrets for use in your cluster.
|
||||
#
|
||||
# You can create a secret for your Deepgram self-hosted API key
|
||||
# with the following command:
|
||||
# ```bash
|
||||
# kubectl create secret generic dg-self-hosted-api-key --from-literal=DEEPGRAM_API_KEY='<id>'
|
||||
# ```
|
||||
deepgramSecretRef: "dg-self-hosted-api-key"
|
||||
|
||||
scaling:
|
||||
replicas:
|
||||
api: 1
|
||||
engine: 1
|
||||
auto:
|
||||
# Most on-premises clusters will have a static number of servers, where autoscaling may not be desirable.
|
||||
enabled: false
|
||||
|
||||
engine:
|
||||
modelManager:
|
||||
volumes:
|
||||
customVolumeClaim:
|
||||
enabled: true
|
||||
name: deepgram-models-pvc # Replace with the name of a PersistentVolumeClaim that maps to the PersistentVolume you have created
|
||||
modelsDirectory: "/"
|
||||
|
||||
licenseProxy:
|
||||
enabled: true
|
||||
|
||||
gpu-operator:
|
||||
enabled: true
|
||||
@@ -0,0 +1,9 @@
|
||||
# Samples
|
||||
|
||||
This directory contains examples of how to use the Deepgram Helm chart in various configurations and with various cloud providers. The samples are not meant to be an exhaustive demonstration of all available options; please see the chart [README](../README.md) and [values.yaml](../values.yaml) for more information.
|
||||
|
||||
## AWS EKS Samples
|
||||
See the [Deepgram AWS EKS guide](https://developers.deepgram.com/docs/aws-k8s) for detailed instructions on how to deploy Deepgram services in a managed Kubernetes cluster in AWS.
|
||||
|
||||
## GCP GKE Samples
|
||||
See the [Deepgram GCP GKE guide](https://developers.deepgram.com/docs/gcp-k8s) for detailed instructions on how to deploy Deepgram services in a managed Kubernetes cluster in GCP.
|
||||
Reference in New Issue
Block a user