Files
k8s-apps/fileserver/filebrowser.yaml
2025-08-24 13:38:37 +02:00

123 lines
3.0 KiB
YAML

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: filebrowser
# Change "rook-ceph" provisioner prefix to match the operator namespace if needed
provisioner: rook-ceph.cephfs.csi.ceph.com
parameters:
# clusterID is the namespace where the rook cluster is running
# If you change this namespace, also change the namespace below where the secret namespaces are defined
clusterID: rook-ceph
# CephFS filesystem name into which the volume shall be created
fsName: fileserver
# Ceph pool into which the volume shall be created
# Required for provisionVolume: "true"
pool: fileserver-replicated
# The secrets contain Ceph admin credentials. These are generated automatically by the operator
# in the same namespace as the cluster.
csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner
csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph
csi.storage.k8s.io/controller-expand-secret-name: rook-csi-cephfs-provisioner
csi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph
csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node
csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph
reclaimPolicy: Delete
---
#apiVersion: v1
#kind: PersistentVolumeClaim
#metadata:
# name: filebrowser
# namespace: fileserver
#spec:
# accessModes:
# - ReadWriteMany
# resources:
# requests:
# storage: 2Gi
# storageClassName: filebrowser
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: filebrowser-db
namespace: fileserver
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 4Gi
storageClassName: filebrowser
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: filebrowser
namespace: fileserver
labels:
app: filebrowser
spec:
replicas: 1
selector:
matchLabels:
app: filebrowser
template:
metadata:
labels:
app: filebrowser
spec:
initContainers:
- name: createfile
image: debian
command: ["bash", "-c", "touch /database/database.db && ls -la /database"]
volumeMounts:
- mountPath: "/database/"
name: filebrowser-db
containers:
- name: filebrowser
image: filebrowser/filebrowser
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
volumeMounts:
- mountPath: "/srv"
name: filebrowser
- mountPath: "/database.db"
name: filebrowser-db
subPath: database.db
volumes:
- name: filebrowser
persistentVolumeClaim:
claimName: samba
- name: filebrowser-db
persistentVolumeClaim:
claimName: filebrowser-db
---
apiVersion: v1
kind: Service
metadata:
name: filebrowser
namespace: fileserver
labels:
app: filebrowser
spec:
internalTrafficPolicy: Cluster
ipFamilies:
- IPv6
- IPv4
ipFamilyPolicy: PreferDualStack
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: filebrowser
sessionAffinity: None
type: ClusterIP