使用Git web钩子探究OpenShift Source-to-Image功能

译文
开发 前端
本文介绍了使用Git web钩子(webhook)查看OpenShift的Source-to-Image功能,一定会吸引到您。

【51CTO.com快译】 OpenShift是一种基于Kubernetes编排工具的企业应用平台。它可以从许多来源部署应用程序,包括源代码和预构建映像。在本文中,我将介绍Source-to-Image(S2I)以及如何使用Git web钩子使整个过程实现自动化。您可以在OpenShift Interactive Learning门户网站(https://learn.openshift.com/?intcmp=701f20000012ngPAAQ)上随意试用。

[[352953]]

Source-to-Image

S2I是一个进程,获取存储在Git或SCM等源代码控制管理工具中的应用程序的源代码,使用BuildConfig将代码放在基础映像上,然后使用DeploymentConfig部署应用程序。下面这个简单的图可以帮助我们了解整个过程。在此过程中,如果开发人员在Git上更新了代码,我们必须使用该命令手动触发构建:

oc start-build

图1. S2I开发者工作流程

然而,OpenShift提供了一种使用web钩子处理BuildConfig自动触发的好方法。不妨看一下它的快速演示。为此,我使用在OpenShift 4.2 CRC上运行的learn.openshift.com。

想使用S2I进程来启动应用程序――该流程可一次性创建ImageStream、BuildConfig、DeploymentConfig和服务,您可以执行以下操作: 

  1. $ oc new-app --name=demo https://github.com/ashutoshbhakare/php 
  2. $ oc expose svc demo  # to create the route 

现在,不妨尝试使用web钩子整合OpenShift和GitHub。为此,我们需要一个web钩子URL和秘密信息(secret),用于向OpenShift验证GitHub触发器。因此,每当开发人员更新GitHub源代码时,它都会立即向OpenShift触发构建。web钩子是在端口6443上运行的API调用。想获得web钩子和秘密信息,我们可以使用:

$ oc describe bc demo

返回下面的输出:

图2. 获取web钩子的URL和秘密信息

在上面的示例中,按照我的learn.openshift.com在线实验室,必须将https://openshift:6443换成我们的OpenShift的主URL。

想获得秘密信息: 

  1. $ oc get bc demo -o yaml | grep secret 
  2.       secret: N58sBgReryjBwYIBp4FV 
  3.       secret: u1BaRZVDxAfvsT5lC3tX 

我们将使用第二个值,该值用于一般的web钩子:GitHub的有效负载URL。

添加web钩子

这是在线实验室中最棘手的部分。

现在不妨进入到GitHub,并为其添加web钩子有效负载URL。只需点击设置和“选择Web钩子”选项→“添加Web钩子”,我们将像上面一样拷贝整个有效负载URL,并将秘密信息粘贴到文本框中。

图3. 像上面一样拷贝整个有效负载URL,并将秘密信息粘贴到文本框中

这就是GitHub和OpenShift web钩子整合成功完成的样子。我们可以通过更改Git代码进行测试,这会得出以下信息,显示了最近的交付结果。

图4. 网页显示了最近的交付结果

结束语

Source-to-Image(S2I)有助于通过使用web钩子启动应用程序的过程实现自动化。这个过程很简单,您可以在OpenShift Interactive Learning门户网站自行演示。

原文标题:Exploring OpenShift Source-to-Image using Git webhooks,作者:Ashutosh Bhakare

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:华轩 来源: 51CTO
相关推荐

2014-03-18 09:27:30

2019-04-16 10:29:30

2010-02-04 16:52:01

多层交换技术

2010-11-02 13:45:52

TFS2010VS2010微软

2022-05-11 09:50:02

GitLinux

2024-02-19 18:04:32

Git功能项目

2024-05-21 09:01:00

2021-03-28 09:17:18

JVM场景钩子函数

2010-08-13 16:10:11

FlexCSS

2021-08-16 13:18:59

GNOME WebCanaryLinux

2024-04-10 07:49:37

React 19use 钩子Suspense

2017-02-05 11:13:02

红帽

2023-08-31 08:12:23

应用场景业务异常HTTP

2020-04-15 09:00:00

OAth 2.0OpenIDWeb应用

2017-02-08 13:33:34

AndroidJavaPhp

2021-05-31 11:30:43

Linuxsource命令

2021-05-16 08:22:19

Linux命令 Source

2010-08-04 09:43:28

Flex应用程序

2010-09-28 15:27:09

JavaScript

2020-10-18 08:51:18

Spring Boot
点赞
收藏

51CTO技术栈公众号