# GX10 Piper TTS — telephony /tts endpoint on the GX10 RKE2 cluster. # Applied DIRECTLY via the GX10's own kubectl (KUBECONFIG=/etc/rancher/rke2/rke2.yaml); # the GX10 cluster is NOT yet under the old-cluster ArgoCD. CPU-only (no GPU request) # so it co-resides with the GPU-holding Ollama pod without contending for the GB10. # Image is imported into RKE2 containerd (imagePullPolicy: Never). # Telephony reaches it at http://10.0.56.14:30850 (NodePort, MGMT VLAN 56). apiVersion: v1 kind: Namespace metadata: name: tts --- apiVersion: apps/v1 kind: Deployment metadata: name: gx10-tts namespace: tts labels: app: gx10-tts spec: replicas: 1 selector: matchLabels: app: gx10-tts template: metadata: labels: app: gx10-tts spec: containers: - name: tts image: localhost/fc-gx10-tts:v20260614 imagePullPolicy: Never ports: - containerPort: 8500 name: http env: - name: TTS_PORT value: "8500" - name: PIPER_VOICE value: "en_US-amy-medium" - name: TARGET_RATE value: "16000" readinessProbe: httpGet: path: /health port: 8500 initialDelaySeconds: 3 periodSeconds: 5 timeoutSeconds: 3 livenessProbe: httpGet: path: /health port: 8500 initialDelaySeconds: 10 periodSeconds: 20 timeoutSeconds: 5 resources: requests: cpu: "500m" memory: "512Mi" limits: cpu: "4" memory: "2Gi" --- apiVersion: v1 kind: Service metadata: name: gx10-tts namespace: tts labels: app: gx10-tts spec: type: NodePort selector: app: gx10-tts ports: - name: http port: 8500 targetPort: 8500 nodePort: 30850 protocol: TCP