Added template for apps

Signed-off-by: prettysunflower <me@prettysunflower.moe>
This commit is contained in:
2025-07-29 19:03:02 -04:00
parent 7ad308376e
commit 439d3d415d
6 changed files with 107 additions and 0 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
secrets.yaml
!apps/template/secrets.yaml
infra/*/tailscale.patch.yaml
.DS_Store

View File

@@ -0,0 +1,6 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: app-configmap
data:

View File

@@ -0,0 +1,69 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
labels:
app.kubernetes.io/name: app
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: app
template:
metadata:
labels:
app.kubernetes.io/name: app
spec:
volumes:
- name: mountName
persistentVolumeClaim:
claimName: app-pvc
containers:
- name: containerName
image: image
envFrom:
- configMapRef:
name: configMap
- secretRef:
name: secrets
ports:
- containerPort: 1234
name: http
volumeMounts:
- name: mountName
mountPath: "/"
livenessProbe:
exec:
command:
- /app/pocket-id
- healthcheck
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 10
failureThreshold: 3
periodSeconds: 90
startupProbe:
exec:
command:
- /app/pocket-id
- healthcheck
httpGet:
path: /healthz
port: 8080
failureThreshold: 30
periodSeconds: 10
securityContext:
runAsUser: 1000
runAsGroup: 1000
runAsNonRoot: true
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
dnsPolicy: "ClusterFirst"
dnsConfig:
nameservers:
- 100.96.226.96

11
apps/template/pvc.yaml Normal file
View File

@@ -0,0 +1,11 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: app-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
storageClassName: nfs-csi|hcloud-volumes

View File

@@ -0,0 +1,7 @@
apiVersion: v1
kind: Secret
metadata:
name: app-secrets
type: Opaque
stringData:

13
apps/template/svc.yaml Normal file
View File

@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: app
spec:
type: NodePort
selector:
app.kubernetes.io/name: app
ports:
- protocol: TCP
port: 80
targetPort: 1234
name: http