feat(k8s): align install.sh with latest opsx-loki version

- cloud auto-detection (ACK/TKE/EKS/CCE/GKE/AKS/K3s/self-hosted) via
  node providerID, used for deployment banner and failure diagnostics
- storage class resolution chain: explicit STORAGE_CLASS > default
  annotation > sole SC; self-hosted clusters without any SC now get a
  zero-dependency static local PV (hostPath DirectoryOrCreate +
  nodeAffinity pin + WaitForFirstConsumer + Retain), LOCAL_STORAGE
  auto/off/force tri-state
- PVC rendered with resolved storageClassName + PVC_SIZE; image
  rendered into deployment via IMAGE env
- rollout failure diagnostics per waiting-reason: ImagePullBackOff
  lists per-cloud registry suggestions, CreateContainerConfigError
  points to secret, PVC Pending suggests per-cloud SC
- colored info/ok/warn/die helpers, /dev/urandom key fallback,
  completion banner with pod/node/ip, port-forward and backup hints
- kubernetes/examples/: alibaba ALB + tencent qcloud (CLB health
  check annotations, NodePort backend) ingress templates, secret
  example moved here (opsx-loki layout)
- README updated with env-var table and local-storage notes
This commit is contained in:
Logan.Li committed 2026-10-26 22:09:33 +08:00
1 parent 0b16488029
commit 738498fea3
4 files changed
+367 -134

No files matched your search

+14
View File
@@ -0,0 +1,14 @@
# 只做模板:不要提交真实密钥。
# 推荐直接用命令创建(避免密钥落盘到 Git;install.sh 已自动处理):
# kubectl -n opsxsql create secret generic opsxsql-secrets \
# --from-literal=SECRET_KEY="$(openssl rand -hex 32)" \
# --from-literal=JWT_SECRET="$(openssl rand -hex 32)"
apiVersion: v1
kind: Secret
metadata:
name: opsxsql-secrets
namespace: opsxsql
type: Opaque
stringData:
SECRET_KEY: "REPLACE_WITH_32_BYTES_HEX"
JWT_SECRET: "REPLACE_WITH_32_BYTES_HEX"