idcos / cloudiac Goto Github PK
View Code? Open in Web Editor NEWCloud Infrastructure as Code
Home Page: https://cloudiac.org
License: Apache License 2.0
Cloud Infrastructure as Code
Home Page: https://cloudiac.org
License: Apache License 2.0
当前前端为了获取全量数据 pageSize 有传 9999 有情况,此时后端接口会有最大 pageSize 限制实际只返回 1000 条数据
修改方案:前端在需要获取全部数据时 pageSize 传 0,后端针对部分接口开放 pageSize 传 0 的支持
PR: #38
目前版本前端在创建环境或修改环境时会将继承的所有变量以及当前实例的变量传递到后端,后端接收后检查如果变量有 id 则做变量更新,否则创建变量。这里的问题:
建议修改:
现状:
部署日志将各步骤输出日志合并到一起输出,交互上不够友好。
方案:
将各步骤(初始化、合规检测、plan、apply,后续自定义pipeline步骤)单独展示,前端根据步骤状态自动展开当前步骤,其他步骤默认收缩
当前用户文档没有对应的CloudIaC版本信息
● 对发起的不同任务类型(plan/apply/destroy),在通知模板中及标题中增加任务类型,方便用户区分
● 当前创建通知时通知类型同时设置的方式易引起歧意,修改为下拉选择框(单选)
现在如果用户发现某条策略不通过,禁用该策略的操作流程比较长,可以优化一下界面流程,检测详情增加按钮直接屏蔽不通过的策略
当前登录用户打开无权限访问的页面或链接时,提示无权限页面,倒计时3秒后跳转至首页(组织选择页)
目前合规测试结果只展示了策略输出,应加入策略测试结果 通过/不通过/失败 状态展示
前端增加拓扑展示,方便用户了解整个资源间关联关系
当前为云模板设置 workdir 时没有检查有效性,到部署任务时才报错:目录不存在
● 增加云模板导出、导入功能,可选择当前组织下的云模板进行导出
● 导出云模板时对应的VCS以及关联关系一并导出
● 考虑导出系统与导入系统的密钥可能不一致,导出过程中涉及敏感变量时,对敏感变量的值先解密再使用通用加解密算法加密后导出,导入时使用通用加解密算法解密后再使用密钥加密后保存
● 导入时可选择对已存在的云模板处理方式:
○ 覆盖:对存在的同名云模板直接覆盖(对覆盖的数据进行保留,以备意外情况时进行恢复)
○ 跳过:跳过存在的同名云模板,继续导入其他数据
○ 创建副本:对同名的云模板,给名称加上_copy后缀进行导入
○ 中止:存在同名云模板时中止导入操作,不做任何变更
● 导入时可选择将该次导入的云模板关联到某项目
● 同样的接口提供给三方系统进行导入、导出
我们打包的 ct-worker 镜像会将常用的 provider 版本拷贝到 /usr/share/terraform/plugins 目录,做为一个缓存,加快常用 provider 的访问,但我们并没有把一个 provider 的所有版本下载下来。而 terraform init 时如果该目录下己存在依赖的 provider 目录,不管是否有依赖的版本,都不会再从 terraform registry 自动下载。
查看 terraform 文档:https://www.terraform.io/docs/cli/config/config-file.html#implied-local-mirror-directories
其中提到
In addition to the zero or more implied filesystem_mirror blocks, Terraform also creates an implied direct block. Terraform will scan all of the filesystem mirror directories to see which providers are placed there and automatically exclude all of those providers from the implied direct block. (This automatic exclude behavior applies only to implicit direct blocks; if you use explicit provider_installation you will need to write the intended exclusions out yourself.)
也就是说默认的 .terraformrc 文件会有一个隐含的 direct block 配置,该配置会将所有本地 plugins 目录中己存在的 provider 配置为 exclude,也就是说需要安装这些 provider 时不会去 terraform registry 查找。
所以解决方案就是我们主动配置 .terraformrc,为其中添加一个空的 direct block,文件内容如下:
provider_installation {
direct {}
}
只需在 ct-worker 中添加 /root/.terraformrc 文件并写入以上内容即可。
假设目标机器上有docker,docker-compose, 实现一键安装
现在 CloudIaC 是通过 consul 存储 terraform state,能否支持其他的 backend 存储方式?比如 s3
创建云模板时,在『基础设置』步骤填写完云模板名称进入下一步时,实时检测填写的名称是否合法,不要等最后一步提交时才检查。
同步实现 #60 。
项目下的环境列表,增加如下查询/过滤条件
同时,在项目下的模版列表,点击环境数量,跳转到该模版生成的所有环境列表 (相当于通过模版名查询)
现在组织设置中邀请用户,还要去项目设置中去授权。
建议项目管理员应该可以直接邀请用户。
当环境设置分支提交PR时支持触发合规检测和预览执行计划,结果回写至PR的review
当环境创建处于“待审批”状态时,点击环境链接直接定位到审批按钮
● 针对环境增加『偏移检测』功能,支持自动『纠偏』;
● 偏移检测是指定时发起对环境状态与当前线上实时状态的差异检测,如果对环境资源有带外变更,则会自动检测出线上的变更与当前环境描述的终态是否存在差异,针对存在差异的资源进行记录并支持发送偏移事件通知;
● 自动纠偏开关默认关闭,当开启该选项时,检测到存在差异的资源后将自动执行terraform apply动作,将差异部分调整到与环境描述状态一致;
注:偏移检测及自动纠偏仅针对环境所属资源,无法检测应用配置的变更
支持环境内资源与模块间关系简易可视化,可根据资源所属模块、Provider、资源类型进行切换展示(后期考虑增加资源间关系可视化)
为云模板添加变量时可以设置其为必填,这种变量在云模板里可以有默认值或者为空值,在使用该云模板创建环境时必需为这些变量赋值,否则不允许创建环境。
使用场景:
目前 runner 启动任务时不会主动 pull 镜像,需要提前手动 pull 镜像到本地。
修改建议:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.