Revert "fix(cf): dnsproxy name support and dnsadd on/off"
This reverts commit 73a829a4e9.
This commit is contained in:
@@ -1,79 +0,0 @@
|
||||
# CF DNS 命令修复与扩展记录(2026-03-19)
|
||||
|
||||
## 背景
|
||||
用户要求:
|
||||
- `/cf dnsproxy` 支持直接用域名,例如:`/cf dnsproxy ima.good.xx.kg on`
|
||||
- `/cf dnsadd` 最后参数用 `on/off` 表示是否开启代理
|
||||
|
||||
线上报错:
|
||||
- `yaml: line 8: did not find expected key`
|
||||
- `/cf dnsproxy` 解析失败(bash: bad substitution)
|
||||
|
||||
## 改动概览
|
||||
1) **命令解析**
|
||||
- `internal/module/cf/commands.go`
|
||||
- `/cf dnsproxy` 支持 `record_id|name`
|
||||
- `/cf dnsadd` 支持 `on/off`(兼容 true/false;当未提供 on/off 时把第4参数视为类型)
|
||||
|
||||
2) **帮助文案**
|
||||
- `internal/module/cf/module.go`
|
||||
- `internal/core/ops/service.go`
|
||||
- 更新 `/cf dnsadd` 与 `/cf dnsproxy` 的参数示例
|
||||
|
||||
3) **runbook 修复**
|
||||
- `runbooks/cf_dns_proxy.yaml`
|
||||
- 解决 YAML 行内命令渲染与变量替换问题
|
||||
- 修复 `${env.INPUT_RECORD_ID}` 未替换导致 bash 报错
|
||||
- 加入占位值 `__empty__`,避免空变量导致替换缺失
|
||||
- `update_dns` 中 JSON 通过单引号包裹,避免 shell 分词/换行破坏
|
||||
|
||||
4) **ops-runner 支持**
|
||||
- `cmd/ops-runner/main.go`
|
||||
- 增加 `/cf dnsproxy` 支持
|
||||
- `/cf dnsadd` 参数改为 on/off
|
||||
|
||||
## 问题与修复记录
|
||||
### 1. YAML 解析错误
|
||||
- 现象:`yaml: line 8: did not find expected key`
|
||||
- 原因:runbook 中 command 复杂引号/换行组合导致 YAML 解析失败
|
||||
- 修复:重写 `cf_dns_proxy.yaml` command 区块
|
||||
|
||||
### 2. dnsproxy 变量替换失败
|
||||
- 现象:`bash: ${env.INPUT_RECORD_ID}: bad substitution`
|
||||
- 原因:输入为空时,没有替换占位,shell 直接解析 `${env.INPUT_RECORD_ID}`
|
||||
- 修复:InputsFn 总是注入 `record_id/name` 占位值,runbook 将 `__empty__` 转为空
|
||||
|
||||
### 3. dnsproxy update 失败(JSON 被 shell 吞掉)
|
||||
- 现象:`bash: line 1: true,: command not found`
|
||||
- 原因:`${steps.resolve_dns.output}` 未加引号,JSON 被 shell 拆分
|
||||
- 修复:`INPUT_JSON='${steps.resolve_dns.output}'`
|
||||
|
||||
### 4. dnsadd on/off 支持
|
||||
- 现象:`DNS record type "on" is invalid`
|
||||
- 原因:解析逻辑未识别 on/off,误当作类型
|
||||
- 修复:InputsFn 与 ops-runner 同步支持 `on/off`
|
||||
|
||||
### 5. 测试记录创建失败(127.0.0.1)
|
||||
- 现象:`Target 127.0.0.1 is not allowed for a proxied record`
|
||||
- 处理:改用公网 IP 199.188.198.12
|
||||
|
||||
## 测试结果
|
||||
1) 新增测试记录
|
||||
```
|
||||
/cf dnsadd test001.good.xx.kg 199.188.198.12 on
|
||||
```
|
||||
- 成功创建,proxied=true
|
||||
|
||||
2) 代理切换
|
||||
```
|
||||
/cf dnsproxy ima.good.xx.kg on
|
||||
```
|
||||
- 成功更新,proxied=true
|
||||
|
||||
## 产物
|
||||
- 修复代码与 runbook
|
||||
- 版本化二进制输出(dist/ 目录)
|
||||
|
||||
## 注意事项
|
||||
- proxied=on 不能指向 127.0.0.1 等内网回环地址
|
||||
- runbook command 中 JSON 建议统一使用单引号包裹
|
||||
Reference in New Issue
Block a user