feat: add adminer and vaultwarden apps, integrated from k8s-manifests
This commit is contained in:
14
apps/adminer/deploy.sh
Executable file
14
apps/adminer/deploy.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
BASE_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
MANIFESTS="$BASE_DIR/manifests"
|
||||
|
||||
echo "🚀 部署 Adminer..."
|
||||
|
||||
kubectl apply -f "$MANIFESTS/"
|
||||
|
||||
echo "⏳ 等待 Pod 就緒..."
|
||||
kubectl rollout status deployment/adminer --timeout=120s
|
||||
|
||||
echo "✅ Adminer 部署完成"
|
||||
28
apps/adminer/manifests/adminer-deployment.yaml
Normal file
28
apps/adminer/manifests/adminer-deployment.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: adminer
|
||||
labels:
|
||||
app: adminer
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: adminer
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: adminer
|
||||
spec:
|
||||
containers:
|
||||
- name: adminer
|
||||
image: adminer:latest
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
resources:
|
||||
requests:
|
||||
cpu: "10m"
|
||||
memory: "32Mi"
|
||||
limits:
|
||||
cpu: "200m"
|
||||
memory: "256Mi"
|
||||
35
apps/adminer/manifests/adminer-ingress.yaml
Normal file
35
apps/adminer/manifests/adminer-ingress.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: adminer-ingress
|
||||
labels:
|
||||
app: adminer
|
||||
annotations:
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
|
||||
spec:
|
||||
ingressClassName: traefik
|
||||
tls:
|
||||
- hosts:
|
||||
- adminer.192.168.42.120.nip.io
|
||||
secretName: nip-io-cert
|
||||
rules:
|
||||
- host: adminer.lotimmy.com
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: adminer-service
|
||||
port:
|
||||
number: 80
|
||||
- host: adminer.192.168.42.120.nip.io
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: adminer-service
|
||||
port:
|
||||
number: 80
|
||||
15
apps/adminer/manifests/adminer-service.yaml
Normal file
15
apps/adminer/manifests/adminer-service.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: adminer-service
|
||||
labels:
|
||||
app: adminer
|
||||
spec:
|
||||
selector:
|
||||
app: adminer
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- protocol: TCP
|
||||
name: http
|
||||
port: 80
|
||||
targetPort: 8080
|
||||
20
apps/adminer/status.sh
Executable file
20
apps/adminer/status.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
APP_NAME="adminer"
|
||||
|
||||
echo "=== [ $APP_NAME 資源狀態 ] ==="
|
||||
echo ""
|
||||
|
||||
echo "--- Pods ---"
|
||||
kubectl get pods -l "app=$APP_NAME" -o wide
|
||||
|
||||
echo ""
|
||||
|
||||
echo "--- Services ---"
|
||||
kubectl get svc -l "app=$APP_NAME"
|
||||
|
||||
echo ""
|
||||
|
||||
echo "--- Access (Ingress) ---"
|
||||
kubectl get ingress -l "app=$APP_NAME" -o custom-columns=NAME:.metadata.name,HOSTS:.spec.rules[*].host
|
||||
10
apps/adminer/stop.sh
Executable file
10
apps/adminer/stop.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "🛑 停止 Adminer..."
|
||||
|
||||
kubectl delete deployment/adminer --ignore-not-found
|
||||
kubectl delete service/adminer-service --ignore-not-found
|
||||
kubectl delete ingress/adminer-ingress --ignore-not-found
|
||||
|
||||
echo "✅ Adminer 已停止"
|
||||
Reference in New Issue
Block a user