Skip to content

Commit 5dd8d5c

Browse files
authored
docs: improve AGENTS.md structure, add external project management and deploy validation (#275)
- Restructure AGENTS.md with clearer sections: quick commands, backend/frontend architecture, development workflow, curl validation guidelines, and external project management - Remove CLAUDE.md, consolidate all agent instructions into AGENTS.md - Add scripts/setup-repos.sh for initializing external reference projects (nacos, higress-doc) - Add docs/design-docs/ref-higress-doc.md as Higress doc site source index - Rename docs/NACOS_SOURCE_INDEX.md to docs/design-docs/ref-nacos.md for consistent organization - Add deploy config validation in Docker install script (size, data dir, image registry checks) - Fix Helm template type safety: use toString pipe for size comparison in _helpers.tpl - Update .gitignore to use reference-projects/ directory pattern
1 parent a7f0d9c commit 5dd8d5c

File tree

13 files changed

+713
-284
lines changed

13 files changed

+713
-284
lines changed

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ push-himarket.sh
6060
### OpenSandbox (local clone, not committed) ###
6161
/OpenSandbox/
6262

63-
### Nacos (local symlink/clone, not committed) ###
64-
/nacos
63+
### Reference projects (local clones/forks, not committed) ###
64+
/reference-projects/
6565

6666
### Kiro (AWS Kira AI coding agent) ###
6767
.kiro/

AGENTS.md

Lines changed: 165 additions & 96 deletions
Large diffs are not rendered by default.

CLAUDE.md

Lines changed: 0 additions & 169 deletions
This file was deleted.

deploy/docker/install.sh

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,22 @@ msg() {
200200
text=" 2) English" ;;
201201
lang.prompt)
202202
[[ "$lang" == "zh" ]] && text="请输入选项" || text="Enter choice" ;;
203+
validate.size_invalid)
204+
[[ "$lang" == "zh" ]] && text="无效的资源规格: '%s',有效值为 small / standard / large" || text="Invalid resource size: '%s', valid values are small / standard / large" ;;
205+
validate.image_checking)
206+
[[ "$lang" == "zh" ]] && text="检查镜像仓库连通性: %s" || text="Checking image registry connectivity: %s" ;;
207+
validate.image_ok)
208+
[[ "$lang" == "zh" ]] && text="镜像仓库可达 ✓" || text="Image registry reachable ✓" ;;
209+
validate.image_warn)
210+
[[ "$lang" == "zh" ]] && text="无法连接镜像仓库 %s,部署时可能拉取镜像失败" || text="Cannot reach image registry %s, image pull may fail during deployment" ;;
211+
validate.data_dir_ok)
212+
[[ "$lang" == "zh" ]] && text="数据目录可用: %s ✓" || text="Data directory available: %s ✓" ;;
213+
validate.data_dir_fail)
214+
[[ "$lang" == "zh" ]] && text="无法创建数据目录: %s" || text="Cannot create data directory: %s" ;;
215+
validate.all_ok)
216+
[[ "$lang" == "zh" ]] && text="配置校验通过 ✓" || text="Config validation passed ✓" ;;
217+
validate.title)
218+
[[ "$lang" == "zh" ]] && text="--- 配置校验 ---" || text="--- Config Validation ---" ;;
203219
*)
204220
text="${key}" ;;
205221
esac
@@ -991,6 +1007,51 @@ docker_preflight() {
9911007
log "$(msg deploy.preflight_ok "Docker ${docker_ver}")"
9921008
}
9931009

1010+
# ── validate_config — 部署前校验用户配置 ─────────────────────────────────────
1011+
validate_config() {
1012+
log ""
1013+
log "$(msg validate.title)"
1014+
local has_error=false
1015+
1016+
# 1. 校验 HIMARKET_SIZE 值
1017+
case "${HIMARKET_SIZE}" in
1018+
small|standard|large) ;;
1019+
*)
1020+
warn "$(msg validate.size_invalid "${HIMARKET_SIZE}")"
1021+
has_error=true
1022+
;;
1023+
esac
1024+
1025+
# 2. 校验数据目录可写
1026+
if [[ -n "${HIMARKET_DATA_DIR:-}" ]]; then
1027+
if mkdir -p "${HIMARKET_DATA_DIR}" 2>/dev/null; then
1028+
log "$(msg validate.data_dir_ok "${HIMARKET_DATA_DIR}")"
1029+
else
1030+
warn "$(msg validate.data_dir_fail "${HIMARKET_DATA_DIR}")"
1031+
has_error=true
1032+
fi
1033+
fi
1034+
1035+
# 3. 校验镜像仓库连通性(仅警告,不阻断)
1036+
local registry_host
1037+
registry_host=$(echo "${HIMARKET_SERVER_IMAGE}" | cut -d'/' -f1)
1038+
log "$(msg validate.image_checking "${registry_host}")"
1039+
if curl -s --connect-timeout 5 --max-time 10 "https://${registry_host}/v2/" >/dev/null 2>&1 \
1040+
|| curl -s --connect-timeout 5 --max-time 10 "http://${registry_host}/v2/" >/dev/null 2>&1; then
1041+
log "$(msg validate.image_ok)"
1042+
else
1043+
warn "$(msg validate.image_warn "${registry_host}")"
1044+
fi
1045+
1046+
# 校验失败则终止
1047+
if [[ "${has_error}" == "true" ]]; then
1048+
error "$(msg validate.title) — FAILED"
1049+
fi
1050+
1051+
log "$(msg validate.all_ok)"
1052+
log ""
1053+
}
1054+
9941055
deploy_all() {
9951056
# 1. 预检查
9961057
docker_preflight
@@ -1001,6 +1062,9 @@ deploy_all() {
10011062
# 3. 交互式配置
10021063
interactive_config
10031064

1065+
# 3.5 配置校验(size、数据目录、镜像仓库等)
1066+
validate_config
1067+
10041068
# 4. 重新安装模式:先清理现有资源
10051069
if [[ "${DEPLOY_MODE}" == "reinstall" ]]; then
10061070
log "$(msg install.reinstall_cleaning)"

deploy/helm/himarket/templates/_helpers.tpl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ Map a size name (small/standard/large) to resource requests/limits.
77
Usage: {{ include "himarket.sizeToResources" "standard" }}
88
*/}}
99
{{- define "himarket.sizeToResources" -}}
10-
{{- if eq . "small" }}
10+
{{- if eq (. | toString) "small" }}
1111
requests:
1212
cpu: "1"
1313
memory: "2Gi"
1414
limits:
1515
cpu: "1"
1616
memory: "2Gi"
17-
{{- else if eq . "large" }}
17+
{{- else if eq (. | toString) "large" }}
1818
requests:
1919
cpu: "4"
2020
memory: "8Gi"
@@ -36,22 +36,22 @@ Map a size name to replica count. Only "large" gets 2 replicas.
3636
Usage: {{ include "himarket.sizeToReplicas" "standard" }}
3737
*/}}
3838
{{- define "himarket.sizeToReplicas" -}}
39-
{{- if eq . "large" }}2{{- else }}1{{- end }}
39+
{{- if eq (. | toString) "large" }}2{{- else }}1{{- end }}
4040
{{- end }}
4141

4242
{{/*
4343
Lightweight resource profile for Nginx-based frontend containers.
4444
Usage: {{ include "himarket.sizeToResourcesLight" "standard" }}
4545
*/}}
4646
{{- define "himarket.sizeToResourcesLight" -}}
47-
{{- if eq . "small" }}
47+
{{- if eq (. | toString) "small" }}
4848
requests:
4949
cpu: "0.5"
5050
memory: "512Mi"
5151
limits:
5252
cpu: "0.5"
5353
memory: "512Mi"
54-
{{- else if eq . "large" }}
54+
{{- else if eq (. | toString) "large" }}
5555
requests:
5656
cpu: "2"
5757
memory: "2Gi"

deploy/helm/himarket/templates/himarket-admin-deployment.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
labels:
66
app: himarket-admin
77
spec:
8-
replicas: {{ .Values.admin.replicaCount | default (include "himarket.sizeToReplicas" (.Values.admin.size | default .Values.size)) }}
8+
replicas: {{ .Values.admin.replicaCount | default (include "himarket.sizeToReplicas" ((.Values.admin.size | default .Values.size) | toString)) }}
99
selector:
1010
matchLabels:
1111
app: himarket-admin
@@ -31,7 +31,7 @@ spec:
3131
- configMapRef:
3232
name: himarket-admin
3333
resources:
34-
{{- include "himarket.sizeToResourcesLight" (.Values.admin.size | default .Values.size) | nindent 12 }}
34+
{{- include "himarket.sizeToResourcesLight" ((.Values.admin.size | default .Values.size) | toString) | nindent 12 }}
3535
{{- with .Values.volumeMounts }}
3636
volumeMounts:
3737
{{- toYaml . | nindent 12 }}

deploy/helm/himarket/templates/himarket-frontend-deployment.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
labels:
66
app: himarket-frontend
77
spec:
8-
replicas: {{ .Values.frontend.replicaCount | default (include "himarket.sizeToReplicas" (.Values.frontend.size | default .Values.size)) }}
8+
replicas: {{ .Values.frontend.replicaCount | default (include "himarket.sizeToReplicas" ((.Values.frontend.size | default .Values.size) | toString)) }}
99
selector:
1010
matchLabels:
1111
app: himarket-frontend
@@ -31,7 +31,7 @@ spec:
3131
- configMapRef:
3232
name: himarket-frontend
3333
resources:
34-
{{- include "himarket.sizeToResourcesLight" (.Values.frontend.size | default .Values.size) | nindent 12 }}
34+
{{- include "himarket.sizeToResourcesLight" ((.Values.frontend.size | default .Values.size) | toString) | nindent 12 }}
3535
{{- with .Values.volumeMounts }}
3636
volumeMounts:
3737
{{- toYaml . | nindent 12 }}

deploy/helm/himarket/templates/himarket-server-deployment.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
labels:
66
app: himarket-server
77
spec:
8-
replicas: {{ .Values.server.replicaCount | default (include "himarket.sizeToReplicas" (.Values.server.size | default .Values.size)) }}
8+
replicas: {{ .Values.server.replicaCount | default (include "himarket.sizeToReplicas" ((.Values.server.size | default .Values.size) | toString)) }}
99
selector:
1010
matchLabels:
1111
app: himarket-server
@@ -41,7 +41,7 @@ spec:
4141
{{/* {{- toYaml . | nindent 12 }}*/}}
4242
{{/* {{- end }}*/}}
4343
resources:
44-
{{- include "himarket.sizeToResources" (.Values.server.size | default .Values.size) | nindent 12 }}
44+
{{- include "himarket.sizeToResources" ((.Values.server.size | default .Values.size) | toString) | nindent 12 }}
4545
{{- with .Values.volumeMounts }}
4646
volumeMounts:
4747
{{- toYaml . | nindent 12 }}

0 commit comments

Comments
 (0)