轻松一刻|Walrus CLI与CI/CD工具集成,轻松部署2048游戏

Walrus 是一款开源的基于平台工程理念、以应用为中心、以完整应用系统自动化编排交付为目标进行设计开发的云原生应用平台,简化和自动化应用部署与发布流程并与现有的 CI/CD 流水线无缝集成。今天我们来点有趣的,跟随本教程,一起将 Walrus CLI 与 CI/CD 工具集成来部署2048游戏 🎮。
 

前提条件

在开始之前,请先完成以下准备工作:

  1. 创建一个 GitHub 仓库,fork 我们的 demo 项目(https://github.com/seal-demo/2048)。

  2. 安装 Walrus(https://seal-io.github.io/docs/deploy/standalone)。

  3. 在 Walrus 中创建 demo 项目。

  4. 在 demo 项目中创建 K8s 连接器。

  5. 创建一个环境,并添加上面创建的 K8s 连接器。

 

 

准备就绪,现在开始吧~
 

生成 API 密钥

为了让 Walrus CLI 与 Walrus Server 之间能够通信,您需要创建一个 API 密钥。操作步骤如下:

  1. 在用户信息 中选择API密钥 。

  2. 点击添加密钥 ,为密钥命名并设置过期时间。

  3. 配置密钥后,复制生成的密钥。此密钥用来让 CLI 连接到 Walrus Server。
     

 

将 Walrus CLI 与 GitHub Actions 集成

这里我们将演示如何将 Walrus CLI 与 GitHub Actions 集成。按照以下步骤操作:

  1. 访问 GitHub 仓库,选择Settings 选项卡,然后导航到Security > Secrets and variables > Actions

  2. 在 Repository secrets 下添加以下变量,配置存储 GitHub Actions 执行需要的敏感信息:CI_REGISTRY_USERNAMECI_REGISTRY_PASSWORDCD_WALRUS_SERVERCD_WALRUS_TOKEN 。对于CD_WALRUS_SERVER ,格式为https://domain:port/ 。这些变量将于 GitHub Actions 与镜像仓库、Walrus CLI 之间进行安全通信。
     

 

在 GitHub 仓库中创建 ci.yaml 文件(位于 `.github/workflows```目录下)。此文件将定义您的 CI/CD 工作流。
 

以下是用于部署2048游戏的 ci.yaml 文件示例,您可以根据特定的环境变量和要求进行复制和自定义。例如,将镜像 Repo 修改为自己的镜像仓库 Repo:

name: CICD

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

env:
  CI_REGISTRY: '' # Use Docker Hub when empty
  CI_IMAGE_NAME: sealdemo/game2048
  CD_WALRUS_PROJECT: demo
  CD_WALRUS_PROJECT_ENV: dev
  CD_WALRUS_SERVICE_NAME: game2048
  
jobs:
  delivery:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Set up JDK 8
      uses: actions/setup-java@v3
      with:
        java-version: '8'
        distribution: 'temurin'
        cache: maven
    - name: Build with Maven
      run: mvn -B clean package --file pom.xml
    - name: Docker Login
      uses: docker/login-action@v3.0.0
      with:
        registry: ${{ env.CI_REGISTRY }}
        username: ${{ secrets.CI_REGISTRY_USERNAME }}
        password: ${{ secrets.CI_REGISTRY_PASSWORD }}
    - name: Build and push Docker image
      run: |
        docker build . --file Dockerfile --tag ${{ env.CI_IMAGE_NAME }}:${{ github.run_id }}
        docker push ${{ env.CI_IMAGE_NAME }}:${{ github.run_id }}
    - name: Download CLI
      run: |
        # Download walrus CLI
        curl -v -k -o walrus -LO "${{ secrets.CD_WALRUS_SERVER }}/cli?arch=amd64&os=linux"
        chmod +x ./walrus
    - name: Deploy
      run: |
        # Setup CLI config
        ./walrus config setup --insecure --server ${{ secrets.CD_WALRUS_SERVER }} --token ${{ secrets.CD_WALRUS_TOKEN }} --project ${{ env.CD_WALRUS_PROJECT }} --environment ${{ env.CD_WALRUS_PROJECT_ENV }}
       
        # Deploy app
        ./walrus service create --debug --name ${{ env.CD_WALRUS_SERVICE_NAME }} --template '{"name": "webservice", "version": "v0.0.2"}' --attributes '{"image": "${{ env.CI_IMAGE_NAME }}:${{ github.run_id }}", "ports": ["8080"]}'

 

现在,选择 Actions 选项卡,尝试触发工作流执行并检查结果。
 

 

如果在工作流程执行过程中遇到任何错误,请先检查 GitHub Actions 的权限和配置,确保一切都设置正确。
 

 

完成部署后,您可以在 Walrus 中查看所部署的2048游戏。可以使用此 URL(http://domain:port/2048/)访问2048游戏。
 

 

到此,你已经成功部署2048游戏啦,Enjoy your time~
 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/156191.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

抖音自动评论助手,其开发流程与需要的技术和代码分享

先来看实操成果,↑↑需要的同学可看我名字↖↖↖↖↖,或评论888无偿分享 在当今这个信息爆炸的时代,我们不难发现,无论是在线上还是线下,我们都无法忽视一个重要的信息传播工具——抖音。这款短视频平台以其强大的传播…

C/C++高频面经-秋招篇

自己在秋招找工作过程中遇到的一些C/C面试题,大中小厂都有,分享出来,希望能帮到有缘人。 C语言 snprintf()的使用 函数原型为int snprintf(char *str, size_t size, const char *format, …) 两点注意: (1) 如果格式化后的字符…

软件安全学习课程实践3:软件漏洞利用实验

1 逆向分析 1.1.1 和 1.1.2 直接 F5 看 flag 就可以了,故略。 1.1.3 对输入用了算法变换,能看到flag,比如输入x,经过f处理成f(x)然后判断f(x)=y,现在要破解f的算法然后写个逆预算g(y)=x 这个代码看起来很抽象,因为 IDA 没有正确的恢复这里的变量结构。选中变量按“N”重…

出行类app如何提升广告变现收益?

出行类APP已经成为越来越多人们出行的首选,出行类app在变现方式上存在以下痛点:APP功能单一、使用场景单一;用户使用时间集中,粘性低...这些痛点使得开发者获取收益的提升面临极大的挑战。 https://www.shenshiads.com 如何让出…

物料堆垛无线测温解决方案

近年来物质电厂越来越多,生物质燃料垛的安全贮存对于整个生物质行业来说都是一个严峻的问题,测温工作在燃料垛防护中十分重要,测温工作到不到位对安全隐患的排除有直接关系,因此一个适合生物质燃料垛的测温仪器是必须的。现阶段生…

开源与闭源软件的辩论:对大模型技术发展的影响

目录 前言1 开源软件的优缺点1.1 开源软件的优点1.2 开源软件的缺点和挑战 2 闭源软件的优缺点2.1 闭源软件的优点2.2 闭源软件的缺点和挑战 3 大模型发展会走向哪一边结语 前言 近期,特斯拉CEO马斯克公开表示:OpenAI不该闭源,自家首款聊天机…

还能这样操作?勒索软件团伙向监管部门举报受害者!

ALPHV/BlackCat 勒索软件团伙将敲诈勒索提升到了一个新高度,该组织向美国证券交易委员会提交了一份投诉,指控其一名受害者未遵守“一旦遭遇网络攻击,需要在四天内披露”的有关规定。 早些时候,ALPHV/BlackCat 勒索软件团伙将软件公…

cocos2dx中,将png图片打包plist图集,使用什么工具呢?

cocos2dx中,将png图片打包plist图集,使用什么工具呢?小编这里推荐一款免费的图集打包工具,pngPackerGUI_V2.0,此软件是在pngpacker_V1.1软件基础之后,开发的界面化操作软件,方便不太懂命令行的小…

医疗项目的需求分析以及开发流程

一.项目的背景以及需求 1.项目背景 1.政策层面来看,近年来我国政府相关部门陆续颁发了支持数字医疗行业发展的相关政策,“互联网医疗”政策逐渐明确完善,为数字医疗行业发展提供支持,行业迎来政策福利期。 其次,从经济…

leetcode算法之前缀和

目录 1.DP34[模板]一维前缀和2.DP35[模板]二维前缀和3.寻找数组的中心下标4.除自身以外数组的乘积5.和为K的子数组6.和可被K整除的子数组7.连续数组8.矩阵区域和 1.DP34[模板]一维前缀和 一维前缀和 #include <iostream> #include <vector> using namespace std…

我对需求分析的理解

一、背景 最近做了一个项目&#xff0c;也算是踩坑过程&#xff0c;产品上线了&#xff0c;用户不怎么买单&#xff0c;使用者聊聊无几&#xff0c;前期一直不清楚为什么会这样&#xff0c;诚然新系统的开发设计上采用了更新的技术&#xff0c;设计上采用了更好的理念&#xf…

计算两个图形遮盖率

读取图像 首先&#xff0c;加载待处理的图像&#xff0c;可以使用图像处理库&#xff08;例如OpenCV&#xff09;来实现这一步。确保已加载正确的图像。 定义特定颜色范围 确定所需的特定颜色范围。这将是要检测的马赛克填充的颜色。需要指定颜色的下限值和上限值&#xff0c;通…

单片机语音芯片在工业控制中的应用优势

单片机语音芯片&#xff0c;这一智能化的代表产品&#xff0c;不仅在家庭和消费电子领域发挥着重要的作用&#xff0c;更为工业控制领域注入了新的活力。将单片机语音芯片与语音交互技术相结合&#xff0c;为工业设备的控制和监测提供了前所未有的解决方案。 首先&#xff0c;…

宏集干货 | 手把手教你通过CODESYS V3进行PLC编程(三)

来源&#xff1a;宏集科技 工业物联网 宏集干货 | 手把手教你通过CODESYS V3进行PLC编程&#xff08;三&#xff09; 教程背景 通过之前的教程&#xff0c;我们已经为大家演示了宏集MC-Prime控制器的连接、试运行和CODESYS的安装&#xff0c;并创建了一个计数器项目。在本期教…

法与智融合,拓世科技集团子公司教授加拓世团队培训大会圆满成功

2023年11月15日&#xff0c;拓世科技集团子公司北京教授加拓世团队抵达拓世集团总部&#xff0c;展开为期两天的参观学习活动&#xff0c;旨在深度挖掘人工智能技术在法律领域的潜力&#xff0c;为法学研究、法律服务行业快速实践数字化提供更加智能高效的支持。 拓世科技集团…

用护眼灯到底好不好?适合小学生用的五款护眼台灯推荐

如果不想家里的孩子年纪小小的就戴着眼镜&#xff0c;从小就容易近视&#xff0c;那么护眼灯的选择就非常重要了&#xff0c;但是市场上那么多品类&#xff0c;价格也参差不齐&#xff0c;到底怎么选呢&#xff1f;大家一定要看完本期内容。为大家推荐五款护眼台灯。 一、书客护…

适用于 Mac 的 10 款最佳数据恢复工具

对于依赖计算机处理重要文件&#xff08;无论是个人照片还是重要业务文档&#xff09;的任何人来说&#xff0c;数据丢失都可能是一场噩梦。 值得庆幸的是&#xff0c;有多种数据恢复工具专门用于Mac用户&#xff0c;可以帮助您恢复丢失或意外删除的文件。 在本文中&#xff0c…

开源软件 FFmpeg 生成模型使用图片数据集

本篇文章聊聊&#xff0c;成就了无数视频软件公司、无数在线视频网站、无数 CDN 云服务厂商的开源软件 ffmpeg。 分享下如何使用它将各种视频或电影文件&#xff0c;转换成上万张图片数据集、壁纸集合&#xff0c;来让下一篇文章中的模型程序“有米下锅”&#xff0c;这个方法…

2023最新最全【Python3.11.3】下载安装零基础教程【附安装包】

前言&#xff1a;链接在最底下 Python是一种可在多个平台上运行的计算机程序设计语言&#xff0c;它是一种高层次的脚本语言&#xff0c;结合了解释性、编译性、互动性和面向对象的特点。最初&#xff0c;它的设计目的是用于编写自动化脚本(shell)。但随着版本的更新和新功能的…