头图

基于平台工程理念的应用管理平台 Walrus 已于上月正式开源,目前在 GitHub 已收获 177 颗星🌟
 

Walrus 希望打造简洁清爽的应用部署与管理体验,帮助研发与运维团队减少“内耗”工作,提升开发体验。
 

我们十分重视 Walrus 用户的体验与反馈,并希望与每位用户分享 Walrus 的产品动态。正式开源一周内,我们就迎来了社区首个外部 PR,此后陆陆续续收到了来自社区用户提交的 Bug 和 Issue。这里,我们将详细描述目前已修复的两个问题及其具体修复和优化过程。
 

用户信息资源权限的统计体验优化

问题描述

0.3.0的版本中资源权限的表格中统计各个资源的动作权限的数量作为汇总,然而实际部分页面的设计并没有相关的动作,造成同一资源各个动作的汇总不一致,使得用户无法直观地理解表格的含义。
 


 

优化方式

这里我们去掉表格中“资源”一列,将相关的资源显示在对应的项目或者分组模块下。
 

去掉权限数量的汇总数字,将汇总的结果通过三种不同的颜色呈现,即红色代表所有资源没有权限, 黄色表示部分资源有权限,绿色则表示所有资源有权限。如下图所示:
 


 

相关 issue 详情查看此链接:https://github.com/seal-io/walrus/issues/1266
 

内置模板资源的更新支持

功能解析

Walrus 内置了一些常用操作的模板,其中包括deploy-source-code模板,用于从源码构建镜像并将其部署到 Kubernetes 集群中。使用该模板的步骤如下:

  1. 首先,创建一个类型为 Kubernetes 的连接器。有关详细信息,请参考 Walrus 文档中的连接器创建指南。
  2. 创建一个新的环境,并将步骤 1 中创建的连接器添加到该环境中。
  3. 创建一个服务,并选择deploy-source-code 模板的最新版本。
  4. 在配置服务时,在 Build 部分输入 GitHub 仓库信息、镜像信息、密钥等配置。在 Deploy 部分输入副本数、所需资源、端口等相关信息。
  5. 完成配置后,保存即可进入打包部署流程。
     

这些步骤将帮助您使用 Walrus 快速进行源码构建并部署成可用的 Kubernetes 服务。
 


 


 

问题描述

在 Walrus 提供的内置模板 deploy-source-code 中定义了 image 资源,该资源代表容器镜像资源。然而,在模板版本 0.0.1 中,没有提供该资源的更新支持。因此,使用该模板的服务构建部署完成后,再次更新升级将出现错误,导致更新失败。
 

可以在 issue 中(链接: https://github.com/seal-io/walrus/issues/998 )找到详细的问题复现过程。
 

修复过程

Walrus 基于容器镜像构建工具 Kaniko 开发了 Terraform Provider terraform-provider-kanikoimage 资源来自于 Provider 中定义的,用于从源代码构建容器镜像,并推送到容器镜像仓库中。
 

在模板 deploy-source-code 0.0.1 版本中使用的 Provider 版本尚未支持 image 资源的更新操作。但在该 Provider 的最新版本中,我们添加了对此功能的支持,并引入了更多优化,以确保即使在 Provider 参数不变的情况,源代码仓库有了新内容,该 Provider 也能进行更新和升级。我们在的 deploy-source-code 模板的0.0.4版本中升级了 Provider,使用修复后的版本。
 

要解决这个问题,用户可以使用修复后的 deploy-source-code模板,即 0.0.4 版本。最新部署的 sealio/walrus:v0.3.0 镜像中已经包含了 deploy-source-code 的最新版本,可以直接使用。
 


 

已运行的 Walrus,Walrus 默认会每天同步最新的模板,用户可检查 Walrus 是否已同步了最新版本,如已同步可直接使用deploy-source-code的最新版本。
 

也可进行手动同步,进入运维中心,然后导航到模板 deploy-source-code,并点击刷新以获取最新版本。这样就可以使用修复后的新版本了。
 


 

以上就是目前已修复问题的详细内容与修复及优化过程,在这里特别感谢 @cdryzun@orangedeng 向我们提出的问题。后续,我们将第一时间与大家分享 Walrus 的每一次产品更新与每一个重要动态。
 

Walrus 欢迎每一位开发者的参与与贡献,并积极向我们提出有质量的问题与建议,经研发团队采纳,我们将会送出 Seal 精美周边礼品🎁一份~
 

项目地址:https://github.com/seal-io/walrus
 


Seal
1 声望2 粉丝

GPUStack,一个用于运行 LLM(大型语言模型)的开源 GPU 集群管理器。