34 lines
1.4 KiB
Bash
Executable File
34 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
project_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
|
expected_context=kubernetes-admin@kubernetes
|
|
context=$(kubectl config current-context)
|
|
|
|
if [ "${context}" != "${expected_context}" ]; then
|
|
echo "Expected Kubernetes context ${expected_context}, found ${context}." >&2
|
|
exit 1
|
|
fi
|
|
if [ "$(findmnt -T /komposthaufen/multimedia -n -o FSTYPE)" != bcachefs ]; then
|
|
echo '/komposthaufen/multimedia is not backed by bcachefs.' >&2
|
|
exit 1
|
|
fi
|
|
test -d /komposthaufen/multimedia/Videos
|
|
|
|
kubectl apply --filename "${project_dir}/namespace.yaml"
|
|
kubectl --namespace jellyfin wait --for=condition=complete \
|
|
job/jellyfin-archlinux-migration --timeout=5s
|
|
kubectl apply --dry-run=server --filename "${project_dir}/jellyfin.yaml"
|
|
kubectl apply --filename "${project_dir}/jellyfin.yaml"
|
|
kubectl --namespace jellyfin rollout status deployment/jellyfin --timeout=30m
|
|
|
|
pod=$(kubectl --namespace jellyfin get pod \
|
|
--selector=app.kubernetes.io/name=jellyfin,app.kubernetes.io/component=server \
|
|
--output=jsonpath='{.items[0].metadata.name}')
|
|
node=$(kubectl --namespace jellyfin get pod "${pod}" --output=jsonpath='{.spec.nodeName}')
|
|
image=$(kubectl --namespace jellyfin get deployment jellyfin --output=jsonpath='{.spec.template.spec.containers[0].image}')
|
|
test "${node}" = arschrock
|
|
kubectl --namespace jellyfin get pod "${pod}" --output=wide
|
|
printf 'Jellyfin is ready on %s with image %s.\n' "${node}" "${image}"
|