Files
wild-cloud/apps/immich/deployment.yaml
Paul Payne 5cbfb9c645 Add Immich application deployment files and configuration
- 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
2025-05-27 17:19:41 -07:00

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