Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 20 additions & 13 deletions egress-sample.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ replicaCount: 1
terminationGracePeriodSeconds: 3600

egress:
api_key: "server-api-key"
api_secret: "server-api-secret"
ws_url: "ws://livekit-host:<port>"
log_level: info
health_port: 8080
prometheus_port: 9090
Expand All @@ -16,26 +13,32 @@ egress:
address: <redis_host:port>
# db: 0
# username:
# password:
# use_tls: false
# Non-sensitive S3 config (bucket, region) can stay here
s3:
access_key: "access_key"
secret: "secret"
region: "us-west-2"
# endpoint:
bucket: "my-egress"
# azure:
# account_name:
# account_key:
# container_name:
# gcp:
# credentials_json:
# bucket:
# cpu_cost:
# room_composite_cpu_cost: 3
# track_composite_cpu_cost: 2
# track_cpu_cost: 1

# Sensitive values — stored in a Kubernetes Secret, not in ConfigMap
secrets:
api_key: "server-api-key"
api_secret: "server-api-secret"
ws_url: "ws://livekit-host:<port>"
redis:
password: ""
s3:
access_key: "access_key"
secret: "secret"
# azure:
# account_key: ""
# gcp:
# credentials_json: ""

# autoscaling requires resources to be defined
autoscaling:
# set to true to enable autoscaling. when set, ignores replicaCount
Expand Down Expand Up @@ -90,3 +93,7 @@ securityContext: {}
tolerations: []

affinity: {}

# Use a pre-existing secret for the full egress config (e.g. from External Secrets Operator or Vault)
# existingSecret: "my-egress-secret"

8 changes: 7 additions & 1 deletion egress/templates/configmap.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
{{- if not .Values.existingSecret }}
{{- $config := deepCopy .Values.egress }}
{{- $_ := unset $config "secrets" }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "egress.fullname" . }}
labels:
{{- include "egress.labels" . | nindent 4 }}
data:
config.yaml: |
{{ toYaml .Values.egress | indent 4 }}
{{ toYaml $config | indent 4 }}
{{- end }}
7 changes: 5 additions & 2 deletions egress/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ spec:
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if not .Values.existingSecret }}
checksum/secret: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }}
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
{{- end }}
labels:
{{- include "egress.selectorLabels" . | nindent 8 }}
spec:
Expand All @@ -34,8 +37,8 @@ spec:
env:
- name: EGRESS_CONFIG_BODY
valueFrom:
configMapKeyRef:
name: {{ include "egress.fullname" . }}
secretKeyRef:
name: {{ .Values.existingSecret | default (include "egress.fullname" .) }}
key: config.yaml
ports:
{{- if .Values.egress.health_port }}
Expand Down
15 changes: 15 additions & 0 deletions egress/templates/secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{{- if not .Values.existingSecret }}
{{- $config := deepCopy .Values.egress }}
{{- $secrets := $config.secrets | default dict }}
{{- $_ := unset $config "secrets" }}
{{- $merged := mustMergeOverwrite $config $secrets }}
apiVersion: v1
kind: Secret
metadata:
name: {{ include "egress.fullname" . }}
labels:
{{- include "egress.labels" . | nindent 4 }}
type: Opaque
data:
config.yaml: {{ toYaml $merged | b64enc }}
{{- end }}
20 changes: 20 additions & 0 deletions egress/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,21 @@ egress:
log_level: info
health_port: 8080
prometheus_port: 9090
# Sensitive values go under 'secrets' — these are stored in a Kubernetes Secret,
# never in the ConfigMap. The Secret merges these into the full config at deploy time.
secrets: {}
# api_key: ""
# api_secret: ""
# ws_url: ""
# redis:
# password: ""
# s3:
# access_key: ""
# secret: ""
# gcp:
# credentials_json: ""
# azure:
# account_key: ""

terminationGracePeriodSeconds: 3600

Expand Down Expand Up @@ -40,4 +55,9 @@ securityContext: {}

tolerations: []

# Use a pre-existing secret for the full egress config (e.g. from External Secrets Operator or Vault).
# When set, neither the chart's Secret nor ConfigMap will contain config — the deployment reads
# from this secret directly.
existingSecret: ""

affinity: {}
14 changes: 9 additions & 5 deletions examples/egress.yaml
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
replicaCount: 2

egress:
ws_url: <ws_url>
api_key: <api_key>
api_secret: <secret>
log_level: info
health_port: 8080
prometheus_port: 9090
redis:
address: <redis_host:port>
s3:
access_key: <access_key>
secret: <secret>
region: "us-west-2"
bucket: "my-egress"

# Sensitive values — stored in a Kubernetes Secret, never in ConfigMap
secrets:
api_key: <api_key>
api_secret: <secret>
ws_url: <ws_url>
s3:
access_key: <access_key>
secret: <secret>
16 changes: 12 additions & 4 deletions ingress-sample.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ replicaCount: 1
terminationGracePeriodSeconds: 10800

ingress:
api_key: "server-api-key"
api_secret: "server-api-secret"
ws_url: "ws://livekit-host:<port>"
logging:
level: info
health_port: 7888
Expand All @@ -22,7 +19,6 @@ ingress:
address: <redis_host:port>
# db: 0
# username:
# password:
# use_tls: false

cpu_cost:
Expand All @@ -33,6 +29,14 @@ ingress:
# See kubernetes serviceTypes on official documentation: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
serviceType: "LoadBalancer"

# Sensitive values — stored in a Kubernetes Secret, not in ConfigMap
secrets:
api_key: "server-api-key"
api_secret: "server-api-secret"
ws_url: "ws://livekit-host:<port>"
redis:
password: ""

# autoscaling requires resources to be defined
autoscaling:
# set to true to enable autoscaling. when set, ignores replicaCount
Expand Down Expand Up @@ -88,3 +92,7 @@ securityContext:
tolerations: []

affinity: {}

# Use a pre-existing secret for the full ingress config (e.g. from External Secrets Operator or Vault)
# existingSecret: "my-ingress-secret"

8 changes: 7 additions & 1 deletion ingress/templates/configmap.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
{{- if not .Values.existingSecret }}
{{- $config := deepCopy .Values.ingress }}
{{- $_ := unset $config "secrets" }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "ingress.fullname" . }}
labels:
{{- include "ingress.labels" . | nindent 4 }}
data:
config.yaml: |
{{ toYaml .Values.ingress | indent 4 }}
{{ toYaml $config | indent 4 }}
{{- end }}
7 changes: 5 additions & 2 deletions ingress/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ spec:
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if not .Values.existingSecret }}
checksum/secret: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }}
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
{{- end }}
labels:
{{- include "ingress.selectorLabels" . | nindent 8 }}
spec:
Expand All @@ -38,8 +41,8 @@ spec:
env:
- name: INGRESS_CONFIG_BODY
valueFrom:
configMapKeyRef:
name: {{ include "ingress.fullname" . }}
secretKeyRef:
name: {{ .Values.existingSecret | default (include "ingress.fullname" .) }}
key: config.yaml
ports:
{{- if .Values.ingress.health_port }}
Expand Down
15 changes: 15 additions & 0 deletions ingress/templates/secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{{- if not .Values.existingSecret }}
{{- $config := deepCopy .Values.ingress }}
{{- $secrets := $config.secrets | default dict }}
{{- $_ := unset $config "secrets" }}
{{- $merged := mustMergeOverwrite $config $secrets }}
apiVersion: v1
kind: Secret
metadata:
name: {{ include "ingress.fullname" . }}
labels:
{{- include "ingress.labels" . | nindent 4 }}
type: Opaque
data:
config.yaml: {{ toYaml $merged | b64enc }}
{{- end }}
14 changes: 14 additions & 0 deletions ingress/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,15 @@ ingress:
whip_cpu_cost: 2
whip_bypass_transcoding_cpu_cost: 0.1

# Sensitive values go under 'secrets' — these are stored in a Kubernetes Secret,
# never in the ConfigMap. The Secret merges these into the full config at deploy time.
secrets: {}
# api_key: ""
# api_secret: ""
# ws_url: ""
# redis:
# password: ""

loadBalancer:
servicePort: 7888
annotations: {}
Expand Down Expand Up @@ -60,3 +69,8 @@ securityContext: {}
tolerations: []

affinity: {}

# Use a pre-existing secret for the full ingress config (e.g. from External Secrets Operator or Vault).
# When set, neither the chart's Secret nor ConfigMap will contain config — the deployment reads
# from this secret directly.
existingSecret: ""
2 changes: 1 addition & 1 deletion livekit-server/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ livekit:

# Set this option to true if you want to store your API keys in a secret instead of the config file
storeKeysInSecret:
enabled: false
enabled: true
# Use a pre existing secret, useful to combine with external secret managers
# as GCP External Secrets or Hashicorp Vault
existingSecret: ""
Expand Down
Loading