# 更新日志
这个文件记录devops-service所有版本的重大变动。

[0.15.0] - 2019-03-19
###新增
部署流水线模块新增自动部署功能，支持预设应用部署所需元素来创建自动部署任务
项目设置模块新增组件设置功能，目前支持创建 Docker 仓库与 Helm 仓库以供项目中的应用选择
项目层创建应用与编辑应用页面新增高级设置功能，支持修改默认的Docker仓库与Helm仓库
###改变
- 优化了Values组件的diff效果，支持切换编辑器模式来对比查看代码行的 增、删、改
- 优化了应用与环境权限分配模块，被分配权限的项目成员在 gitlab 中的角色统一改为developer
- 优化了平台里执行创建操作时出现熔断后的报错提示
- 优化了组织层的集群列表的显示
- 优化了组织层集群的删除逻辑，仅能删除没有关联环境的集群
- 优化了实例中操作日志页面的显示
###修复
- 修复了导入应用时，选择某些模板进行导入后会缺少Dockerfile的问题
- 修复了分支界面内的没有权限时的报错信息不当的问题
- 修复了agent与devops-service已断开连接但集群仍然显示正常的问题
- 修复了网络编辑中IP选择器的问题
- 修复了操作实例时提示信息不当的问题
- 修复了部署流水线中切换顶部环境，并进行页面跳转后出现的问题
- 修复了构建报表部分pipeline里点击重试按钮错误跳转的问题
- 修复了组织层集群页面的分页问题
###移除
- 移除了删除失败应用的功能
- 移除了停用应用的限制：不能停用有关联实例的应用


[0.14.0] - 2019-02-15
###新增
- 集群模块新增节点列表，支持查看集群节点的详细信息
- 实例详情部分新增实例操作日志，支持查看各个实例的详细操作记录
- 开发控制台页面流水线模块里的持续集成卡片上新增构建报表的入口
- 部署总览页面新增部署报表的入口

###改变
- 优化了实例详情内增减Pod数量的逻辑，Pod数量不可减少至零
- 优化了开发控制台页面流水线部分的逻辑与自动刷新的问题
- 将LoadBalancer中添加NodePort的填写输入框变为非必填
- 修改无分支时的空界面提示文案
- 优化实例详情中ingress的address值的空值显示
- 优化了GitLab同步用户的逻辑，在同步前添加了查询操作

###修复
- 修复了过滤表内无法叉掉已选选项的问题
- 修复了网络模块外部IP更新失败的问题
- 修复了开发流水线模块应用选择框中，“最近”部分的缓存问题
- 修复了应用管理界面中过滤表筛选的逻辑问题
- 修复了平台更新用户邮箱后，GitLab同步邮箱失败的问题
- 修复了不同集群版本StatefulSet的版本不通，Agent Controller兼容不同集群版本时产生的问题
- 修复了开发控制台的请求问题
- 修复了pipeline中sonarqube的stage丢失的问题
- 修复了导出应用时出现的后缀名格式问题
- 修复了创建环境时由于名称校验引起的报错问题
- 修复了创建实例时，实例名称为空的问题
- 修复了开发控制台中流水线内job顺序显示异常的问题
- 修复了删除存在关联环境的集群时，会先弹出删除指令的问题

###移除
- 移除了平台中点击步骤条进行跳转的功能

##[0.13.0] - 2019-01-07
###新增
- 开发控制台界面新增流水线模块，其中包括：分支管理、持续集成与应用版本；支持以分支为中心在流水线中进行开发操作
- 网络模块中目标对象部分新增支持Endpoints类型的网络设置
- 网络模块中网络配置部分新增支持LoadBalancer的选项
- 实例详情模块新增StatefulSet、DaemonSet、PVC、Service以及Ingress的详情展示
- 实例详情内新增Pod的增减功能，支持在当前界面直接增减Pod的数量
- 应用管理模块新增导入应用的功能，支持从Github和GitLab库中导入已有应用，并按照所选应用模板为导入的应用添加相应的文件
- 预定义模板新增SpringBoot、Go应用模板
- 容器界面新增显示每个Pod中各个Container的名称与状态

###改变
- 创建网络时，网络配置部分选择NodePort时，节点端口改为了非必填
- 容器界面详细区分了Pod与容器（container）的概念，使界面更加直观明了
- 优化了实例详情界面，将实例事件与运行详情模块的顺序进行了调换
- 优化统一了实例事件界面Job与Pod状态的展现方式
- 优化了上传证书的过程，调换了Cert文件与Key文件的填写顺序


###修复
- 修复了实例界面部署实例时，选择应用模块后，无法看到正在部署的实例的问题
- 修复了创建环境时名称校验的问题
- 修复了编辑网络时，目标对象中实例的显示问题
- 修复了创建域名时，重新选择网络时，对应端口不变的问题
- 修复了通过实例界面点击查看容器详情进行跳转后某些对应应用未显示的问题
- 修复了自动化测试模块里，部署失败后日志丢失的问题
- 修复了创建实例时，实例名为空时未提示的问题
- 修复了实例事件由于操作人员为空导致npe异常的问题
- 修复了环境流水线修改环境分组报错的问题
- 修复处理了webhook时区的问题
- 修复了导出应用自定义名称中带点时引起的格式问题
- 修复了在创建或修改操作提交后，表单内容仍可编辑的问题

###移除
- 移除了环境总览界面实例详情里的Networking的显示



## [0.12.0] - 2018-12-14
### 新增
- 新增应用的开发权限分配功能，支持为各个应用配置特定的开发操作人员
- 新增配置映射功能，支持在每个环境下添加配置映射
- 新增密文功能，支持在每个环境下添加密文，可用于存储小片敏感数据的k8s资源，例如密码，token，或者密钥
- 新增组织层证书的管理功能，在组织层创建的证书，可在组织下各个项目创建证书时使用
- 新增实例事件，支持查看各个实例job与pod的事件记录
- 新增实例下Deployment查看更多的详情，包括：端口、数据卷、健康检查、主机设置、环境变量、标签
- 新增测试应用的创建，此类型的应用仅可用于自动化测试
- 新增页面自动刷新的功能，可点击所有刷新按钮旁的角标进行设置
- 集群中自动新增CrtManager插件，用于使该集群下的环境能正常使用申请证书的功能
- 新增Dashboard与报表中的查看权限，此权限与应用权限和环境权限相关
- 新建实例时新增实例名称自定义的功能
- 环境卡片上新增显示该环境所连接的集群名称

### 改变
- 优化了标记名称的命名规则
- 优化了实例模块的显示方式，在实例栏中显示该实例下pod的状态与总数量
- 优化了YMAL编辑器的样式
- 优化了环境总览页面内应用部署成功后的页面逻辑。
- 优化了开发流水线与报表部分空界面的显示


### 修复
- 修复环境流水线内，切换环境按钮消失的问题
- 修复环境流水线内修改环境名称后页面逻辑的问题
- 修复实例升级失败，相关网络状态显示不正常的问题
- 修复Dashboard页面拖动卡片出现空白页的问题
- 修复持续集成列表，sonarqube阶段不可链接跳转的问题
- 修复代码提交报表中英文缺失导致的空白问题
- 修复应用部署时环境选择引起的问题
- 修复创建应用失败后，未隐藏编辑按钮与停用按钮的问题

### 移除
- 移除了实例详情界面的部署详情模块


## [0.11.0] - 2018-11-16
### 新增
- 新增集群管理模块，支持对Kubernetes集群的创建、编辑以及权限分配
- 新增环境的权限分配功能，支持为各个环境配置特定的操作人员
- 新增删除环境的功能，支持在环境停用区对环境进行删除操作
- 开发流水线部分新增开发控制台，集成了开发流水线内主要的功能，能够更便捷的进行开发操作
- 新增开发流水线代码仓库中查看代码质量的入口
- Dashboard页面新增快速查看分支情况、代码提交情况、应用构建情况与部署情况的模块，并提供了快速跳转至相应模块的入口
- 实例部分新增deployments层,且支持一个chart文件中存在多个deployments
- 新增实例重新部署的功能
- 新增报表中部署失败的错误信息
### 改变
- 重新整理优化开发流水线结构，统一以应用为中心进行操作
- 重新整理优化部署流水线结构，统一以环境为中心进行操作
- 创建环境时必须选择一个关联集群
- 优化了应用市场导出文件的命名，支持自定义命名。
- 优化统一了平台各个空界面
- 优化了删除操作提示框，明确指出了删除对象名称
- 完善了平台指导文案，加强初级用户的理解
- 优化了删除实例后，关联网络列表中的目标对象内容
- 优化了实例升级失败或新建失败后，列表中版本的显示问题
- 优化了环境总览界面顶部创建操作按钮的显示
- 优化了部署总览界面快速部署的图标显示
### 修复
- 修复编辑应用名称时，未分辨输入字母的大小写的问题
- 修复创建网络时，选择实例与选择应用的逻辑问题
- 修复了偶现替换实例失败的问题
- 修复了部署超时后无法操作的问题
- 修复了创建域名时未校验环境的问题
- 修复了创建应用失败后不能处理的问题
### 移除
- 移除了项目中部署管理员角色，并将其所有权限分配给项目所有者
- 移除了部署流水线实例管理中的部署实例与单应用视图
- 移除了停止实例后的升级实例与重新部署的选项

## [0.10.0] - 2018-09-16
### 新增
- 新增环境分组，支持按照环境分组查看流水线 
- 新增域名证书管理功能，支持域名证书的申请与上传
- 新增DevOps报表功能，支持查看代码提交、应用构建以及应用部署的情况
- 新增部署总览功能，以便查看所有应用在各个环境下的部署情况，并能在此页面完成应用最新版本的快速部署
- 支持使用shell命令操作pod以便于调试
- 支持创建标记时填写release notes，并支持查看编辑与修改
- 新增查看容器日志时的Stop Following、Go Top功能，并支持全屏查看容器日志
- 新增容器界面选择环境与应用的下拉框和应用版本界面选择应用的下拉框便于搜索与过滤
### 修改
- 优化了容器日志长链接的状态
- 统一了系统内状态显示的图标
- 网络、域名、实例、应用部署等相关状态优化
- 优化了总览界面的加载速度
- 优化了表格的分页、筛选、排序和刷新
### 修复
- 修复部署超时失败后无法操作的问题
- 修复部署部分替换实例未做修改判断的问题
- 修复0.9.0版本网络列表提示错误、时间组件显示错误的问题
- 修复网络编辑中实例状态报错的问题
- 修复创建应用时,删掉应用模板里面的commit的问题
- 修复创建同名项目时，gitlab组创建失败的问题
- 修复页面连接文档的icon不统一的问题
- 修复gitops解释逻辑，list存放重复旧文件对象关系导致删除重复数据报错的问题
- 修复网络创建中添加端口按钮消失的问题
### 删除
- 移除部署流水线实例管理中的多应用视图

## [0.9.0] - 2018-08-17
### 新增
- 采用GitOps方式重构部署流程
- 增加环境总览相关接口
### 改变
- 重写部署实例values，支持标准yml格式
- 网络多端口支持，label selector 支持，NodePort类型支持

## [0.8.0] - 2018-07-20
### 新增
- 增加代码仓库、分支、标记、合并请求，以实现更多灵活的分支管理模型。
- 与敏捷管理连通，实现敏捷问题管理及持续交付代码管理一致性。
- 分支管理集成push、merge request webhook。
- 在容器日志中增加job操作事件消息。
- 实例部署配置文件只保存相对于版本中的修改部分，并支持保存新增参数。 
- 支持ci pipeline的额外阶段-代码质量检查在界面显示。
- 应用管理增加sonarqube链接接口。
- 版本升级的时候通过请求API实现版本间的平滑升级。


### 改变
- 修改CI生成版本号的命名规则。
- 配置文件信息存储方式修改为只保存修改内容。

### 移除
- 应用管理中的分支管理。

## [0.7.0] - 2018-06-29
### 新增
- 应用导出，以便在其他平台使用该平台研发的应用。
- 应用导入，以便导入其他平台研发的应用并部署使用。
- 实例、网络、域名发现，以便平台进行自我管理和升级。
- 网络管理实例不可用验证。
- 网络端口合法性验证。
- 域名管理网络不可用验证。
- 域名管理Path地址重复性验证。
- 每个权限上增加默认角色。
- 停用环境时校验该环境下不能存在网络及域名设置。

### 改变
- 后台报错支持中英文翻译。
- 修改两个API命名使其符合命名规范及权限检查规范。
- 优化用户获取预定义应用模板获取方式，无需再手工创建。

### 修复
- 应用部署时Values替换错乱。
- 持续集成流水线时长不准确。
- 应用市场中应用详情README在部分情况下无法获取。


## [0.6.0] - 2018-06-10
### 新增
- 增加发布管理，包括应用发布及应用市场。
- 在网络/域名管理中增加网络/域名状态和操作类型及状态以便跟踪网络/域名的运行情况。
- 增加容器日志以便追踪容器运行情况。
- 在应用部署中增加review功能以便用户确认操作。
- 在环境流水线中增加升级提示。
- 在环境客户端上增加资源对象一致性机制。
- 在环境客户端上增加消息发送失败及超时确认机制。

### 改变
- 重构应用部署页面，移除实例查看功能，增加应用实例页面。
- 在网络管理中区分自身端口和目标端口。
- 修改三个预定义应用模板使其能顺利生成版本及部署成功。
- 基于更规范的命名规则修改一些API。
- 优化了首次用helm部署的实例扫回机制。

### 移除
- 快速部署。

### 修复
- 修复分支管理的版本判断逻辑错误及前台提示错误。
- 修复devops和agent重启后各对象状态不一致。
- 修复组织管理员不在gitlab template group中。
- 修复一些其他小bug。

[0.16.0] - 2019-04-19
新增
- 部署流水线模块新增流水线的功能，支持在流水线中创建多个阶段，且每个阶段中可添加多个任务。包括自动部署任务与人工卡点任务
- 部署流水线模块新增流水线执行总览页面，支持查看流水线的执行情况、流程详情以及审批历史
- 部署流水线模块新增部署配置页面，支持在此创建部署配置用于流水线中添加自动部署任务时选择
- 平台中新增CLI工具，支持使用命令行的方式来执行平台中的页面操作

修复
- 修复了删除部署错误的网络时报错的问题
- 修复了yaml编辑器错误提示的显示问题
- 修复了自动部署同一版本部署替换至多实例时失败的问题
- 修复了自动部署任务中手动输入的版本类型无法触发任务的问题
- 修复了在敏捷管理中创建任务时查询tag失败的问题
- 修复了在组件设置中创建harbor仓库失败的问题
- 修复了loadbalance类型的网络外部ip没有返回的问题
- 修复了创建应用时编码中间有两个中划线会创建失败的问题
- 修复了部署应用时未作修改便提交导致的问题
- 修复了各服务配置configMap没有回扫成功的问题

移除
- 移除了0.15.0版本中的自动部署页面，并将其内置于流水线中添加任务部



[0.17.0] - 2019-05-20
新增
- 开发流水线模块新增代码质量页面，支持查看应用在SonarQube中的检测结果与具体详情
- DevOps报表中新增代码质量图，支持查看应用代码质量中Bug、安全漏洞、代码异味、重复度与单测覆盖率的变化详情
- 项目设置模块新增通知设置的功能，支持为各个环境下的删除事件配置通知方式（邮件、站内信或短信）与通知对象
- 在通知设置中创建通知成功后，删除环境下的实例等资源时，需要输入通知得到的验证码进行删除操作的二次确认
- 项目设置模块中组件设置页面新增设置项目Harbor仓库类型的入口
- 部署流水线模块中配置映射部分，新增以YMAL格式进行创建与编辑
- 部署流水线模块状态为执行中的流水线详情中新增手动终止的按钮，项目所有者可以在此手动终止任何执行中的流水线

修复
- 修复了在开发控制台中能选择到应用市场导入的应用的问题
- 修复了创建流水线时人员查询重复的问题
- 修复了流水线中用户选择器的筛选问题
- 修复了流水线详情中点击展开按钮查看详情时全部展开的问题
- 修复了应用导出时部分应用获取chart包失败的问题
- 修复了从应用市场导入的应用分配权限报错的问题
- 修复了gitops执行saga事务实例偶尔会卡住的问题
- 修复了创建应用的saga事务处理逻辑中，偶现更新应用失败的问题
- 修复了gitops中对象的annotation没保留的问题


优化
- 优化了流水线详情中未执行任务的详情展示
- 优化了流水线详情内部署任务中实例的跳转功能
- 优化了流水线详情界面的UI
- 优化了流水线中无环境权限的项目成员的权限问题


[0.18.0] - 2019-06-18
新增
- 部署流水线模块流水线部分新增站内信消息用于通知流水线相关人员去执行对应的操作
- 部署流水线模块流水线详情页面新增流水线的状态显示与对应的操作按钮
- 部署流水线模块流水线管理界面与总览界面新增“快速搜索”和“与我相关”的筛选框
- 部署流水线模块新增部署配置功能，支持在此创建部署配置用于应用部署或创建自动部署任务时选择
- 部署流水线模块实例部分新增实例关联的网络和域名的界面，支持在此创建和查看与此实例相关的网络和域名
- 部署流水线模块创建证书页面新增上传证书的模式选择，并新增了对证书文件的校验
- 部署流水线模块环境总览页面GitOps日志部分，新增重试GitOps的按钮

修复
- 修复了ConfigMap传递值为空的问题
- 修复了开发控制台页面工作台中分支的查询问题
- 修复了Redis容器shell里面进入redis命令行，格式有误的问题
- 修复了流水线失败后点击重试引起的问题




优化
- 优化了开发流水线模块代码质量页面SonarQube的查询
- 优化了开发流水线模块创建分支的操作
- 优化了部署流水线模块流水线部分的权限问题
- 优化了实例界面的查询速度
- 优化了从GitLab和Github导入应用时只导入master分支的问题，现在会默认将所有分支导入
- 优化了应用市场中应用已发布版本的查询速度


移除
- 移除了流水线部分的部署配置，将其置于了部署流水线模块之中