使用Git web鉤子探究OpenShift Source-to-Image功能
譯文【51CTO.com快譯】 OpenShift是一種基于Kubernetes編排工具的企業應用平臺。它可以從許多來源部署應用程序,包括源代碼和預構建映像。在本文中,我將介紹Source-to-Image(S2I)以及如何使用Git web鉤子使整個過程實現自動化。您可以在OpenShift Interactive Learning門戶網站(https://learn.openshift.com/?intcmp=701f20000012ngPAAQ)上隨意試用。
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和服務,您可以執行以下操作:
- $ oc new-app --name=demo https://github.com/ashutoshbhakare/php
- $ 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。
想獲得秘密信息:
- $ oc get bc demo -o yaml | grep secret
- secret: N58sBgReryjBwYIBp4FV
- 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】