ccgx-workflow 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -5
- package/README.zh-CN.md +35 -5
- package/dist/cli.mjs +1 -1
- package/dist/index.mjs +2 -2
- package/dist/shared/{ccgx-workflow.WgUzkiC3.mjs → ccgx-workflow.SJPbUy5_.mjs} +17 -110
- package/package.json +2 -1
- package/templates/commands/agents/phase-runner.md +321 -321
- package/templates/commands/autonomous.md +792 -792
- package/templates/commands/cancel.md +132 -132
- package/templates/commands/debug.md +226 -226
- package/templates/commands/status.md +206 -206
- package/templates/commands/team.md +484 -0
- package/templates/hooks/ccg-session-state.cjs +510 -510
- package/templates/scripts/ccg-phase-runner-launcher.mjs +467 -467
- package/templates/scripts/invoke-model.mjs +64 -0
- package/templates/skills/domains/ai/SKILL.md +35 -35
- package/templates/skills/domains/ai/agent-dev.md +242 -242
- package/templates/skills/domains/ai/llm-security.md +288 -288
- package/templates/skills/domains/ai/rag-system.md +542 -542
- package/templates/skills/domains/architecture/SKILL.md +43 -43
- package/templates/skills/domains/architecture/api-design.md +225 -225
- package/templates/skills/domains/architecture/cloud-native.md +285 -285
- package/templates/skills/domains/architecture/security-arch.md +297 -297
- package/templates/skills/domains/data-engineering/SKILL.md +208 -208
- package/templates/skills/domains/development/SKILL.md +47 -47
- package/templates/skills/domains/development/cpp.md +246 -246
- package/templates/skills/domains/development/go.md +323 -323
- package/templates/skills/domains/development/java.md +277 -277
- package/templates/skills/domains/development/python.md +288 -288
- package/templates/skills/domains/development/rust.md +313 -313
- package/templates/skills/domains/development/shell.md +313 -313
- package/templates/skills/domains/development/typescript.md +277 -277
- package/templates/skills/domains/devops/SKILL.md +40 -40
- package/templates/skills/domains/devops/database.md +217 -217
- package/templates/skills/domains/devops/devsecops.md +198 -198
- package/templates/skills/domains/devops/git-workflow.md +181 -181
- package/templates/skills/domains/devops/testing.md +283 -283
- package/templates/skills/domains/frontend-design/SKILL.md +244 -244
- package/templates/skills/domains/frontend-design/claymorphism/SKILL.md +121 -121
- package/templates/skills/domains/frontend-design/component-patterns.md +202 -202
- package/templates/skills/domains/frontend-design/glassmorphism/SKILL.md +142 -142
- package/templates/skills/domains/frontend-design/liquid-glass/SKILL.md +139 -139
- package/templates/skills/domains/frontend-design/neubrutalism/SKILL.md +145 -145
- package/templates/skills/domains/frontend-design/state-management.md +680 -680
- package/templates/skills/domains/frontend-design/ui-aesthetics.md +110 -110
- package/templates/skills/domains/frontend-design/ux-principles.md +156 -156
- package/templates/skills/domains/infrastructure/SKILL.md +201 -201
- package/templates/skills/domains/mobile/SKILL.md +225 -225
- package/templates/skills/domains/orchestration/SKILL.md +30 -30
- package/templates/skills/domains/orchestration/multi-agent.md +228 -228
- package/templates/skills/domains/security/SKILL.md +73 -73
- package/templates/skills/domains/security/blue-team.md +436 -436
- package/templates/skills/domains/security/code-audit.md +265 -265
- package/templates/skills/domains/security/pentest.md +226 -226
- package/templates/skills/domains/security/red-team.md +374 -374
- package/templates/skills/domains/security/threat-intel.md +372 -372
- package/templates/skills/domains/security/vuln-research.md +369 -369
- package/templates/skills/tools/lib/shared.js +98 -98
- package/templates/skills/tools/override-refusal/SKILL.md +53 -53
- package/templates/skills/tools/override-refusal/scripts/refusal_rewriter.js +226 -226
|
@@ -1,201 +1,201 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: infrastructure
|
|
3
|
-
description: 云原生基础设施(K8s/Helm/Operator/GitOps/ArgoCD/Flux/IaC/Terraform)。
|
|
4
|
-
license: MIT
|
|
5
|
-
user-invocable: false
|
|
6
|
-
disable-model-invocation: false
|
|
7
|
-
context: fork
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# 云原生基础设施 · Infrastructure
|
|
11
|
-
|
|
12
|
-
## 域概览
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
GitOps 控制平面
|
|
16
|
-
|
|
|
17
|
-
+-----------------+-----------------+
|
|
18
|
-
| | |
|
|
19
|
-
ArgoCD/Flux Kubernetes IaC 层
|
|
20
|
-
| | |
|
|
21
|
-
Git Repo ------> Helm/Kustomize --> Terraform/Pulumi
|
|
22
|
-
| | |
|
|
23
|
-
声明式配置 容器编排 云资源管理
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Kubernetes 容器编排
|
|
29
|
-
|
|
30
|
-
### Helm Chart 开发
|
|
31
|
-
|
|
32
|
-
标准结构:`Chart.yaml` + `values.yaml` + `templates/` + `charts/`
|
|
33
|
-
|
|
34
|
-
核心要点:
|
|
35
|
-
- Chart.yaml:`apiVersion: v2`, dependencies 声明子 Chart(condition 控制启用)
|
|
36
|
-
- values.yaml 设计:image / replicaCount / resources / autoscaling / service / ingress / probes / env / persistence
|
|
37
|
-
- Deployment 模板:使用 `_helpers.tpl` 定义 `fullname` / `labels` / `selectorLabels`
|
|
38
|
-
- 配置校验:`checksum/config: {{ include ... | sha256sum }}` 触发滚动更新
|
|
39
|
-
- 安全上下文:`runAsNonRoot: true, runAsUser: 1000`
|
|
40
|
-
|
|
41
|
-
关键命令:
|
|
42
|
-
- `helm lint` / `helm template --debug` 验证
|
|
43
|
-
- `helm install -f values-prod.yaml` 部署
|
|
44
|
-
- `helm upgrade --reuse-values` 升级
|
|
45
|
-
- `helm rollback <release> <revision>` 回滚
|
|
46
|
-
- `helm push <chart>.tgz oci://registry` 推送 OCI
|
|
47
|
-
|
|
48
|
-
### Kustomize 配置管理
|
|
49
|
-
|
|
50
|
-
目录结构:`base/` + `overlays/{dev,staging,production}/`
|
|
51
|
-
|
|
52
|
-
核心能力:
|
|
53
|
-
- base/kustomization.yaml:resources / commonLabels / images / configMapGenerator / secretGenerator
|
|
54
|
-
- overlay:namespace / patchesStrategicMerge / patchesJson6902 / replicas / images / configMapGenerator(behavior: merge)
|
|
55
|
-
- 命令:`kubectl apply -k overlays/production` / `kubectl diff -k`
|
|
56
|
-
|
|
57
|
-
### Operator 模式
|
|
58
|
-
|
|
59
|
-
- CRD 定义:openAPIV3Schema 声明 spec/status,subresources(status/scale)
|
|
60
|
-
- Controller 核心循环:Get CR → 构建期望状态 → Create/Update 子资源 → 更新 Status
|
|
61
|
-
- OwnerReferences:子资源关联 CR,级联删除
|
|
62
|
-
- 初始化:`operator-sdk init` → `create api` → `make manifests` → `make install`
|
|
63
|
-
|
|
64
|
-
### 部署策略
|
|
65
|
-
|
|
66
|
-
| 策略 | 实现方式 | 适用场景 |
|
|
67
|
-
|------|----------|----------|
|
|
68
|
-
| 滚动更新 | `strategy.rollingUpdate` maxSurge/maxUnavailable | 默认策略 |
|
|
69
|
-
| 蓝绿部署 | 两个 Deployment + Service selector 切换 | 零停机切换 |
|
|
70
|
-
| 金丝雀 | stable(9) + canary(1) 共享 Service | 渐进式验证 |
|
|
71
|
-
| Flagger | `Canary` CRD + 自动分析指标 | 自动化金丝雀 |
|
|
72
|
-
|
|
73
|
-
### K8s Checklist
|
|
74
|
-
|
|
75
|
-
- [ ] 健康检查:livenessProbe + readinessProbe 必配
|
|
76
|
-
- [ ] 资源限制:requests + limits 防止资源耗尽
|
|
77
|
-
- [ ] HPA:CPU/Memory/自定义指标自动扩缩容
|
|
78
|
-
- [ ] PDB:`minAvailable` 防止滚动更新中断
|
|
79
|
-
- [ ] ResourceQuota + LimitRange:命名空间资源配额
|
|
80
|
-
- [ ] 镜像使用 Digest 确保一致性
|
|
81
|
-
- [ ] Pod 反亲和性分散到不同节点
|
|
82
|
-
- [ ] 密钥外部化:External Secrets Operator
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## GitOps 持续部署
|
|
87
|
-
|
|
88
|
-
### ArgoCD vs Flux
|
|
89
|
-
|
|
90
|
-
| 特性 | ArgoCD | Flux |
|
|
91
|
-
|------|--------|------|
|
|
92
|
-
| Web UI | 功能强大 | 无(可用 Weave GitOps) |
|
|
93
|
-
| 多租户 | Projects + RBAC | 需额外配置 |
|
|
94
|
-
| 多集群 | 原生支持 | 原生支持 |
|
|
95
|
-
| 镜像自动更新 | 需 Image Updater | 原生支持 |
|
|
96
|
-
| 渐进式交付 | Argo Rollouts | Flagger |
|
|
97
|
-
| CNCF | Graduated | Graduated |
|
|
98
|
-
|
|
99
|
-
### ArgoCD 核心模式
|
|
100
|
-
|
|
101
|
-
- Application:source(repoURL/path/targetRevision) + destination(server/namespace)
|
|
102
|
-
- syncPolicy:`automated(prune: true, selfHeal: true)` + retry
|
|
103
|
-
- ignoreDifferences:忽略 HPA 修改的 `/spec/replicas`
|
|
104
|
-
- ApplicationSet:Git 目录生成器,一套模板管理多环境
|
|
105
|
-
- 多集群:`argocd cluster add` 注册集群
|
|
106
|
-
- Notifications:ConfigMap 配置 Slack/Email 通知模板
|
|
107
|
-
- Rollouts:`Canary` CRD + steps(setWeight/pause) + AnalysisTemplate(Prometheus 查询)
|
|
108
|
-
|
|
109
|
-
### Flux 核心模式
|
|
110
|
-
|
|
111
|
-
- GitRepository:`interval: 1m`, ref branch, secretRef
|
|
112
|
-
- Kustomization:path + prune + healthChecks + postBuild substitute
|
|
113
|
-
- HelmRepository + HelmRelease:chart + values + install/upgrade remediation
|
|
114
|
-
- ImageRepository + ImagePolicy + ImageUpdateAutomation:自动检测新镜像并提交 Git
|
|
115
|
-
|
|
116
|
-
### 多环境管理
|
|
117
|
-
|
|
118
|
-
```
|
|
119
|
-
fleet-infra/
|
|
120
|
-
├── clusters/{dev,staging,production}/ # 每集群入口
|
|
121
|
-
├── infrastructure/base + overlays/ # 基础组件
|
|
122
|
-
└── apps/base + overlays/ # 应用配置
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### 密钥管理
|
|
126
|
-
|
|
127
|
-
- Sealed Secrets:`kubeseal` 加密 → 提交 Git → Controller 解密
|
|
128
|
-
- External Secrets Operator:SecretStore(AWS SM) + ExternalSecret → 自动同步
|
|
129
|
-
|
|
130
|
-
### GitOps Checklist
|
|
131
|
-
|
|
132
|
-
- [ ] Git 为唯一真相源,所有变更通过 PR
|
|
133
|
-
- [ ] 自动同步 + 自愈(selfHeal)
|
|
134
|
-
- [ ] 密钥加密存储(Sealed Secrets / External Secrets)
|
|
135
|
-
- [ ] 渐进式交付(Rollouts / Flagger)
|
|
136
|
-
- [ ] 多环境目录隔离
|
|
137
|
-
- [ ] 回滚策略:保留历史版本
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## 基础设施即代码 (IaC)
|
|
142
|
-
|
|
143
|
-
### 工具对比
|
|
144
|
-
|
|
145
|
-
| 工具 | 语言 | 状态管理 | 云支持 | 学习曲线 |
|
|
146
|
-
|------|------|----------|--------|----------|
|
|
147
|
-
| Terraform | HCL | 显式(S3/TF Cloud) | 全平台 | 中等 |
|
|
148
|
-
| Pulumi | Python/TS/Go | 自动(Pulumi Cloud) | 全平台 | 较低 |
|
|
149
|
-
| AWS CDK | Python/TS | CloudFormation | AWS | 中等 |
|
|
150
|
-
|
|
151
|
-
### Terraform 核心模式
|
|
152
|
-
|
|
153
|
-
项目结构:`modules/{vpc,eks,rds}/` + `environments/{dev,staging,prod}/`
|
|
154
|
-
|
|
155
|
-
- Provider:版本锁定 `required_providers` + `default_tags`
|
|
156
|
-
- Backend:S3 + DynamoDB 锁 + KMS 加密
|
|
157
|
-
- 模块化:`variable` → `resource` → `output`,环境通过 `module` 引用
|
|
158
|
-
- 远程状态:`data "terraform_remote_state"` 跨模块引用
|
|
159
|
-
- 命令流:`init` → `validate` → `fmt` → `plan -out=tfplan` → `apply tfplan`
|
|
160
|
-
- 状态管理:`state list/show/mv/rm` / `import` 导入现有资源
|
|
161
|
-
- Workspace:`workspace new/select` 多环境隔离
|
|
162
|
-
|
|
163
|
-
### Pulumi 核心模式
|
|
164
|
-
|
|
165
|
-
- ComponentResource:自定义资源组(VPC/EKS 封装为类)
|
|
166
|
-
- Config:`pulumi.Config()` 读取 stack 配置
|
|
167
|
-
- Outputs:`pulumi.export()` 导出值
|
|
168
|
-
- 命令:`preview` → `up` → `stack output` / `destroy`
|
|
169
|
-
|
|
170
|
-
### AWS CDK 核心模式
|
|
171
|
-
|
|
172
|
-
- Stack:继承 `Stack`,使用 L2 Constructs(`ec2.Vpc` / `eks.Cluster`)
|
|
173
|
-
- 跨 Stack 引用:通过构造函数参数传递
|
|
174
|
-
- 命令:`synth` → `diff` → `deploy --all` / `bootstrap`
|
|
175
|
-
|
|
176
|
-
### IaC Checklist
|
|
177
|
-
|
|
178
|
-
- [ ] 模块化:可复用组件抽象为模块
|
|
179
|
-
- [ ] 环境隔离:不同环境不同 State
|
|
180
|
-
- [ ] 远程状态 + 状态锁定
|
|
181
|
-
- [ ] Provider 版本锁定
|
|
182
|
-
- [ ] 密钥管理:Secrets Manager / SSM
|
|
183
|
-
- [ ] 统一资源标签
|
|
184
|
-
- [ ] Plan 后人工审查再 Apply
|
|
185
|
-
- [ ] CI/CD 集成自动化
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
## 最佳实践
|
|
190
|
-
|
|
191
|
-
| 层级 | 工具选择 | 原则 |
|
|
192
|
-
|------|----------|------|
|
|
193
|
-
| 应用部署 | Helm + Kustomize | 模板化 + 环境差异 |
|
|
194
|
-
| 持续交付 | ArgoCD / Flux | Git 为唯一真相源 |
|
|
195
|
-
| 基础设施 | Terraform / Pulumi | 声明式 + 状态管理 |
|
|
196
|
-
| 配置管理 | External Secrets | 密钥外部化 |
|
|
197
|
-
| 可观测性 | Prometheus + Grafana | 指标 + 可视化 |
|
|
198
|
-
|
|
199
|
-
## 触发词
|
|
200
|
-
|
|
201
|
-
Kubernetes、K8s、Helm、Kustomize、Operator、CRD、GitOps、ArgoCD、Flux、IaC、Terraform、Pulumi、CDK、基础设施即代码
|
|
1
|
+
---
|
|
2
|
+
name: infrastructure
|
|
3
|
+
description: 云原生基础设施(K8s/Helm/Operator/GitOps/ArgoCD/Flux/IaC/Terraform)。
|
|
4
|
+
license: MIT
|
|
5
|
+
user-invocable: false
|
|
6
|
+
disable-model-invocation: false
|
|
7
|
+
context: fork
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 云原生基础设施 · Infrastructure
|
|
11
|
+
|
|
12
|
+
## 域概览
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
GitOps 控制平面
|
|
16
|
+
|
|
|
17
|
+
+-----------------+-----------------+
|
|
18
|
+
| | |
|
|
19
|
+
ArgoCD/Flux Kubernetes IaC 层
|
|
20
|
+
| | |
|
|
21
|
+
Git Repo ------> Helm/Kustomize --> Terraform/Pulumi
|
|
22
|
+
| | |
|
|
23
|
+
声明式配置 容器编排 云资源管理
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Kubernetes 容器编排
|
|
29
|
+
|
|
30
|
+
### Helm Chart 开发
|
|
31
|
+
|
|
32
|
+
标准结构:`Chart.yaml` + `values.yaml` + `templates/` + `charts/`
|
|
33
|
+
|
|
34
|
+
核心要点:
|
|
35
|
+
- Chart.yaml:`apiVersion: v2`, dependencies 声明子 Chart(condition 控制启用)
|
|
36
|
+
- values.yaml 设计:image / replicaCount / resources / autoscaling / service / ingress / probes / env / persistence
|
|
37
|
+
- Deployment 模板:使用 `_helpers.tpl` 定义 `fullname` / `labels` / `selectorLabels`
|
|
38
|
+
- 配置校验:`checksum/config: {{ include ... | sha256sum }}` 触发滚动更新
|
|
39
|
+
- 安全上下文:`runAsNonRoot: true, runAsUser: 1000`
|
|
40
|
+
|
|
41
|
+
关键命令:
|
|
42
|
+
- `helm lint` / `helm template --debug` 验证
|
|
43
|
+
- `helm install -f values-prod.yaml` 部署
|
|
44
|
+
- `helm upgrade --reuse-values` 升级
|
|
45
|
+
- `helm rollback <release> <revision>` 回滚
|
|
46
|
+
- `helm push <chart>.tgz oci://registry` 推送 OCI
|
|
47
|
+
|
|
48
|
+
### Kustomize 配置管理
|
|
49
|
+
|
|
50
|
+
目录结构:`base/` + `overlays/{dev,staging,production}/`
|
|
51
|
+
|
|
52
|
+
核心能力:
|
|
53
|
+
- base/kustomization.yaml:resources / commonLabels / images / configMapGenerator / secretGenerator
|
|
54
|
+
- overlay:namespace / patchesStrategicMerge / patchesJson6902 / replicas / images / configMapGenerator(behavior: merge)
|
|
55
|
+
- 命令:`kubectl apply -k overlays/production` / `kubectl diff -k`
|
|
56
|
+
|
|
57
|
+
### Operator 模式
|
|
58
|
+
|
|
59
|
+
- CRD 定义:openAPIV3Schema 声明 spec/status,subresources(status/scale)
|
|
60
|
+
- Controller 核心循环:Get CR → 构建期望状态 → Create/Update 子资源 → 更新 Status
|
|
61
|
+
- OwnerReferences:子资源关联 CR,级联删除
|
|
62
|
+
- 初始化:`operator-sdk init` → `create api` → `make manifests` → `make install`
|
|
63
|
+
|
|
64
|
+
### 部署策略
|
|
65
|
+
|
|
66
|
+
| 策略 | 实现方式 | 适用场景 |
|
|
67
|
+
|------|----------|----------|
|
|
68
|
+
| 滚动更新 | `strategy.rollingUpdate` maxSurge/maxUnavailable | 默认策略 |
|
|
69
|
+
| 蓝绿部署 | 两个 Deployment + Service selector 切换 | 零停机切换 |
|
|
70
|
+
| 金丝雀 | stable(9) + canary(1) 共享 Service | 渐进式验证 |
|
|
71
|
+
| Flagger | `Canary` CRD + 自动分析指标 | 自动化金丝雀 |
|
|
72
|
+
|
|
73
|
+
### K8s Checklist
|
|
74
|
+
|
|
75
|
+
- [ ] 健康检查:livenessProbe + readinessProbe 必配
|
|
76
|
+
- [ ] 资源限制:requests + limits 防止资源耗尽
|
|
77
|
+
- [ ] HPA:CPU/Memory/自定义指标自动扩缩容
|
|
78
|
+
- [ ] PDB:`minAvailable` 防止滚动更新中断
|
|
79
|
+
- [ ] ResourceQuota + LimitRange:命名空间资源配额
|
|
80
|
+
- [ ] 镜像使用 Digest 确保一致性
|
|
81
|
+
- [ ] Pod 反亲和性分散到不同节点
|
|
82
|
+
- [ ] 密钥外部化:External Secrets Operator
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## GitOps 持续部署
|
|
87
|
+
|
|
88
|
+
### ArgoCD vs Flux
|
|
89
|
+
|
|
90
|
+
| 特性 | ArgoCD | Flux |
|
|
91
|
+
|------|--------|------|
|
|
92
|
+
| Web UI | 功能强大 | 无(可用 Weave GitOps) |
|
|
93
|
+
| 多租户 | Projects + RBAC | 需额外配置 |
|
|
94
|
+
| 多集群 | 原生支持 | 原生支持 |
|
|
95
|
+
| 镜像自动更新 | 需 Image Updater | 原生支持 |
|
|
96
|
+
| 渐进式交付 | Argo Rollouts | Flagger |
|
|
97
|
+
| CNCF | Graduated | Graduated |
|
|
98
|
+
|
|
99
|
+
### ArgoCD 核心模式
|
|
100
|
+
|
|
101
|
+
- Application:source(repoURL/path/targetRevision) + destination(server/namespace)
|
|
102
|
+
- syncPolicy:`automated(prune: true, selfHeal: true)` + retry
|
|
103
|
+
- ignoreDifferences:忽略 HPA 修改的 `/spec/replicas`
|
|
104
|
+
- ApplicationSet:Git 目录生成器,一套模板管理多环境
|
|
105
|
+
- 多集群:`argocd cluster add` 注册集群
|
|
106
|
+
- Notifications:ConfigMap 配置 Slack/Email 通知模板
|
|
107
|
+
- Rollouts:`Canary` CRD + steps(setWeight/pause) + AnalysisTemplate(Prometheus 查询)
|
|
108
|
+
|
|
109
|
+
### Flux 核心模式
|
|
110
|
+
|
|
111
|
+
- GitRepository:`interval: 1m`, ref branch, secretRef
|
|
112
|
+
- Kustomization:path + prune + healthChecks + postBuild substitute
|
|
113
|
+
- HelmRepository + HelmRelease:chart + values + install/upgrade remediation
|
|
114
|
+
- ImageRepository + ImagePolicy + ImageUpdateAutomation:自动检测新镜像并提交 Git
|
|
115
|
+
|
|
116
|
+
### 多环境管理
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
fleet-infra/
|
|
120
|
+
├── clusters/{dev,staging,production}/ # 每集群入口
|
|
121
|
+
├── infrastructure/base + overlays/ # 基础组件
|
|
122
|
+
└── apps/base + overlays/ # 应用配置
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 密钥管理
|
|
126
|
+
|
|
127
|
+
- Sealed Secrets:`kubeseal` 加密 → 提交 Git → Controller 解密
|
|
128
|
+
- External Secrets Operator:SecretStore(AWS SM) + ExternalSecret → 自动同步
|
|
129
|
+
|
|
130
|
+
### GitOps Checklist
|
|
131
|
+
|
|
132
|
+
- [ ] Git 为唯一真相源,所有变更通过 PR
|
|
133
|
+
- [ ] 自动同步 + 自愈(selfHeal)
|
|
134
|
+
- [ ] 密钥加密存储(Sealed Secrets / External Secrets)
|
|
135
|
+
- [ ] 渐进式交付(Rollouts / Flagger)
|
|
136
|
+
- [ ] 多环境目录隔离
|
|
137
|
+
- [ ] 回滚策略:保留历史版本
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## 基础设施即代码 (IaC)
|
|
142
|
+
|
|
143
|
+
### 工具对比
|
|
144
|
+
|
|
145
|
+
| 工具 | 语言 | 状态管理 | 云支持 | 学习曲线 |
|
|
146
|
+
|------|------|----------|--------|----------|
|
|
147
|
+
| Terraform | HCL | 显式(S3/TF Cloud) | 全平台 | 中等 |
|
|
148
|
+
| Pulumi | Python/TS/Go | 自动(Pulumi Cloud) | 全平台 | 较低 |
|
|
149
|
+
| AWS CDK | Python/TS | CloudFormation | AWS | 中等 |
|
|
150
|
+
|
|
151
|
+
### Terraform 核心模式
|
|
152
|
+
|
|
153
|
+
项目结构:`modules/{vpc,eks,rds}/` + `environments/{dev,staging,prod}/`
|
|
154
|
+
|
|
155
|
+
- Provider:版本锁定 `required_providers` + `default_tags`
|
|
156
|
+
- Backend:S3 + DynamoDB 锁 + KMS 加密
|
|
157
|
+
- 模块化:`variable` → `resource` → `output`,环境通过 `module` 引用
|
|
158
|
+
- 远程状态:`data "terraform_remote_state"` 跨模块引用
|
|
159
|
+
- 命令流:`init` → `validate` → `fmt` → `plan -out=tfplan` → `apply tfplan`
|
|
160
|
+
- 状态管理:`state list/show/mv/rm` / `import` 导入现有资源
|
|
161
|
+
- Workspace:`workspace new/select` 多环境隔离
|
|
162
|
+
|
|
163
|
+
### Pulumi 核心模式
|
|
164
|
+
|
|
165
|
+
- ComponentResource:自定义资源组(VPC/EKS 封装为类)
|
|
166
|
+
- Config:`pulumi.Config()` 读取 stack 配置
|
|
167
|
+
- Outputs:`pulumi.export()` 导出值
|
|
168
|
+
- 命令:`preview` → `up` → `stack output` / `destroy`
|
|
169
|
+
|
|
170
|
+
### AWS CDK 核心模式
|
|
171
|
+
|
|
172
|
+
- Stack:继承 `Stack`,使用 L2 Constructs(`ec2.Vpc` / `eks.Cluster`)
|
|
173
|
+
- 跨 Stack 引用:通过构造函数参数传递
|
|
174
|
+
- 命令:`synth` → `diff` → `deploy --all` / `bootstrap`
|
|
175
|
+
|
|
176
|
+
### IaC Checklist
|
|
177
|
+
|
|
178
|
+
- [ ] 模块化:可复用组件抽象为模块
|
|
179
|
+
- [ ] 环境隔离:不同环境不同 State
|
|
180
|
+
- [ ] 远程状态 + 状态锁定
|
|
181
|
+
- [ ] Provider 版本锁定
|
|
182
|
+
- [ ] 密钥管理:Secrets Manager / SSM
|
|
183
|
+
- [ ] 统一资源标签
|
|
184
|
+
- [ ] Plan 后人工审查再 Apply
|
|
185
|
+
- [ ] CI/CD 集成自动化
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 最佳实践
|
|
190
|
+
|
|
191
|
+
| 层级 | 工具选择 | 原则 |
|
|
192
|
+
|------|----------|------|
|
|
193
|
+
| 应用部署 | Helm + Kustomize | 模板化 + 环境差异 |
|
|
194
|
+
| 持续交付 | ArgoCD / Flux | Git 为唯一真相源 |
|
|
195
|
+
| 基础设施 | Terraform / Pulumi | 声明式 + 状态管理 |
|
|
196
|
+
| 配置管理 | External Secrets | 密钥外部化 |
|
|
197
|
+
| 可观测性 | Prometheus + Grafana | 指标 + 可视化 |
|
|
198
|
+
|
|
199
|
+
## 触发词
|
|
200
|
+
|
|
201
|
+
Kubernetes、K8s、Helm、Kustomize、Operator、CRD、GitOps、ArgoCD、Flux、IaC、Terraform、Pulumi、CDK、基础设施即代码
|