añadido Argos Core

This commit is contained in:
2025-08-20 01:16:53 +02:00
parent 550d5fbe52
commit d973225012
17 changed files with 550 additions and 151 deletions

View File

@@ -5,29 +5,33 @@ metadata:
namespace: argos-core
spec:
replicas: 1
selector: { matchLabels: { app: mediamtx } }
selector:
matchLabels: { app: mediamtx }
template:
metadata: { labels: { app: mediamtx } }
metadata:
labels: { app: mediamtx }
spec:
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
containers:
- name: mediamtx
image: bluenviron/mediamtx:1.14.0
command: ["/bin/sh","-c"]
args:
- |
set -e
ulimit -n 1048576
exec mediamtx /config/mediamtx.yml
# Nada de /bin/sh: solo pasa la ruta del YAML como argumento posicional
args: ["/config/mediamtx.yml"]
volumeMounts:
- name: cfg
mountPath: /config
ports:
- containerPort: 8554 # RTSP
- containerPort: 8189 # SRT
- containerPort: 8889 # WHIP
- containerPort: 8880 # HTTP/API
- name: rtsp
containerPort: 8554
protocol: TCP
- name: http
containerPort: 8880
protocol: TCP
- name: whip
containerPort: 8889
protocol: TCP
- name: srt
containerPort: 8189
protocol: UDP
volumes:
- name: cfg
configMap:

View File

@@ -4,23 +4,69 @@ metadata:
name: minio
namespace: argos-core
spec:
strategy:
type: Recreate
replicas: 1
selector: { matchLabels: { app: minio } }
selector:
matchLabels:
app: minio
template:
metadata: { labels: { app: minio } }
metadata:
labels:
app: minio
app.kubernetes.io/part-of: argos
app.kubernetes.io/managed-by: kustomize
spec:
# ayuda a que el FS sea accesible por el grupo
securityContext:
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
# arregla permisos heredados de root en el PVC
initContainers:
- name: fix-perms
image: alpine:3.20
command: ["/bin/sh","-c"]
args:
- |
set -ex
apk add --no-cache acl
chown -R 1000:1000 /data || true
chmod -R u+rwX,g+rwX /data || true
find /data -type d -exec chmod g+s {} \; || true
setfacl -R -m g:1000:rwx /data || true
setfacl -R -d -m g:1000:rwx /data || true
securityContext:
runAsUser: 0
volumeMounts:
- name: data
mountPath: /data
containers:
- name: minio
image: quay.io/minio/minio:latest
securityContext:
runAsUser: 1000
runAsGroup: 1000
args: ["server", "/data", "--console-address", ":9001"]
envFrom:
- secretRef: { name: minio-creds }
ports:
- containerPort: 9000
- containerPort: 9001
volumeMounts:
- name: data
mountPath: /data
- { containerPort: 9000, name: api }
- { containerPort: 9001, name: console }
readinessProbe:
httpGet: { path: /minio/health/ready, port: 9000 }
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet: { path: /minio/health/live, port: 9000 }
initialDelaySeconds: 10
periodSeconds: 20
resources:
requests:
cpu: 50m
memory: 256Mi
limits:
cpu: "1"
memory: 2Gi
volumes:
- name: data
persistentVolumeClaim:

View File

@@ -5,22 +5,27 @@ metadata:
namespace: argos-core
spec:
replicas: 1
selector: { matchLabels: { app: mosquitto } }
selector:
matchLabels: { app: mosquitto }
template:
metadata: { labels: { app: mosquitto } }
metadata:
labels: { app: mosquitto }
spec:
containers:
- name: mosquitto
image: harbor.c2et.net/library/eclipse-mosquitto:latest
image: eclipse-mosquitto:2
ports:
- containerPort: 1883
volumeMounts:
- name: cfg
mountPath: /mosquitto/config
- name: data
mountPath: /mosquitto/data
volumes:
- name: cfg
configMap:
name: mosquitto-conf
name: mosquitto-config
items:
- key: mosquitto.conf
path: mosquitto.conf
- { key: mosquitto.conf, path: mosquitto.conf }
- name: data
emptyDir: {} # o tu PVC si lo tienes

View File

@@ -5,30 +5,30 @@ metadata:
namespace: argos-core
spec:
replicas: 1
selector: { matchLabels: { app: argos-panel } }
selector:
matchLabels: { app: argos-panel }
template:
metadata: { labels: { app: argos-panel } }
metadata:
labels: { app: argos-panel }
spec:
containers:
- name: panel
image: harbor.c2et.net/library/python:3.13.7-slim-bookworm
image: python:3.13.7-slim-bookworm
command: ["/bin/sh","-c"]
args:
- |
set -e
pip install fastapi uvicorn minio
uvicorn app:app --host 0.0.0.0 --port 8000
exec uvicorn app:app --host 0.0.0.0 --port 8000 --app-dir /app
envFrom:
- secretRef: { name: argos-panel-secret }
volumeMounts:
- { name: app, mountPath: /app }
- { name: data, mountPath: /data }
- { name: app, mountPath: /app }
ports:
- containerPort: 8000
- { containerPort: 8000, name: http }
volumes:
- name: app
configMap:
name: argos-panel-config
items: [ { key: app.py, path: app.py } ]
- name: data
emptyDir: {}
items:
- { key: app.py, path: app.py }