Add Redis for immich
This commit is contained in:
@@ -5,4 +5,6 @@ metadata:
|
||||
namespace: immich
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- redis-srv.yaml
|
||||
- redis.yaml
|
||||
- uploads-pvc.yaml
|
||||
|
||||
15
apps/hydra/immich/redis-srv.yaml
Normal file
15
apps/hydra/immich/redis-srv.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: redis
|
||||
name: redis
|
||||
namespace: immich
|
||||
spec:
|
||||
ports:
|
||||
- port: 6379
|
||||
targetPort: 0
|
||||
selector:
|
||||
app: redis
|
||||
status:
|
||||
loadBalancer: {}
|
||||
22
apps/hydra/immich/redis.yaml
Normal file
22
apps/hydra/immich/redis.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: redis
|
||||
name: redis
|
||||
namespace: immich
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: redis
|
||||
strategy: {}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: redis
|
||||
spec:
|
||||
containers:
|
||||
- image: docker.io/valkey/valkey:9@sha256:3b55fbaa0cd93cf0d9d961f405e4dfcc70efe325e2d84da207a0a8e6d8fde4f9
|
||||
name: immich_redis
|
||||
resources: {}
|
||||
status: {}
|
||||
@@ -4,7 +4,7 @@ metadata:
|
||||
name: linking
|
||||
namespace: linkding
|
||||
resources:
|
||||
- pvc.yaml
|
||||
- deployment.yaml
|
||||
- namespace.yaml
|
||||
- pvc.yaml
|
||||
- srv.yaml
|
||||
|
||||
2
go.mod
2
go.mod
@@ -3,7 +3,7 @@ module danicos.dev/daniel/homelab
|
||||
go 1.26.2
|
||||
|
||||
require (
|
||||
danicos.dev/daniel/go-kube v1.13.4
|
||||
danicos.dev/daniel/go-kube v1.13.7
|
||||
github.com/cloudnative-pg/api v1.29.0
|
||||
github.com/fatih/color v1.19.0
|
||||
github.com/fluxcd/helm-controller/api v1.5.4
|
||||
|
||||
4
go.sum
4
go.sum
@@ -1,5 +1,5 @@
|
||||
danicos.dev/daniel/go-kube v1.13.4 h1:7aXOUOhccvfTcZXAJhHaq3wSvmoVD+cRmD74yyucPsM=
|
||||
danicos.dev/daniel/go-kube v1.13.4/go.mod h1:zOhFK+bE4t14yOokp+yqh8Pht1/U102JV/29QoKBjjc=
|
||||
danicos.dev/daniel/go-kube v1.13.7 h1:HmIxAERnut8Ue2XLsG8r4LimKJ0MOf/XACa7BoxEMAQ=
|
||||
danicos.dev/daniel/go-kube v1.13.7/go.mod h1:zOhFK+bE4t14yOokp+yqh8Pht1/U102JV/29QoKBjjc=
|
||||
github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
|
||||
github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
|
||||
github.com/cloudnative-pg/api v1.29.0 h1:mNx6yJ5qi+Xrjs0NYrUy6V4MlXBkVJxGKwvTJZIuTX4=
|
||||
|
||||
@@ -4,6 +4,6 @@ metadata:
|
||||
name: cnpg
|
||||
namespace: cnpg-system
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- helm-repository-source.yaml
|
||||
- helm-release.yaml
|
||||
- helm-repository-source.yaml
|
||||
- namespace.yaml
|
||||
|
||||
@@ -4,6 +4,6 @@ metadata:
|
||||
name: longhorn
|
||||
namespace: longhorn-system
|
||||
resources:
|
||||
- release.yaml
|
||||
- namespace.yaml
|
||||
- longhorn-stack.yaml
|
||||
- namespace.yaml
|
||||
- release.yaml
|
||||
|
||||
@@ -4,6 +4,6 @@ metadata:
|
||||
name: monitoring
|
||||
namespace: monitoring
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- kube-prometheus-stack.yaml
|
||||
- namespace.yaml
|
||||
- release.yaml
|
||||
|
||||
@@ -5,5 +5,5 @@ metadata:
|
||||
namespace: cnpg-cluster
|
||||
resources:
|
||||
- cluster-namespace.yaml
|
||||
- pg-cluster.yaml
|
||||
- immich-db.yaml
|
||||
- pg-cluster.yaml
|
||||
|
||||
@@ -4,7 +4,7 @@ metadata:
|
||||
name: truenas-csi
|
||||
namespace: truenas-csi
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- config.yaml
|
||||
- nfs-storage-class.yaml
|
||||
- iscsi-storage-class.yaml
|
||||
- namespace.yaml
|
||||
- nfs-storage-class.yaml
|
||||
|
||||
@@ -25,10 +25,14 @@ var Secret = struct {
|
||||
DBPortKey: "db_port",
|
||||
}
|
||||
|
||||
const RedisPort = 6379
|
||||
|
||||
var meta kube.Metadata
|
||||
var Namespace = kube.Namespace(root.Immich.Name)
|
||||
var srv core.Service
|
||||
var uploads_pvc core.PersistentVolumeClaim
|
||||
var redis_meta kube.Metadata
|
||||
var redis_srv core.Service
|
||||
|
||||
func init() {
|
||||
meta = kube.NewMetadata(root.Immich.Name, Namespace)
|
||||
@@ -40,6 +44,9 @@ func init() {
|
||||
uploads_pvc.Spec.Resources = core.VolumeResourceRequirements{
|
||||
Requests: req,
|
||||
}
|
||||
|
||||
redis_meta = kube.NewMetadata("redis", Namespace)
|
||||
redis_srv = redis_meta.Service(RedisPort)
|
||||
}
|
||||
|
||||
func Stack() stack.Stack {
|
||||
@@ -48,7 +55,8 @@ func Stack() stack.Stack {
|
||||
map[string]any{
|
||||
"namespace": Namespace,
|
||||
"uploads-pvc": uploads_pvc,
|
||||
// "redis": Redis(),
|
||||
"redis-srv": redis_srv,
|
||||
"redis": Redis(),
|
||||
// "deployment": Deployment(),
|
||||
},
|
||||
)
|
||||
@@ -57,6 +65,15 @@ func Stack() stack.Stack {
|
||||
|
||||
func Deployment() apps.Deployment {
|
||||
uploadVol := kube.NewVolumeFrom(kube.VolumeSourcePVC, "upload", uploads_pvc.Name)
|
||||
localtimeVol := core.Volume{
|
||||
Name: "localtime",
|
||||
VolumeSource: core.VolumeSource{
|
||||
HostPath: &core.HostPathVolumeSource{
|
||||
Path: "/etc/localtime",
|
||||
Type: new(core.HostPathFile),
|
||||
},
|
||||
},
|
||||
}
|
||||
envMapping := map[string]string{}
|
||||
secretMapping := map[string]string{
|
||||
"DB_HOSTNAME": Secret.DBHostKey,
|
||||
@@ -75,15 +92,21 @@ func Deployment() apps.Deployment {
|
||||
},
|
||||
},
|
||||
Volumes: []core.Volume{
|
||||
// /etc/localtime
|
||||
uploadVol,
|
||||
localtimeVol,
|
||||
},
|
||||
}
|
||||
return kube.NewDeployment(meta, podSpec)
|
||||
}
|
||||
|
||||
func Redis() apps.Deployment {
|
||||
meta := kube.NewMetadata(root.Immich.Name+"-redis", Namespace)
|
||||
podSpec := core.PodSpec{}
|
||||
return kube.NewDeployment(meta, podSpec)
|
||||
podSpec := core.PodSpec{
|
||||
Containers: []core.Container{
|
||||
{
|
||||
Name: "immich_redis",
|
||||
Image: "docker.io/valkey/valkey:9@sha256:3b55fbaa0cd93cf0d9d961f405e4dfcc70efe325e2d84da207a0a8e6d8fde4f9",
|
||||
},
|
||||
},
|
||||
}
|
||||
return kube.NewDeployment(redis_meta, podSpec)
|
||||
}
|
||||
|
||||
@@ -35,8 +35,8 @@ var Linkding = Service{
|
||||
|
||||
var Immich = Service{
|
||||
Name: "immich",
|
||||
Image: "ghcr.io/immich-app/immich-server:v2.6.0:-release}",
|
||||
Port: 2283,
|
||||
Image: "ghcr.io/immich-app/immich-server:v2.6.0:-release",
|
||||
Port: 2283, // Server Port
|
||||
// PublicURL: "https://photos.danicos.me",
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user