chore: Adds Immich support.
This commit is contained in:
parent
66fc8bd88e
commit
9979265d4c
11 changed files with 112 additions and 7 deletions
|
@ -88,7 +88,8 @@ class Project:
|
|||
helm_mode_settings = [
|
||||
"add_repo",
|
||||
"upgrade",
|
||||
"install"
|
||||
"install",
|
||||
"install_no_upgrade_cmd"
|
||||
]
|
||||
|
||||
kube_mode_settings = [
|
||||
|
@ -347,7 +348,7 @@ def generate_change_set(projects: list[Project]) -> dict[str, list[str]]:
|
|||
changeset_values[project.name] = [
|
||||
f"helm repo add {project.helm_settings.name} {project.helm_settings.repo}"
|
||||
]
|
||||
elif project.helm_settings.mode == "upgrade" or project.helm_settings.mode == "install":
|
||||
elif project.helm_settings.mode == "upgrade" or project.helm_settings.mode == "install" or project.helm_settings.mode == "install_no_upgrade_cmd":
|
||||
if project.helm_settings.name == None or project.helm_settings.repo == None:
|
||||
print("ERROR: 'upgrade' or 'install' is set but either: name, or repo, is undefined")
|
||||
exit(1)
|
||||
|
@ -409,16 +410,24 @@ def generate_change_set(projects: list[Project]) -> dict[str, list[str]]:
|
|||
should_still_continue = True
|
||||
|
||||
if (not os.path.isfile(f"{changeset_path}/helmhashes/{meta_id}") or should_still_continue) and project.helm_settings.mode == "install":
|
||||
print(f"WARN ({project.name}): you are using the old install command! either switch over to upgrade, or switch to 'install_no_upgrade_cmd'")
|
||||
Path(f"{changeset_path}/helmhashes/{meta_id}").touch()
|
||||
|
||||
changeset_values[project.name] = [
|
||||
f"helm repo update {project.helm_settings.repo[:project.helm_settings.repo.index("/")]}",
|
||||
f"helm upgrade --install {options_file} {variables} {project.helm_settings.name} \"{project.helm_settings.repo}\" {create_namespace} {namespace}"
|
||||
]
|
||||
elif (not os.path.isfile(f"{changeset_path}/helmhashes/{meta_id}") or should_still_continue) and project.helm_settings.mode == "install_no_upgrade_cmd":
|
||||
Path(f"{changeset_path}/helmhashes/{meta_id}").touch()
|
||||
|
||||
changeset_values[project.name] = [
|
||||
f"helm repo update {project.helm_settings.repo[:project.helm_settings.repo.index("/")]}",
|
||||
f"helm install {options_file} {variables} {project.helm_settings.name} \"{project.helm_settings.repo}\" {create_namespace} {namespace}"
|
||||
]
|
||||
elif project.helm_settings.mode == "upgrade" or mode == "update":
|
||||
changeset_values[project.name] = [
|
||||
f"helm repo update {project.helm_settings.repo[:project.helm_settings.repo.index("/")]}",
|
||||
f"helm upgrade {options_file} {variables} {project.helm_settings.name} \"{project.helm_settings.repo}\" {create_namespace} {namespace}"
|
||||
f"helm upgrade --install {options_file} {variables} {project.helm_settings.name} \"{project.helm_settings.repo}\" {create_namespace} {namespace}"
|
||||
]
|
||||
case "k3s":
|
||||
if project.kube_settings == None:
|
||||
|
|
|
@ -5,4 +5,4 @@ metadata:
|
|||
labels:
|
||||
pod-security.kubernetes.io/enforce: privileged
|
||||
pod-security.kubernetes.io/audit: privileged
|
||||
pod-security.kubernetes.io/warn: privileged
|
||||
pod-security.kubernetes.io/warn: privileged
|
||||
|
|
|
@ -6,10 +6,10 @@ description = Secret Values
|
|||
mode = include
|
||||
path = ./secrets/project.ini
|
||||
|
||||
[longhorn]
|
||||
description = Longhorn Distributed Storage
|
||||
[storage]
|
||||
description = Storage Configuration
|
||||
mode = include
|
||||
path = ./longhorn/project.ini
|
||||
path = ./storage/project.ini
|
||||
|
||||
[loadbalancer]
|
||||
description = LoadBalancer Configuration
|
||||
|
|
4
kubernetes/services/immich/namespace.yml
Normal file
4
kubernetes/services/immich/namespace.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: immich
|
42
kubernetes/services/immich/project.ini
Normal file
42
kubernetes/services/immich/project.ini
Normal file
|
@ -0,0 +1,42 @@
|
|||
[meta]
|
||||
format_ver = 1
|
||||
|
||||
[immich_namespace]
|
||||
description = Immich Namespace
|
||||
mode = k3s
|
||||
depends_on = traefik:nfs_provisioner
|
||||
|
||||
[#immich_namespace/k3s]
|
||||
mode = install
|
||||
yml_path = ./namespace.yml
|
||||
|
||||
[immich_pvc]
|
||||
description = Immich PVC
|
||||
mode = k3s
|
||||
depends_on = immich_namespace
|
||||
|
||||
[#immich_pvc/k3s]
|
||||
mode = install
|
||||
yml_path = ./pvc.yml
|
||||
|
||||
[immich_repo]
|
||||
description = Immich Helm Repository
|
||||
mode = helm
|
||||
depends_on = immich_pvc
|
||||
|
||||
[#immich_repo/helm]
|
||||
mode = add_repo
|
||||
name = immich
|
||||
repo = https://immich-app.github.io/immich-charts
|
||||
|
||||
[immich]
|
||||
description = Immich Software
|
||||
mode = helm
|
||||
depends_on = immich_repo
|
||||
|
||||
[#immich/helm]
|
||||
mode = upgrade
|
||||
name = immich
|
||||
repo = immich/immich
|
||||
variable_file = ../../secrets/immich.env
|
||||
namespace = immich
|
12
kubernetes/services/immich/pvc.yml
Normal file
12
kubernetes/services/immich/pvc.yml
Normal file
|
@ -0,0 +1,12 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: immich-pvc
|
||||
namespace: immich
|
||||
spec:
|
||||
storageClassName: nfs-client
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 500Gi
|
|
@ -24,3 +24,7 @@ path = ./tailscale/project.ini
|
|||
[woodpecker_project]
|
||||
mode = include
|
||||
path = ./woodpecker-ci/project.ini
|
||||
|
||||
[immich_project]
|
||||
mode = include
|
||||
path = ./immich/project.ini
|
||||
|
|
22
kubernetes/storage/nfs/project.ini
Normal file
22
kubernetes/storage/nfs/project.ini
Normal file
|
@ -0,0 +1,22 @@
|
|||
[meta]
|
||||
format_ver = 1
|
||||
|
||||
[nfs_provisioner_repo]
|
||||
description = nfs-subdir-external-provisioner repository
|
||||
mode = helm
|
||||
|
||||
[#nfs_provisioner_repo/helm]
|
||||
mode = add_repo
|
||||
name = nfs-subdir-external-provisioner
|
||||
repo = https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
|
||||
|
||||
[nfs_provisioner]
|
||||
description = nfs-subdir-external-provisioner storage
|
||||
mode = helm
|
||||
depends_on = nfs_provisioner_repo
|
||||
|
||||
[#nfs_provisioner/helm]
|
||||
mode = install_no_upgrade_cmd
|
||||
name = nfs-subdir-external-provisioner
|
||||
repo = nfs-subdir-external-provisioner/nfs-subdir-external-provisioner
|
||||
variable_file = ../../secrets/nfs.env
|
12
kubernetes/storage/project.ini
Normal file
12
kubernetes/storage/project.ini
Normal file
|
@ -0,0 +1,12 @@
|
|||
[meta]
|
||||
format_ver = 1
|
||||
|
||||
[longhorn]
|
||||
description = Longhorn Distributed Storage
|
||||
mode = include
|
||||
path = ./longhorn/project.ini
|
||||
|
||||
[nfs]
|
||||
description = NFS Storage
|
||||
mode = include
|
||||
path = ./nfs/project.ini
|
Reference in a new issue