AI CICD

1. CI

github actions

gitlab runner

 

2. CD

flux-prod

安装

curl -s https://fluxcd.io/install.sh | sudo bash
# 验证
flux --version
flux check --pre

配置ssh-key 与本地通信

flux bootstrap git \
  --url=ssh://git@github.com/AtlasCloudTeam/flux-synth-dev.git \
  --branch=main \
  --path="./gitops" \
  --private-key-file=id_ed25519

查看部署

kubectl get crd | grep image.toolkit.fluxcd.io
kubectl get pods -n flux-system

SOPS,配置

查看代码
 # SOPS
所有的 secret.yml 文件是通过 SOPS加密的

## 配一次(每人)

```bash
age-keygen -o ~/.config/sops/age/keys.txt          # 生成私钥
age-keygen -y ~/.config/sops/age/keys.txt          # 公钥加进 .sops.yaml
echo 'export SOPS_AGE_KEY_FILE=~/.config/sops/age/keys.txt' >> ~/.bashrc && source ~/.bashrc
sh scripts/install-hooks.sh                        # 防止明文误提交
sops -d apps/config/config-secret.yaml
```

Windows 第 3 行换成,然后重启 VS Code:

```powershell
[Environment]::SetEnvironmentVariable('SOPS_AGE_KEY_FILE','D:\pub\key\sops-age-key.txt','User')
code --install-extension signageos.signageos-vscode-sops
```

## 改 Secret

直接点开文件改,`Ctrl+S`。新建的 Secret 写完跑 `sops -e -i <文件>`。

## 加人 / 减人

把公钥加进(或删出)`.sops.yaml` 的 `age`,然后:

```bash
for f in $(grep -rl '^sops:' --include='*.yaml' apps gitops); do sops updatekeys -y "$f"; done
```


## 集群密钥

没有这个 Secret,Flux 全线停止发布:

```bash
kubectl create secret generic sops-age -n flux-system \
  --from-file=age.agekey=/d/pub/key/cluster-age-key.txt
```

私钥在 `D:\pub\key\` 下:`sops-age-key.txt`(个人)、`cluster-age-key.txt`(集群)。
Git Bash 里写成 `/d/pub/key/...`,WSL 里写成 `/mnt/d/pub/key/...`,都是同一个文件。丢了没法恢复,离线备一份。

 

argocd

 

posted @ 2026-05-08 16:05  王竹笙  阅读(23)  评论(0)    收藏  举报