UDS Core项目AWS CI迁移至新账户的技术方案
背景介绍
在UDS Core项目中,原有的AWS账户用于RKE2和EKS的持续集成(CI)环境已不再适用。为了提升账户管理的规范性和安全性,项目组决定将CI环境迁移至通过Spacelift管理的新AWS账户。这一迁移涉及多个关键组件的重新部署和配置,包括状态存储、访问控制以及镜像共享等核心功能。
迁移技术要点
新账户创建与管理
新账户将通过Spacelift基础设施即代码(IaC)流程进行创建,命名为uds-core-ci以明确其用途范围。创建过程需要遵循以下步骤:
- 在it-ops-infra仓库的config/product/test目录下添加新账户配置
- 配置与uds-core仓库中基础设施代码目录的关联关系
- 确保新账户具备完整的权限管理和审计能力
关键资源重建
迁移过程中需要在新账户中重建以下核心资源:
-
状态管理组件:
- S3存储桶:用于存储Terraform状态文件
- DynamoDB表:用于状态锁定机制
-
访问控制体系:
- IAM角色和策略:确保最小权限原则
- OIDC连接:实现与uds-core CI系统的安全集成
-
镜像资源:
- RKE2 AMI镜像:需要从原有账户共享或在新账户重新构建
配置更新流程
完成基础设施部署后,需要更新uds-core项目中的相关配置:
- 更新CI工作流中的AWS凭证和角色配置
- 修改状态后端指向新的S3存储桶和DynamoDB表
- 调整AMI镜像引用指向新账户中的资源
技术挑战与解决方案
RKE2镜像处理
RKE2 AMI镜像是CI环境的关键依赖。项目组已在新的AWS组织中建立了专门的uds-images账户用于托管各类系统镜像。迁移方案包括:
- 将现有RKE2镜像共享至整个AWS组织
- 或重构uds-rke2-image-builder项目,使其直接发布镜像到新账户
旧账户清理
虽然旧账户不会立即删除(可能被其他项目使用),但建议建立清理机制:
- 开发Spacelift工作流实现账户清理(nuke)功能
- 制定资源保留策略,确保不影响其他团队
- 建立清理前的验证机制
实施建议
- 分阶段迁移:先建立新环境并验证,再逐步切换流量
- 权限管理:确保UDS Core开发团队拥有适当的调试权限
- 监控验证:迁移后密切监控CI运行状态
- 文档更新:同步更新相关技术文档和知识库
通过系统化的规划和执行,此次迁移将提升UDS Core项目的AWS资源管理水平和安全性,为后续发展奠定更坚实的基础。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



