Add Immich deployment
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"danicos.dev/daniel/go-kube/pkg/kube"
|
||||
"danicos.dev/daniel/go-kube/pkg/stack"
|
||||
"danicos.dev/daniel/homelab/pkg/root"
|
||||
apps "k8s.io/api/apps/v1"
|
||||
core "k8s.io/api/core/v1"
|
||||
)
|
||||
|
||||
@@ -30,6 +31,7 @@ var uploads_pvc core.PersistentVolumeClaim
|
||||
|
||||
func init() {
|
||||
meta = kube.NewMetadata(root.Immich.Name, Namespace)
|
||||
srv = meta.Service(root.Immich.Port)
|
||||
uploads_pvc = meta.PVC()
|
||||
uploads_pvc.Spec.StorageClassName = new(root.TrueNASSTorageClassNFS)
|
||||
uploads_pvc.Spec.AccessModes = []core.PersistentVolumeAccessMode{core.ReadWriteMany}
|
||||
@@ -41,7 +43,42 @@ func Stack() stack.Stack {
|
||||
map[string]any{
|
||||
"namespace": Namespace,
|
||||
"uploads-pvc": uploads_pvc,
|
||||
// "redis": Redis(),
|
||||
"deployment": Deployment(),
|
||||
},
|
||||
)
|
||||
return kz.Stack("immich")
|
||||
}
|
||||
|
||||
func Deployment() apps.Deployment {
|
||||
uploadVol := kube.NewVolumeFrom(kube.VolumeSourcePVC, "upload", uploads_pvc.Name)
|
||||
envMapping := map[string]string{}
|
||||
secretMapping := map[string]string{
|
||||
"DB_HOSTNAME": Secret.DBHostKey,
|
||||
"DB_PORT": Secret.DBPortKey,
|
||||
"DB_USERNAME": Secret.DBUsernameKey,
|
||||
"DB_PASSWORD": Secret.DBPasswordKey,
|
||||
"DB_DATABASE_NAME": Secret.DBUsernameKey,
|
||||
}
|
||||
podSpec := core.PodSpec{
|
||||
Containers: []core.Container{
|
||||
{
|
||||
Name: root.Immich.Name + "-server",
|
||||
Image: root.Immich.Image,
|
||||
Env: kube.NewEnvVarWithSecret(envMapping, secretMapping, Secret.Name),
|
||||
Ports: []core.ContainerPort{{ContainerPort: root.Immich.Port}},
|
||||
},
|
||||
},
|
||||
Volumes: []core.Volume{
|
||||
// /etc/localtime
|
||||
uploadVol,
|
||||
},
|
||||
}
|
||||
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)
|
||||
}
|
||||
|
||||
@@ -35,7 +35,8 @@ var Linkding = Service{
|
||||
|
||||
var Immich = Service{
|
||||
Name: "immich",
|
||||
Image: "",
|
||||
Image: "ghcr.io/immich-app/immich-server:v2.6.0:-release}",
|
||||
Port: 2283,
|
||||
// PublicURL: "https://photos.danicos.me",
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user