Files
automation/kubernetes-templates/wandbox.yml
2026-04-16 08:51:13 +02:00

120 lines
2.5 KiB
YAML

---
apiVersion: v1
kind: Namespace
metadata:
name: wandbox
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: wandbox-sa
namespace: wandbox
---
apiVersion: v1
kind: ConfigMap
metadata:
name: wandbox-config
namespace: wandbox
data:
wandbox.domain: "wandbox.khongisa.co.za"
wandbox.rooturl: "https://wandbox.khongisa.co.za"
wandbox.port: "5000"
---
apiVersion: v1
kind: Secret
metadata:
name: wandbox-secret
namespace: wandbox
type: Opaque
data:
api.key: cG1HeW9xUlBCYW1qdndRV2FRbzZWME9CdmJLS3BFS1RhWlF0bDRndUhMSGpYQlZwc0Y3dnJPZXhXMTNIRWFDRg==
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wandbox-pvc
namespace: wandbox
spec:
accessModes:
- ReadWriteOnce
storageClassName: nfs-storage
resources:
requests:
storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wandbox
namespace: wandbox
labels:
app.kubernetes.io/name: wandbox
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: wandbox
template:
metadata:
labels:
app.kubernetes.io/name: wandbox
spec:
serviceAccountName: wandbox-sa
containers:
- name: wandbox
image: melpon/wandbox:latest
ports:
- containerPort: 5000
env:
- name: WANDBOX_PORT
valueFrom:
configMapKeyRef:
name: wandbox-config
key: wandbox.port
- name: WANDBOX_ROOTURL
valueFrom:
configMapKeyRef:
name: wandbox-config
key: wandbox.rooturl
- name: WANDBOX_DOMAIN
valueFrom:
configMapKeyRef:
name: wandbox-config
key: wandbox.domain
- name: API_KEY
valueFrom:
secretKeyRef:
name: wandbox-secret
key: api.key
volumeMounts:
- name: wandbox-data
mountPath: /data
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "1Gi"
cpu: "500m"
volumes:
- name: wandbox-data
persistentVolumeClaim:
claimName: wandbox-pvc
---
apiVersion: v1
kind: Service
metadata:
name: wandbox-service
namespace: wandbox
spec:
selector:
app.kubernetes.io/name: wandbox
ports:
- name: http
protocol: TCP
port: 80
targetPort: 5000
nodePort: 31003
type: NodePort