summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-16 15:23:38 +0300
committerPaul Buetow <paul@buetow.org>2026-05-16 15:23:38 +0300
commit0027a8fb123721e15fcc7eb7252b8b0f3b54456c (patch)
treef3b74a0df7330beb924dcd7052e167d680015bd6
parent1d6df552fadb4e7d1f692cb07ae5e7cc692fb587 (diff)
Update player f3s deployment notes
-rw-r--r--prompts/skills/f3s/references/player.md38
1 files 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: "<TAG>"`
+- `templates/deployment.yaml`: `image: registry.lan.buetow.org:30001/player:<TAG>`
+
+`~/git/conf/f3s/xplayer/helm-chart`:
- `Chart.yaml`: `appVersion: "<TAG>"`
- `templates/deployment.yaml`: `image: registry.lan.buetow.org:30001/player:<TAG>`
@@ -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'
```