Add serpbear

This commit is contained in:
Ruben Hensen
2026-04-25 20:39:20 +02:00
parent bb308a3d66
commit 20dfbde02f
8 changed files with 163 additions and 1 deletions
+21
View File
@@ -0,0 +1,21 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: serpbear-folder
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
repoURL: https://github.com/rubenhensen/k8scd.git
targetRevision: HEAD
path: serpbear
destination:
server: https://kubernetes.default.svc
namespace: serpbear
syncPolicy:
syncOptions:
- CreateNamespace=true
automated:
selfHeal: true
+4
View File
@@ -51,6 +51,10 @@ records:
expire: 300
type: A
content: "62.41.87.114"
- name: "serpbear"
expire: 300
type: A
content: "62.41.87.114"
- name: "@"
expire: 300
type: MX
+2 -1
View File
@@ -15,7 +15,8 @@
},
"kubernetes": {
"managerFilePatterns": [
"/apps/templates/.+\\.yaml$/"
"/apps/templates/.+\\.yaml$/",
"/serpbear/.+\\.yaml$/"
]
},
"customManagers": [
+12
View File
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: data
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
+29
View File
@@ -0,0 +1,29 @@
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: serpbear-secrets
spec:
secretStoreRef:
name: vault-backend
kind: ClusterSecretStore
refreshInterval: 15m
target:
name: serpbear-secrets
creationPolicy: Owner
data:
- secretKey: user
remoteRef:
key: kv/serpbear
property: user
- secretKey: password
remoteRef:
key: kv/serpbear
property: password
- secretKey: secret
remoteRef:
key: kv/serpbear
property: secret
- secretKey: apikey
remoteRef:
key: kv/serpbear
property: apikey
+25
View File
@@ -0,0 +1,25 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: serpbear-ingress
annotations:
cert-manager.io/cluster-issuer: prod-cluster-issuer
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
nginx.ingress.kubernetes.io/ssl-passthrough: "false"
spec:
ingressClassName: nginx
rules:
- host: serpbear.rubenhensen.nl
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: serpbear
port:
number: 3000
tls:
- secretName: letsencrypt-prod
hosts:
- serpbear.rubenhensen.nl
+57
View File
@@ -0,0 +1,57 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
io.kompose.service: serpbear
name: serpbear
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: serpbear
strategy:
type: Recreate
template:
metadata:
labels:
io.kompose.service: serpbear
spec:
containers:
- env:
- name: USER
valueFrom:
secretKeyRef:
name: serpbear-secrets
key: user
- name: PASSWORD
valueFrom:
secretKeyRef:
name: serpbear-secrets
key: password
- name: SECRET
valueFrom:
secretKeyRef:
name: serpbear-secrets
key: secret
- name: APIKEY
valueFrom:
secretKeyRef:
name: serpbear-secrets
key: apikey
- name: NEXT_PUBLIC_APP_URL
value: https://serpbear.rubenhensen.nl
- name: TZ
value: Europe/Amsterdam
image: towfiqi/serpbear:3.1.0
name: serpbear
ports:
- containerPort: 3000
protocol: TCP
volumeMounts:
- mountPath: /app/data
name: data
restartPolicy: Always
volumes:
- name: data
persistentVolumeClaim:
claimName: data
+13
View File
@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
labels:
io.kompose.service: serpbear
name: serpbear
spec:
ports:
- name: "3000"
port: 3000
targetPort: 3000
selector:
io.kompose.service: serpbear