feat(nightscout): migrate from bare-metal LXC to k3s

This commit is contained in:
funman300
2026-05-18 13:47:52 -07:00
parent 70ab699c04
commit e4473578dc
11 changed files with 227 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace.yaml
- nightscout-configmap.yaml
- mongo-pvc.yaml
- mongo-deployment.yaml
- mongo-service.yaml
- nightscout-deployment.yaml
- nightscout-service.yaml
- nightscout-ingress.yaml
+47
View File
@@ -0,0 +1,47 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb
namespace: nightscout
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
strategy:
type: Recreate
template:
metadata:
labels:
app: mongodb
spec:
containers:
- name: mongodb
image: mongo:4.4
ports:
- containerPort: 27017
name: mongo
volumeMounts:
- name: mongo-data
mountPath: /data/db
livenessProbe:
exec:
command: ["mongo", "--eval", "db.adminCommand('ping')"]
initialDelaySeconds: 30
periodSeconds: 30
readinessProbe:
exec:
command: ["mongo", "--eval", "db.adminCommand('ping')"]
initialDelaySeconds: 10
periodSeconds: 10
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 1000m
memory: 512Mi
volumes:
- name: mongo-data
persistentVolumeClaim:
claimName: mongo-data
+11
View File
@@ -0,0 +1,11 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mongo-data
namespace: nightscout
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
+12
View File
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: mongodb
namespace: nightscout
spec:
selector:
app: mongodb
ports:
- port: 27017
targetPort: 27017
name: mongo
+4
View File
@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: nightscout
+14
View File
@@ -0,0 +1,14 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: nightscout-config
namespace: nightscout
data:
DISPLAY_UNITS: "mmol/L"
BASE_URL: "https://ns.aleshym.co"
INSECURE_USE_HTTP: "true"
HOSTNAME: "0.0.0.0"
ENABLE: "careportal basal iob cob bwp cage sage iage bage boluscalc pump openaps loop profile timeago bgnow delta direction upbat errorcodes ar2 rawbg"
AUTH_DEFAULT_ROLES: "careportal"
THEME: "colors"
NODE_ENV: "production"
@@ -0,0 +1,45 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nightscout
namespace: nightscout
spec:
replicas: 1
selector:
matchLabels:
app: nightscout
template:
metadata:
labels:
app: nightscout
spec:
containers:
- name: nightscout
image: nightscout/cgm-remote-monitor:latest
ports:
- containerPort: 1337
name: http
envFrom:
- configMapRef:
name: nightscout-config
- secretRef:
name: nightscout-secret
livenessProbe:
httpGet:
path: /api/v1/status
port: 1337
initialDelaySeconds: 60
periodSeconds: 30
readinessProbe:
httpGet:
path: /api/v1/status
port: 1337
initialDelaySeconds: 30
periodSeconds: 10
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
+25
View File
@@ -0,0 +1,25 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nightscout
namespace: nightscout
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
traefik.ingress.kubernetes.io/router.entrypoints: websecure
spec:
ingressClassName: traefik
rules:
- host: ns.aleshym.co
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nightscout
port:
name: http
tls:
- hosts:
- ns.aleshym.co
secretName: nightscout-tls
@@ -0,0 +1,18 @@
# DO NOT COMMIT THE REAL VERSION OF THIS FILE.
# apps/nightscout/nightscout-secret.yaml is gitignored — apply it manually once:
#
# cp apps/nightscout/nightscout-secret.yaml.example apps/nightscout/nightscout-secret.yaml
# # fill in real values below, then:
# kubectl apply -f apps/nightscout/nightscout-secret.yaml
# kubectl annotate secret nightscout-secret -n nightscout \
# argocd.argoproj.io/sync-options=Prune=false --overwrite
#
# API_SECRET must be at least 12 characters.
apiVersion: v1
kind: Secret
metadata:
name: nightscout-secret
namespace: nightscout
stringData:
API_SECRET: "CHANGE_ME"
MONGODB_URI: "mongodb://mongodb:27017/nightscout"
+12
View File
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: nightscout
namespace: nightscout
spec:
selector:
app: nightscout
ports:
- port: 1337
targetPort: 1337
name: http