Charge Spot Quest

Overview

Charge Spot Quest is the 邻里互助·共享充电 UI + booking API. It is deployed via the 72602 ArgoCD GitOps pipeline using Helm chart charge-spot-quest (version 0.1.3) with in-cluster SQLite.

  • ArgoCD Application: argocd/charge-spot-quest (child of argocd/ops-docs)
  • Namespace: charge-spot
  • Service: charge-spot-quest (port 8080)
  • Ingress: charge.72602.space (TLS via cert-manager)
  • Database: SQLite PVC charge-spot-quest-sqlite (1Gi, local-path)

Subsections of Charge Spot Quest

Install (ArgoCD)

🚀Installation

Environment
Install By

Preliminary

1. Kubernetes is installed; if not, check 🔗link


2. Helm is installed; if not, check 🔗link


3. ArgoCD is installed; if not, check 🔗link


1.prepare `charge` DNS A record

Details
# zone 72602.space, RR charge, type A, value 47.110.67.161, TTL 600
# create only when the matching enabled record is absent

2.prepare `charge-spot-quest-argocd.yaml`

Details
git -C /home/aaron/Ops/docs fetch origin main
git -C /home/aaron/Ops/docs \
  show origin/main:manifests/charge-spot-quest-argocd.yaml >/dev/null

argocd app get ops-docs --hard-refresh
argocd app sync ops-docs --revision main
argocd app wait ops-docs --sync --timeout 300

kubectl wait --for=jsonpath='{.status.phase}'=Active \
  namespace/charge-spot --timeout=120s

The parent ops-docs Application reads the manifests path and creates the child Application. The child creates namespace charge-spot through CreateNamespace=true. SQLite is enabled; bundled and external PostgreSQL stay off.

3.sync by argocd

Details
argocd app get charge-spot-quest --hard-refresh
argocd app sync charge-spot-quest
argocd app wait charge-spot-quest --sync --health --timeout 600

4.verify

Details
kubectl -n argocd get application charge-spot-quest \
  -o jsonpath='{.spec.source.repoURL}{"\n"}{.spec.source.path}{"\n"}{.spec.source.targetRevision}{"\n"}'

kubectl -n charge-spot get deployment charge-spot-quest \
  -o jsonpath='{range .spec.template.spec.containers[*]}{.name}{"="}{.image}{"\n"}{end}'

kubectl -n charge-spot rollout status deployment/charge-spot-quest --timeout=600s
kubectl -n charge-spot get pods,svc,ingress,pvc
kubectl -n charge-spot get certificate
kubectl -n charge-spot get pods -l app.kubernetes.io/component=postgresql

curl -fsS https://charge.72602.space/health
curl -fsS https://charge.72602.space/readyz
curl -fsS -o /dev/null -w '%{content_type}\n' https://charge.72602.space/
curl -fsS https://charge.72602.space/api/spots >/dev/null

Expected release values: chart charge-spot-quest version 0.1.3 and image ghcr.io/aaronyang0628/charge-spot-quest@sha256:c5e5b853b783b435f6bb0c369c5fb05ff79757f457714c6de11f4f7720e4aa35. Ingress / returns text/html. PVC charge-spot-quest-sqlite is Bound at 1Gi. TLS certificate charge.72602.space-tls should be Ready with expiry 2026-12-14T06:20:17Z.

📦Rollback Guidance

If a deployment must be reverted, create a reviewed Git revert for manifests/charge-spot-quest-argocd.yaml, push it, and sync the parent application. The SQLite PVC and TLS certificate are not deleted by rollback.

cd /home/aaron/Ops/docs
git fetch origin main
git revert --no-edit fdcbdca
git push origin main
argocd app sync ops-docs --revision main
argocd app wait ops-docs --sync --health --timeout 300