- Create README.md for Immich app description - Add example.env for configuration settings - Implement deployment.yaml for Immich server and microservices - Set up ingress.yaml for public access with DNS annotations - Introduce db-init-job.yaml for database initialization - Configure kustomization.yaml for resource management - Define manifest.yaml for Immich app installation details - Create namespace.yaml for isolating Immich resources - Establish PVCs in pvc.yaml for storage management - Set up services in service.yaml for server and machine learning components - Update CoreDNS custom config to handle AAAA records
138 lines
3.3 KiB
YAML
138 lines
3.3 KiB
YAML
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: immich-server
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: immich-server
|
|
strategy:
|
|
rollingUpdate:
|
|
maxSurge: 0
|
|
maxUnavailable: 1
|
|
type: RollingUpdate
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: immich-server
|
|
component: server
|
|
spec:
|
|
containers:
|
|
- image: ghcr.io/immich-app/immich-server:release
|
|
name: immich-server
|
|
ports:
|
|
- containerPort: 2283
|
|
protocol: TCP
|
|
envFrom:
|
|
- secretRef:
|
|
name: secrets
|
|
- configMapRef:
|
|
name: config
|
|
env:
|
|
- name: REDIS_HOSTNAME
|
|
value: redis.redis
|
|
- name: DB_HOSTNAME
|
|
value: postgres.postgres
|
|
- name: TZ
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: TZ
|
|
name: config
|
|
volumeMounts:
|
|
- mountPath: /usr/src/app/upload
|
|
name: immich-storage
|
|
readOnly: false
|
|
volumes:
|
|
- name: immich-storage
|
|
persistentVolumeClaim:
|
|
claimName: immich-pvc
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: immich-microservices
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: immich-microservices
|
|
strategy:
|
|
rollingUpdate:
|
|
maxSurge: 0
|
|
maxUnavailable: 1
|
|
type: RollingUpdate
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: immich-microservices
|
|
component: microservices
|
|
spec:
|
|
containers:
|
|
- image: ghcr.io/immich-app/immich-server:release
|
|
name: immich-microservices
|
|
envFrom:
|
|
- secretRef:
|
|
name: secrets
|
|
- configMapRef:
|
|
name: config
|
|
env:
|
|
- name: REDIS_HOSTNAME
|
|
value: redis.redis
|
|
- name: DB_HOSTNAME
|
|
value: postgres.postgres
|
|
- name: TZ
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: TZ
|
|
name: config
|
|
- name: IMMICH_WORKERS_INCLUDE
|
|
value: api
|
|
volumeMounts:
|
|
- mountPath: /usr/src/app/upload
|
|
name: immich-storage
|
|
readOnly: false
|
|
volumes:
|
|
- name: immich-storage
|
|
persistentVolumeClaim:
|
|
claimName: immich-pvc
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: immich-machine-learning
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: immich-machine-learning
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: immich-machine-learning
|
|
component: machine-learning
|
|
spec:
|
|
containers:
|
|
- image: ghcr.io/immich-app/immich-machine-learning:release
|
|
name: immich-machine-learning
|
|
ports:
|
|
- containerPort: 3003
|
|
protocol: TCP
|
|
envFrom:
|
|
- configMapRef:
|
|
name: config
|
|
env:
|
|
- name: TZ
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: TZ
|
|
name: config
|
|
volumeMounts:
|
|
- mountPath: /cache
|
|
name: immich-cache
|
|
readOnly: false
|
|
volumes:
|
|
- name: immich-cache
|
|
persistentVolumeClaim:
|
|
claimName: immich-cache-pvc |