fix(ipv6): use httpGet probes by default for IPv4 and IPv6 compatibility

Change default health probes from tcpSocket to httpGet to fix issue #68
where pods fail to start in IPv6-only clusters due to incompatible health checks.

Changes:
- Change default livenessProbe and readinessProbe to use httpGet with /health endpoint
- Add comprehensive IPv6 and dual-stack configuration documentation
- Document ipFamilyPolicy options (SingleStack, PreferDualStack, RequireDualStack)
- Document ipFamilies configuration for IPv4-only, IPv6-only, and dual-stack setups
- Add IPv6 Configuration section to README with examples
- Update Chart version from 2.5.0 to 2.5.1

The httpGet probe works with both IPv4 and IPv6 out of the box, while tcpSocket
may fail in IPv6-only environments. Jellyfin's /health endpoint is specifically
designed for health checks and verifies both HTTP and database connectivity.

Fixes: #68

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
This commit is contained in:
Aleksei SviridkinandClaude committed 2025-11-05 22:56:01 +03:00 Unverified
1 parent 2401a45bb1
commit 250a126357
4 files changed
+87 -10

No files matched your search

+17 -4
View File
@@ -85,8 +85,17 @@ service:
# -- Service type (ClusterIP, NodePort, or LoadBalancer).
type: ClusterIP
# -- Configure dual-stack IP family policy. See: https://kubernetes.io/docs/concepts/services-networking/dual-stack/
# Options: SingleStack, PreferDualStack, RequireDualStack
# For IPv6-only clusters, use "SingleStack" with ipFamilies: ["IPv6"]
# For dual-stack, use "PreferDualStack" or "RequireDualStack" with ipFamilies: ["IPv4", "IPv6"] or ["IPv6", "IPv4"]
ipFamilyPolicy: ""
# -- Supported IP families (IPv4, IPv6).
# Examples:
# IPv4 only: ["IPv4"]
# IPv6 only: ["IPv6"]
# Dual-stack (IPv4 primary): ["IPv4", "IPv6"]
# Dual-stack (IPv6 primary): ["IPv6", "IPv4"]
# Note: When using IPv6, ensure your health checks are compatible (consider using httpGet instead of tcpSocket)
ipFamilies: []
# -- Specific IP address for the LoadBalancer.
loadBalancerIP: ""
@@ -134,20 +143,24 @@ resources: {}
# memory: 128Mi
# -- Configure liveness probe for Jellyfin.
# Uses httpGet for compatibility with both IPv4 and IPv6.
livenessProbe:
initialDelaySeconds: 10
tcpSocket:
httpGet:
path: /health
port: http
initialDelaySeconds: 10
# successThreshold: 1
# failureThreshold: 3
# timeoutSeconds: 1
# periodSeconds: 10
# -- Configure readiness probe for Jellyfin.
# Uses httpGet for compatibility with both IPv4 and IPv6.
readinessProbe:
initialDelaySeconds: 10
tcpSocket:
httpGet:
path: /health
port: http
initialDelaySeconds: 10
# successThreshold: 1
# failureThreshold: 3
# timeoutSeconds: 1