Initial commit

This commit is contained in:
2026-10-24 16:21:16 -04:00
commit b894fa148a
21 changed files with 719 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ owncast_name | to_json }}
namespace: {{ owncast_namespace | to_json }}
labels:
app: {{ owncast_name | to_json }}
spec:
replicas: 1
# The SQLite database and RWO volume must have only one writer.
strategy:
type: Recreate
rollingUpdate: null
selector:
matchLabels:
app: {{ owncast_name | to_json }}
template:
metadata:
labels:
app: {{ owncast_name | to_json }}
spec:
automountServiceAccountToken: false
imagePullSecrets: {{ owncast_image_pull_secrets | to_json }}
nodeSelector: {{ owncast_node_selector | to_json }}
tolerations: {{ owncast_tolerations | to_json }}
containers:
- name: owncast
image: {{ owncast_image | to_json }}
imagePullPolicy: {{ owncast_image_pull_policy | to_json }}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: [ALL]
seccompProfile:
type: RuntimeDefault
resources: {{ owncast_resources | to_json }}
volumeMounts:
- name: data
mountPath: /app/data
ports:
- name: http
containerPort: 8080
- name: rtmp
containerPort: 1935
volumes:
- name: data
persistentVolumeClaim:
claimName: {{ (owncast_existing_claim if owncast_existing_claim | length > 0 else owncast_pvc_name) | to_json }}
+27
View File
@@ -0,0 +1,27 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ owncast_name | to_json }}
namespace: {{ owncast_namespace | to_json }}
annotations: {{ (owncast_ingress_annotations | combine({'cert-manager.io/cluster-issuer': owncast_cluster_issuer} if owncast_cluster_issuer | length > 0 else {})) | to_json }}
spec:
{% if owncast_ingress_class | length > 0 %}
ingressClassName: {{ owncast_ingress_class | to_json }}
{% endif %}
rules:
- host: {{ owncast_hostname | to_json }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ owncast_name | to_json }}
port:
number: 8080
{% if owncast_tls_enabled | bool %}
tls:
- hosts:
- {{ owncast_hostname | to_json }}
secretName: {{ owncast_tls_secret_name | to_json }}
{% endif %}
+15
View File
@@ -0,0 +1,15 @@
apiVersion: tor.k8s.torproject.org/v1alpha2
kind: OnionService
metadata:
name: {{ owncast_onion_name | to_json }}
namespace: {{ owncast_namespace | to_json }}
spec:
version: 3
rules:
- port:
number: 80
backend:
service:
name: {{ owncast_name | to_json }}
port:
number: 8080
+14
View File
@@ -0,0 +1,14 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ owncast_pvc_name | to_json }}
namespace: {{ owncast_namespace | to_json }}
spec:
accessModes:
- ReadWriteOnce
{% if owncast_storage_class | length > 0 %}
storageClassName: {{ owncast_storage_class | to_json }}
{% endif %}
resources:
requests:
storage: {{ owncast_storage_size | to_json }}
+25
View File
@@ -0,0 +1,25 @@
apiVersion: v1
kind: Service
metadata:
name: {{ owncast_name | to_json }}
namespace: {{ owncast_namespace | to_json }}
annotations: {{ owncast_service_annotations | to_json }}
spec:
selector:
app: {{ owncast_name | to_json }}
type: {{ owncast_service_type | to_json }}
{% if owncast_service_type in ['LoadBalancer', 'NodePort'] %}
externalTrafficPolicy: {{ owncast_external_traffic_policy | to_json }}
{% endif %}
{% if owncast_service_type == 'LoadBalancer' and owncast_load_balancer_source_ranges | length > 0 %}
loadBalancerSourceRanges: {{ owncast_load_balancer_source_ranges | to_json }}
{% endif %}
ports:
- name: rtmp
port: 1935
targetPort: rtmp
protocol: TCP
- name: http
port: 8080
targetPort: http
protocol: TCP