Added bookstack and phpmyadmin

This commit is contained in:
=
2026-04-24 06:24:51 +00:00
parent fec005a904
commit 3224a51727
2 changed files with 147 additions and 71 deletions
+118
View File
@@ -0,0 +1,118 @@
apiVersion: v1
kind: Namespace
metadata:
name: bookstack
---
apiVersion: v1
kind: Secret
metadata:
name: bookstack-secrets
namespace: bookstack
type: Opaque
data:
APP_KEY: YmFzZTY0Ojd2VW8zL2w4SXFRN0w5VTZ5K1cxTTB2WDJaNEg2SjhLOUwwTTFOMk8zUDQ9
DB_PASS: NmtFZlJENUVpVmpqMTA=
---
apiVersion: v1
kind: ConfigMap
metadata:
name: bookstack-config
namespace: bookstack
data:
APP_URL: "https://notes.khongisa.co.za"
DB_HOST: "192.168.1.180"
DB_PORT: "3306"
DB_USER: "bookstack_user"
DB_DATABASE: "bookstackapp"
DRAWIO_URL: "https://drawio.khongisa.co.za/?embed=1&proto=json&spin=1&configure=1"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: bookstack-app-pvc
namespace: bookstack
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: bookstack
namespace: bookstack
spec:
replicas: 1
selector:
matchLabels:
app: bookstack
template:
metadata:
labels:
app: bookstack
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: DoesNotExist
containers:
- name: bookstack
image: lscr.io/linuxserver/bookstack:latest
ports:
- containerPort: 80
env:
- name: PUID
value: "1000"
- name: PGID
value: "1000"
- name: APP_KEY
valueFrom:
secretKeyRef: { name: bookstack-secrets, key: APP_KEY }
- name: APP_URL
valueFrom:
configMapKeyRef: { name: bookstack-config, key: APP_URL }
- name: DB_HOST
valueFrom:
configMapKeyRef: { name: bookstack-config, key: DB_HOST }
- name: DB_PORT
valueFrom:
configMapKeyRef: { name: bookstack-config, key: DB_PORT }
- name: DB_USER
valueFrom:
configMapKeyRef: { name: bookstack-config, key: DB_USER }
- name: DB_PASS
valueFrom:
secretKeyRef: { name: bookstack-secrets, key: DB_PASS }
- name: DB_DATABASE
valueFrom:
configMapKeyRef: { name: bookstack-config, key: DB_DATABASE }
- name: DRAWIO_URL
valueFrom:
configMapKeyRef: { name: bookstack-config, key: DRAWIO_URL }
volumeMounts:
- name: app-data
mountPath: /config
volumes:
- name: app-data
persistentVolumeClaim:
claimName: bookstack-app-pvc
---
apiVersion: v1
kind: Service
metadata:
name: bookstack-service
namespace: bookstack
spec:
type: NodePort
selector:
app: bookstack
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 33007
+29 -71
View File
@@ -1,4 +1,3 @@
---
apiVersion: v1 apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
@@ -10,48 +9,11 @@ metadata:
name: phpmyadmin-config name: phpmyadmin-config
namespace: phpmyadmin namespace: phpmyadmin
data: data:
database.address: "192.168.1.137" PMA_HOST: "192.168.1.180"
database.port: "3306" PMA_PORT: "3306"
--- PMA_USER: "root"
apiVersion: v1 PMA_ABSOLUTE_URI: "https://phpmyadmin.khongisa.co.za/"
kind: Secret ALLOW_NO_PASSWORD: "true"
metadata:
name: mysql-secret
namespace: phpmyadmin
type: Opaque
data:
username: cm9vdA==
password: QmxhY2tzdGFyMkBob21l
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: phpmyadmin-sa
namespace: phpmyadmin
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: phpmyadmin-role
namespace: phpmyadmin
rules:
- apiGroups: [""]
resources: ["pods", "services", "configmaps", "secrets"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: phpmyadmin-rolebinding
namespace: phpmyadmin
subjects:
- kind: ServiceAccount
name: phpmyadmin-sa
namespace: phpmyadmin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: phpmyadmin-role
--- ---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
@@ -68,7 +30,13 @@ spec:
labels: labels:
app: phpmyadmin app: phpmyadmin
spec: spec:
serviceAccountName: phpmyadmin-sa affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: DoesNotExist
containers: containers:
- name: phpmyadmin - name: phpmyadmin
image: phpmyadmin/phpmyadmin:latest image: phpmyadmin/phpmyadmin:latest
@@ -79,48 +47,38 @@ spec:
valueFrom: valueFrom:
configMapKeyRef: configMapKeyRef:
name: phpmyadmin-config name: phpmyadmin-config
key: database.address key: PMA_HOST
- name: PMA_PORT - name: PMA_PORT
valueFrom: valueFrom:
configMapKeyRef: configMapKeyRef:
name: phpmyadmin-config name: phpmyadmin-config
key: database.port key: PMA_PORT
- name: PMA_USER - name: PMA_USER
valueFrom: valueFrom:
secretKeyRef: configMapKeyRef:
name: mysql-secret name: phpmyadmin-config
key: username key: PMA_USER
- name: PMA_PASSWORD - name: ALLOW_NO_PASSWORD
valueFrom: valueFrom:
secretKeyRef: configMapKeyRef:
name: mysql-secret name: phpmyadmin-config
key: password key: ALLOW_NO_PASSWORD
- name: PMA_ABSOLUTE_URI
valueFrom:
configMapKeyRef:
name: phpmyadmin-config
key: PMA_ABSOLUTE_URI
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: phpmyadmin name: phpmyadmin-service
namespace: phpmyadmin namespace: phpmyadmin
spec: spec:
type: ClusterIP type: NodePort
selector: selector:
app: phpmyadmin app: phpmyadmin
ports: ports:
- port: 80 - port: 80
targetPort: 80 targetPort: 80
--- nodePort: 33006
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: phpmyadmin-ingress
namespace: phpmyadmin
spec:
entryPoints:
- websecure
routes:
- match: Host(`phpmyadmin.apps.mngoma.lab`)
kind: Rule
services:
- name: phpmyadmin
port: 80
tls: {}