Files
automation/kubernetes-templates/filebrowser.yml
T

117 lines
2.4 KiB
YAML

---
apiVersion: v1
kind: Namespace
metadata:
name: filebrowser
---
apiVersion: v1
kind: Secret
metadata:
name: filebrowser-auth
namespace: filebrowser
type: Opaque
data:
admin-password: QmxhY2tzdGFyMkBob21l
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: filebrowser-config-pvc
namespace: filebrowser
spec:
accessModes: ["ReadWriteMany"]
storageClassName: nfs-storage
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: filebrowser-data-pvc
namespace: filebrowser
spec:
accessModes: ["ReadWriteMany"]
storageClassName: nfs-storage
resources:
requests:
storage: 50Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: filebrowser
namespace: filebrowser
spec:
replicas: 1
selector:
matchLabels:
app: filebrowser
template:
metadata:
labels:
app: filebrowser
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: DoesNotExist
containers:
- name: filebrowser
image: filebrowser/filebrowser:v2.30.0
ports:
- containerPort: 80
env:
- name: FB_DATABASE
value: "/config/database.db"
- name: FB_ROOT
value: "/srv"
- name: FB_PORT
value: "80"
- name: FB_ADDR
value: "0.0.0.0"
volumeMounts:
- name: config
mountPath: /config
- name: data
mountPath: /srv
volumes:
- name: config
persistentVolumeClaim:
claimName: filebrowser-config-pvc
- name: data
persistentVolumeClaim:
claimName: filebrowser-data-pvc
---
apiVersion: v1
kind: Service
metadata:
name: filebrowser-service
namespace: filebrowser
spec:
type: ClusterIP
selector:
app: filebrowser
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: filebrowser-web
namespace: filebrowser
spec:
entryPoints:
- websecure
routes:
- match: Host(`drive.khongisa.co.za`)
kind: Rule
services:
- name: filebrowser-service
port: 80