From 0027a8fb123721e15fcc7eb7252b8b0f3b54456c Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 16 May 2026 15:23:38 +0300 Subject: Update player f3s deployment notes --- prompts/skills/f3s/references/player.md | 38 ++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/prompts/skills/f3s/references/player.md b/prompts/skills/f3s/references/player.md index a9df96d..2719792 100644 --- a/prompts/skills/f3s/references/player.md +++ b/prompts/skills/f3s/references/player.md @@ -9,6 +9,7 @@ Player is deployed on the f3s k3s cluster as a GitOps-managed service. - Helm chart: `~/git/conf/f3s/player/helm-chart` - ArgoCD app: `~/git/conf/f3s/argocd-apps/services/player.yaml` - External URL: `https://player.f3s.buetow.org` +- Extra instance URL: `https://xplayer.f3s.buetow.org` - LAN URL: `https://player.f3s.lan.buetow.org` ArgoCD reads the chart from the in-cluster git-server repo: @@ -18,6 +19,13 @@ http://git-server.cicd.svc.cluster.local/conf.git path: f3s/player/helm-chart ``` +The secondary `xplayer` instance is managed by a separate ArgoCD app: + +```sh +http://git-server.cicd.svc.cluster.local/conf.git +path: f3s/xplayer/helm-chart +``` + Keep `~/git/conf` pushed to both remotes after chart updates: ```sh @@ -58,7 +66,14 @@ fsGroup: 65534 ## Update Helm and ArgoCD -Update these fields in `~/git/conf/f3s/player/helm-chart`: +Update the same image tag in both Helm charts: + +`~/git/conf/f3s/player/helm-chart`: + +- `Chart.yaml`: `appVersion: ""` +- `templates/deployment.yaml`: `image: registry.lan.buetow.org:30001/player:` + +`~/git/conf/f3s/xplayer/helm-chart`: - `Chart.yaml`: `appVersion: ""` - `templates/deployment.yaml`: `image: registry.lan.buetow.org:30001/player:` @@ -68,14 +83,16 @@ Validate locally: ```sh cd ~/git/conf helm template player f3s/player/helm-chart >/tmp/player-helm-render.yaml +helm template xplayer f3s/xplayer/helm-chart >/tmp/xplayer-helm-render.yaml kubectl apply --dry-run=client -f /tmp/player-helm-render.yaml +kubectl apply --dry-run=client -f /tmp/xplayer-helm-render.yaml ``` Commit and push: ```sh -git add f3s/player/helm-chart -git commit -m "Update player image tag" +git add f3s/player/helm-chart f3s/xplayer/helm-chart +git commit -m "Update player image tags" git push master master git push r0 master ``` @@ -84,8 +101,11 @@ Refresh ArgoCD and wait for rollout: ```sh kubectl annotate application player -n cicd argocd.argoproj.io/refresh=normal --overwrite +kubectl annotate application xplayer -n cicd argocd.argoproj.io/refresh=normal --overwrite kubectl rollout status deployment/player -n services --timeout=180s +kubectl rollout status deployment/xplayer -n services --timeout=180s kubectl get application player -n cicd -o jsonpath='sync={.status.sync.status} health={.status.health.status} revision={.status.sync.revision}{"\n"}' +kubectl get application xplayer -n cicd -o jsonpath='sync={.status.sync.status} health={.status.health.status} revision={.status.sync.revision}{"\n"}' ``` ## Storage notes @@ -95,6 +115,11 @@ Player uses two static `hostPath` PVs that point at the NFS mount available on e - `/data/nfs/k3svolumes/player/data` mounted at `/data` - `/data/nfs/k3svolumes/player/media` mounted at `/media` +The `xplayer` instance uses separate static `hostPath` PVs under: + +- `/data/nfs/k3svolumes/xplayer/data` mounted at `/data` +- `/data/nfs/k3svolumes/xplayer/media` mounted at `/media` + The PVs must use: ```yaml @@ -108,12 +133,14 @@ Create the paths before first deploy: ```sh ssh -p 22 root@192.168.1.120 'mkdir -p /data/nfs/k3svolumes/player/{data,media}' +ssh -p 22 root@192.168.1.120 'mkdir -p /data/nfs/k3svolumes/xplayer/{data,media}' ``` The NFS export may reject `chown` to UID 65534. Existing f3s writable service directories often use mode `777` when ownership cannot be changed: ```sh ssh -p 22 root@192.168.1.120 'chmod 777 /data/nfs/k3svolumes/player /data/nfs/k3svolumes/player/data /data/nfs/k3svolumes/player/media' +ssh -p 22 root@192.168.1.120 'chmod 777 /data/nfs/k3svolumes/xplayer /data/nfs/k3svolumes/xplayer/data /data/nfs/k3svolumes/xplayer/media' ``` ## Verification @@ -121,7 +148,9 @@ ssh -p 22 root@192.168.1.120 'chmod 777 /data/nfs/k3svolumes/player /data/nfs/k3 ```sh kubectl get pods,pvc,svc,ingress -n services | grep player kubectl logs -n services deploy/player --tail=100 +kubectl logs -n services deploy/xplayer --tail=100 curl -fsS https://player.f3s.buetow.org/healthz +curl -fsS https://xplayer.f3s.buetow.org/healthz curl -kfsS https://player.f3s.lan.buetow.org/healthz curl -kfsS https://player.f3s.lan.buetow.org/readyz ``` @@ -132,4 +161,7 @@ Verify the runtime UID and NFS write access: POD=$(kubectl get pod -n services -l app=player -o jsonpath='{.items[0].metadata.name}') kubectl exec -n services "$POD" -- id kubectl exec -n services "$POD" -- sh -c 'touch /data/.write-test /media/.write-test && rm /data/.write-test /media/.write-test' +XPOD=$(kubectl get pod -n services -l app=xplayer -o jsonpath='{.items[0].metadata.name}') +kubectl exec -n services "$XPOD" -- id +kubectl exec -n services "$XPOD" -- sh -c 'touch /data/.write-test /media/.write-test && rm /data/.write-test /media/.write-test' ``` -- cgit v1.2.3