GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

日前GitLab官方博客宣佈發佈又一個月度新版本12.9。該版本主要在安全性、DevOps、可視性和代碼質量報告和定製的價值流分析等等。詳細功能介紹請隨蟲蟲一起學習。

重要功能概述

通過Secrets Management和漏洞修復保護的應用程序

許多公司都在使用基於外部基礎結構管理解決方案(比如HashiCorp Vault)集中管理的基礎結構和應用程序中涉及的密碼。在GitLab 12.9中,用戶可以在Kubernetes集群中託管安裝HashiCorp Vault應用程序,從而實現項目級別密鑰令牌和其他密碼的安全管理。

當容器掃描檢測到漏洞時,GitLab 12.9可以為漏洞提供建議解決方案。可以選擇使用合併請求來修復漏洞,合併請求將自動更新容器基礎鏡像中的軟件包,從而幫助快速有效地解決容器安全問題。

可自定義的價值流分析和代碼質量報告,更好的可視性

值流分析可幫助組織可視化其端到端的工作流並識別低效率,從而不斷改善其交付價值的方式。以前,生命週期階段固定在DevOps循環中,因為有些團隊可能遵循不同的工作流程,所以它可能不適合所有人。在GitLab 12.9新版本中,可以更好實現自定義,以調整適合業務的指標。每個新階段都可以具有特定的觸發事件,這些事件定義了該階段的進入或退出,使可以根據定義的關鍵績效指標來專注於改進。

以前,開發人員在合併請求中使用代碼質量功能來了解對目標分支質量的影響。但是,這不能使開發人員和管理人員瞭解整個項目中的其他代碼質量問題。在GitLab 12.9中,引入了完整代碼質量報告,該報告總結了整個項目中的質量問題。

使用組部署令牌提高效率

對於任何使用容器的團隊,協調者對其安全性和持續訪問其容器註冊表至關重要。此前引入了Project Deploy Tokens,以向註冊表提供長期的只讀身份驗證,而無需與特定用戶關聯或具有不必要的訪問權限。

在GitLab 12.9新版本中,批量管理部署令牌現在變得更加高效。在組級別引入了還引入了用創建、列出和撤消部署令牌的API。如果特定項目要求使用不同的令牌,則項目級別的部署令可以覆蓋組級別的部署令牌。

GitLab 12.9中發佈的主要功能

選擇並消除多個漏洞(ULTIMATE)

安全儀表板可快速洞察並查看由各種安全掃描程序檢測到的潛在漏洞。開發和安全團隊成員可以快速檢查,分類和創建問題以修復漏洞。有時,漏洞無需採取進一步措施,就可以消除。對於具有多個此類發現的項目,將其逐個解散會很耗時。

很高興在安全儀表板上宣佈新功能,以提高漏洞管理的效率。新版本中支持快速選擇多個漏洞發現並立即將其全部消除。

從管道、項目、組或實例安全性儀表板中,單擊一下即可選擇屏幕上的所有漏洞,或者選擇特定的漏洞然後以預設的原因將其消除。為了更快地進行分類,可使用現有的儀表板過濾器僅查看可能會出現可忽略的發現的特定漏洞類型。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

HashiCorp Vault GitLab CI/CD託管應用程序

GitLab希望使用戶能夠輕鬆進行現代機密管理。新版本中提供了在Kubernetes集群中安裝Vault的功能,這是GitLab CI託管應用程序流程的一部分。這將支持在Helm圖表安裝中在項目級別對密鑰,令牌和其他機密進行安全管理。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

組部署令牌

GitLab已經支持項目級的部署令牌。新版本在組級別添加了對部署令牌的支持,以使配置項目組更加容易。這將使項目之間的密鑰共享更加方便,可以支持如下的場景:用戶將多個項目部署到一個K8S集群中,每個項目需要創建不同的密鑰。創建組級別令牌使用戶可以為整個群集設置一個共享密鑰。

發佈進度視圖

GitLab發佈是發佈所有內容的一站式界面。在GitLab 12.9中新引入的了"發佈進度視圖"功能,能夠輕鬆解決許多發佈和構建管理員花時間手動收集的問題。在"發行"頁面上的單一界面中,可以看到與發行里程碑相關聯的未解決,已解決和正在進行的公共問題的數量。方便的進度條進度欄還將使快速瞭解發佈的進度。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

動態子管道

從這個版本開始,可以使用動態生成的來啟動子管道.gitlab-ci.yml。使用該方法,可以生成子管道,以反映對更改或其他條件的運行時分析(例如,構建目標和體系結構的矩陣)。

這項新增功能將開闢一套全新的用例,同時有助於使配置保持簡單。

用於部署到ECS的GitLab CI/CD模板

許多用戶希望使用GitLab CI/CD部署到AWS。為了幫助部署到Elastic Container Service(ECS),創建了一個模板,向展示如何入門。

用戶可以在配置中包括模板,指定一些變量,他們的應用程序將立即部署準備就緒。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

跳過超時的部署作業

在GitLab 12.9之前的版本中,嘗試推出管道的用戶可能會遇到這樣的情況,即較舊且延遲的管道將在新部署之後部署並覆蓋它。現在,正向部署提供了一種選項,以確保管道運行時,已被驗證為最新部署,並確保較舊的管道不會覆蓋較新的管道。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

Web應用程序防火牆(WAF)控件

新版本中增加了用於管理Web應用程序防火牆(WAF)的新控件,可以在項目的"操作"->" Kubernetes"頁面上全局打開或關閉WAF 。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

Web應用程序防火牆(WAF)統計報告(ULTIMATE)

WAF同時提供了詳細的統計報告功能。如下圖可以看到有關總流量和阻止流量的數據,從而使可以更輕鬆地確定如何配置,調整和評估Web應用程序防火牆。

WAF統計信息將顯示在"安全與合規性"菜單項下的新"威脅監視"頁面上。默認數據為30天。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

動態環境對Review Apps的支持

commit應用目前需要使用靜態網址作為CI/CD變量CI_ENVIRONMENT_SLUG。但是,在許多用例中,該環境變量是動態的。例如,當使用AWS時,用戶可能希望根據階段使用環境名稱,而在部署之前可能不知道。

在12.9中,引入了一個新的報表工件dotenv。該工件可以在作業之間傳遞,從而為Review Apps提供真正的動態URL支持。這將釋放在動態環境(例如本地雲部署)中使用Review Apps的能力。

在高級版中使用組級路線圖(PREMIUM及以上)

組級別的路線圖現在可用於Premium。跟蹤工作狀態是按時交付價值的關鍵。在時間軸上可視化的Epics,並查看何時計劃完成。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等


在路線圖上按重量查看史詩般的進度(PREMIUM及以上)

新版本中路線圖可通過顯示的Epics的進度條顯示完成的重量百分比,從而幫助可視化進度。輕鬆掌握最新的關鍵項目和工作!

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

Gitaly(alpha)的高可用性(PREMIUM及以上)

對於許多客戶而言,GitLab是一項業務關鍵型應用程序,因為中斷會阻止開發人員提高工作效率,並阻礙新功能和修復程序的部署。為了防止中斷,可以在高可用性(HA)配置中運行GitLab。當前記錄的HA配置建議使用NFS。隨著存儲庫大小的增長,NFS大大增加了讀取和寫入操作的延遲,這會嚴重影響了Git操作的性能。

現在,Gitaly在不使用NFS的情況下提供了實驗性功能實現高可用性。

此功能不要在生產環境中使用。有單點故障,並且可能會發生意外的數據丟失。

Gitaly的高可用性最終是一致的,實現為異步複製隊列,因此優先考慮可用性而不是一致性。如果在耗盡複製隊列之前在主Gitaly節點上發生了中斷,則將發生數據丟失。同時,已經開始研究強烈的一致性,以防止發生此類數據丟失的情況。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

容器掃描的建議解決方案(ULTIMATE)

"容器掃描"掃描到基本鏡像的漏洞時,GitLab將提供建議性的解決方案。用戶必須選擇"使用合併請求解決",然後提交使用建議的解決方案生成的合併請求。這有助於快速有效地響應和解決基於容器的安全性發現,同時降低安全風險和合規性風險。

完整代碼質量報告(STARTER及以上)

用戶已經充分利用了合併請求中的代碼質量功能,以防止在進行單個更改後代碼質量下降,但這可能無法充分了解項目中的其他問題。現在,參與者可以查看其他代碼質量問題,以便在當前的合併請求或將來的更改中解決它們。

為了更好地使用戶能夠編寫高質量的代碼,完整的"代碼質量"報告輸出現已在CI/CD管道中提供,並且可以下載。開發人員可以在GitLab UI中更深入地瞭解其項目中的任何代碼質量問題。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

其他審核事件(STARTER及以上)

注重合規性的組織需要了解其用戶的操作。這可以幫助識別異常活動,減輕風險,對某些行為採取措施並記錄活動以符合法規要求。正在繼續開展"審核事件"類別的工作,努力捕獲100%用戶驅動的事件,以支持依賴GitLab進行用戶活動的可審核性和可追溯性的組織。

GitLab 12.9中為合併請求批准設置所做的更改提供審核事件:阻止合併請求作者批准合併請求,阻止合併請求提交者批准合併請求以及所需批准的數量。這些事件在項目級和實例級審核事件表中可見。

啟用Git協議v2

已通過SSH重新啟用對Git v2的支持。在以前的版本GitLab 12.8中,重新啟用了對基於HTTP的Git協議v2的支持。它先前在GitLab 11.4中發佈,但由於Git 2.21之前的Git版本中的安全問題而被禁用。

開發人員每天要多次獲取引用,以檢查當前分支是否位於遠程分支之後。以前,對提取命令的所有響應都包括存儲庫中所有引用的列表。例如,獲取單個分支的更新(例如git fetch origin master)還將檢索所有引用的完整列表。對於大型項目,這可能會超過100,000個引用和數十兆字節的數據。現在,僅傳輸所需的引用。

Gitv2是對Git Wire協議的主要更新,該協議定義了客戶端和服務器(GitLab)之間如何通信克隆,獲取和推送。新的Wire協議提高了命令操作的性能,並支持將來的協議改進。

默認情況下,Git協議v2在Git 2.26啟用,並且可通過運行從Git 2.18中支持 git config --global protocol.version 2。

HTTP推送鏡像API

推送鏡像允許自動將Git存儲庫中的更新推送到其他位置存儲的副本。可以通過項目設置輕鬆配置鏡像,但是如果需要為數百個項目配置鏡像,則不可行。新的Remote Mirrors API通過允許使用API​​配置基於HTTP的推送鏡像來解決此問題。

"Visual Review小部件中列出更改的頁面(STARTER及以上)

在Review App中,尤其是在靜態生成的網站中,可能難以導航到更改的頁面。通過查看應用程序和可視化評論,可以輕鬆地在修改頁面上直接在"合併請求"中留下評論。

從GitLab 12.9開始,Visual Review工具的用戶將能夠使用下拉列表直接導航到在合併請求中修改的頁面,從而更容易找到更改的頁面並提供有關合並請求。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

提交Web IDE中的所有更改

在GitLab 12.7中,開始自動暫存Web IDE中的所有更改。如果所有更改在離開Web IDE之前未正確地進行,此措施還有助於防止意外丟失。

這是Web IDE工作流程中的一項重要更改,現在,通過從Web IDE中完全刪除暫存工作流程,使此過程變得更加容易。現在,當用戶在Web IDE中進行更改時,將不需要決定暫存或取消暫存所做的更改。將會有一個新的"更改"選項卡,其中包含所有已更改文件的列表。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等


Web IDE的白色語法突出顯示主題

用戶強烈希望使用的工具具有一致性,這是GitLab長期以來支持替代語法突出顯示主題的原因。白色主題是整個GitLab中最受歡迎的主題,但是代碼編輯器區域在應用匹配主題方面一直不一致。

現在,Web IDE與GitLab的存儲庫和diff區域中的White語法突出顯示首選項一致。將繼續擴展對Web IDE中語法突出顯示首選項的支持。還將繼續將GitLab 12.8中引入的深色主題擴展到Web IDE的其餘部分,包括文件樹和側邊欄等。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

在日誌瀏覽器中支持分頁

以前,日誌瀏覽器在控制檯上僅顯示500行。限制了用戶對事件進行分類時查看日誌的能力。支持分頁,用戶可以選擇自己喜歡的任何時間範圍並無限滾動以查看無限數量的日誌行。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

從事件深入到日誌瀏覽器

以前,用戶在對事件進行故障排除時很難找到相關的日誌。從12.9開始,用戶可以直接從事件向下鑽取到日誌瀏覽器,同時保留相同的時間範圍,從而簡化了對事件的調查並找到了根本原因。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

在自定義儀表板中支持其他查詢變量

可以使用Prometheus查詢創建和配置自定義儀表板。為了允許用戶創建可在不同項目中使用的儀表板定義擴展了支持,可以在Prometheus查詢中包括其他CI變量。

在12.9版本中,可以直接在度量標準圖表中編輯自定義度量標準,而不是導航到Prometheus設置來編輯度量標準。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

度量圖表中y軸的格式

為了改善y軸上的單位和表面精確數據的可視化,引入了對在度量圖表上設置y軸格式的支持。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

從UI創建發佈


GitLab現在為用戶提供了從UI創建發佈的功能。用戶只需單擊一下即可創建一個標籤,該標籤包含的發行版本的所有內容,包括髮行說明,里程碑關聯以及從作為資產存儲的API添加的鏈接。對於直接從"發佈"頁面計劃團隊發佈管理,而不是需要轉到"標籤"視圖。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

禁用默認值和變量的繼承

以前,用戶可以使用default:關鍵字將某些參數設置為所有作業的全局默認值。但是,為特定作業禁用這些默認值需要手動覆蓋每個設置,並且效率低下。此外,一旦將變量定義為全局默認值,就不可能阻止其繼承。

在GitLab 12.9中,現在添加了禁用全局定義的默認值和變量的繼承的功能。使用該inherit:參數,用戶可以顯式定義從全局默認值繼承的內容,並更輕鬆地定義作業的行為。

在GitLab NPM註冊表中找不到軟件包時,使用npmjs作為默認的遠程存儲庫(PREMIUM及以上)

GitLab NPM註冊表允許用戶在其源代碼和管道旁邊託管一個私有NPM註冊表。如果GitLab NPM註冊表是GitLab group_name範圍內軟件包的唯一來源,則此方法效果最佳。但是,通常當用戶的私有軟件包依賴於那些公共軟件包時,用戶也會使用相同的範圍將開源軟件包發佈到全局NPM註冊中心。

在GitLab 12.9中,很高興地宣佈,當在GitLab私有註冊表中找不到該軟件包時,現在可以將npmjs用作遠程存儲庫。該功能將在實例級別自動啟用,並且可以通過導航到實例級別的CI/CD設置禁用。

項目級代碼搜索現在可靠響應

現在,在項目內搜索代碼可以快速響應,大多數查詢在250毫秒內完成。在此前版本的GitLab中,當禁用高級全局搜索時,生成大量結果的查詢可能會需要10秒或更長時間的延遲。該改進會影響GitLab UI以及項目Blob搜索API。

設計URL的特殊降價渲染(PREMIUM及以上)

共享指向"設計"選項卡的鏈接是協作的重要部分,也是用戶如何在註釋或描述中顯示"設計"的重要部分。當前,在markdown中共享指向"設計"標籤的鏈接時,該鏈接很長且不合規則: /gitlab-org/gitlab/-/issues/12345/designs。

在新版本中,GitLab以可讀的方式呈現這些鏈接,因此很容易在問題描述或註釋中區分設計。

縮放設計現在支持完整寬度的長圖像(PREMIUM及以上)

當網站佈局在問題面板上載為設計時,它們的尺寸通常很高。寬高比通常用於內容很多且用戶必須向下滾動的網站佈局。在新版本,可以放大更長的設計,以便可以更輕鬆地以100%的寬度查看和評論該設計。

使用API​​可以進行組導出和導入

在GitLab實例之間進行遷移可能會遇到挑戰,尤其是從自建GitLab實例到GitLab官網的遷移時組織可以在許多項目和組中組織其工作,這些遷移必須通過一次導出和導入一個項目來完成。

隨著Group Export/Import MVC的發佈,用戶可以導出整個組並將其輕鬆導入到所需的GitLab實例中,支持GitLab在線倉庫或者其他GitLab實例。

通過自定義證書頒發機構在網絡中支持SAST(ULTIMATE)

GitLab實例現在支持自定義證書頒發機構的環境中利用SAST掃描。這允許進行高級網絡配置,例如利用自簽名證書或自定義證書頒發機構來啟用HTTPS流量監控之類的用例。

可定製的價值流分析(PREMIUM及以上)

Value Stream Analytics通過提供與軟件過程的計劃,開發,審查,測試和生產發佈相關的關鍵指標,使團隊能夠了解其開發過程的行為。在12.9GitLab用戶可以更好地控制用來反映其過程的度量。對於每個生命週期階段,團隊負責人可以定義觸發事件,這些觸發事件定義何時將問題或MR視為已進入或退出該階段。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

使用GitLab API創建和撤消項目和組部署令牌

部署令牌使用戶可以git clone在不提供用戶名和密碼的情況下(通過SSH和)獲取項目存儲庫或獲取項目的Container Registry鏡像。這使用戶可以為其項目創建單個令牌,並避免使用個人訪問令牌。但是,對於具有多個組,子組和項目的組織,為每個項目創建部署令牌效率低下且困難。維護者或管理員需要一種方法來輕鬆創建和撤銷許多組和項目的部署令牌。

在GitLab 12.9中,很高興地宣佈,擴展了Gitlab API,允許用戶在組/子組/項目級別創建,列出和吊銷部署令牌。

在合併請求中標記過時的安全報告(ULTIMATE)

以前,無法從合併請求視圖判斷分支的安全報告是否已過時。這隻能通過手動比較合併請求中的安全報告與master分支上的安全報告來解決。如果提交中源分支位於目標分支之後,則合併請求現在將顯示所選分支的安全報告已過時。提供指導以使其更新。

減少符合條件的批准者的電子郵件通知(STARTER及以上)

GitLab提供了各種級別的通知,包括Participate,當參與合併請求或發佈後,它會通知活動。但是,已被配置為合格合併請求批准者的人員將在其為合格批准者的每個合併請求上收到有關所有活動的通知。這使得除了最小的項目以外的所有電子郵件通知數量都激增了。

從GitLab 12.9開始,合格的批准者將不再被視為參與者,直至他們發表評論或批准合併請求為止。這會減少發送給合格審批者的電子郵件數量,讓他們可以專注於重要的通知。如果想接收更多電子郵件,"監控"設置將通知有關該項目的任何活動。

通過Epics選問題列表(PREMIUM及以上)

現在,可以按Epics篩選問題列表。快速拉出問題列表,進行批量審查並與其進行交互以分配其他標籤或里程碑。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

許可證合規性下的"新策略"選項卡(ULTIMATE)

以前,開發人員只能在合併請求中查看新添加許可證的許可證策略。使用GitLab 12.9,所有參與者現在都可以輕鬆查看項目中檢測到的所有許可證的列表,以及為該項目配置的所有許可證策略的列表。開發人員可以輕鬆地主動驗證項目中是否許可。此新視圖還允許維護人員從新選項卡內添加或編輯許可證策略。

GitLab託管CodeSandbox進行客戶端實時預覽

在GitLab 11.2中,發佈了由CodeSandbox支持的實時預覽,使可以預覽Web IDE中的簡單Javascript應用程序和靜態站點。該功能取決於CodeSandbox託管的腳本,但是由於與向第三方發送私人代碼有關的安全問題,一些客戶對使用該功能感到不滿意。

通過GitLab在線倉庫託管所需的軟件包,以在Web IDE中啟用實時預覽。這是跨GitLab的自建實例實例啟用此功能的第一步。在將來的版本中,將為自建實例實例提供一個配置選項,以託管所需的庫本身,並且還將研究默認情況下為所有GitLab實例啟用它。

查看發佈,合併請求和Epics的更改歷史記錄(STARTER及以上)

問題、合併請求和Epics的描述可以自然地自由編輯。在過去,系統並沒有記錄更改,並且丟失了這些描述的歷史。GitLab新版本中,會存儲這些更新,並允許查看進行了哪些更改,進行了哪些更改以及何時進行的。

從一個頁面查看所有Pod日誌

在雲原生世界中,日誌分佈在多個Pod中。以前,用戶必須分別選擇每個Pod才能查看其日誌,這可能會帶來挑戰,因為Pod可以大幅擴展。在12.9中,增加了選擇"所有容器"的功能,以幫助用戶在單個視圖中排除事件或驗證其服務狀態,而不必分別選擇每個容器。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

日誌聚合

作為2020年禮物的一部分,決定將監控階段的日誌聚合功能從GitLab Ultimate遷移到GitLab Core。從GitLab 12.9開始,所有用戶都可以在GitLab UI中查看其基於Kubernetes的應用程序日誌。

為所有gitlab配置的警報自動嵌入有問題的指標

當Prometheus警報被觸發時,GitLab事件管理可以自動創建問題。度量圖表有助於可視化引起警報的異常原因。以前,可以將圖表嵌入到問題描述中,但這需要手動獲取圖表URL並將其粘貼到問題中。

從12.9版本開始,超出閾值的指標的圖表可視化將自動嵌入到問題描述中。這種可視化為節省了戰鬥時間。可以立即獲取重要信息,而無需訪問外部資源並執行手動設置。

注意:此新功能僅適用於從GitLab的Metrics儀表板配置的警報。在未來的迭代中,計劃為所有Prometheus警報啟用自動圖表。

按狀態過濾錯誤列表

當信噪比很低時,挖掘大量錯誤以找到影響用戶的重要錯誤可能是一個挑戰。現在,可以按錯誤狀態(忽略,已解決或未解決)在GitLab中篩選Sentry錯誤的列表視圖,以消除問題並關注實際需要修復的問題。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

使用GitLab CI/CD安裝Crossplane應用程序

使用GitLab CI/CD安裝Kubernetes應用程序是一種在安裝之前自定義GitLab託管應用程序的好方法。

作為此發行版的一部分,添加了使用GitLab CI/CD安裝Crossplane的模板。通過GitLab CI/CD安裝Crossplane圖表,用戶可以指定任何和所有Crossplane圖表配置選項。

部署密鑰和部署令牌將移至CI/CD設置

部署密鑰和部署令牌功能被挪到"設置">" CI/CD"。之前的位置是"設置">"存儲庫"。

指定不能被Container Registry批量刪除API的一部分刪除的Docker鏡像

對於擁有許多小組和項目的組織,通過使用批量標籤刪除API刪除舊的,未使用的Docker鏡像會更加有效。但是,目前尚沒有簡便的方法來表達諸如"無論如何,請勿刪除此標籤"之類的內容。由於可以刪除release或master鏡像,因此這在刪除過程中帶來了風險。

在12.9中,可以將name_regex_keep屬性添加到批量刪除API中,以防止刪除與提供的正則表達式匹配的任何標記。現在,有一種更簡單的方法來防止重要圖像被刪除!

改進了Google Cloud Storage(GCS)的GitLab容器註冊表垃圾收集算法的性能

的用戶對在舊的未使用的鏡像上運行垃圾收集所需的長時間停機感到。對清除代碼效率的改進意味著不必在兩個錯誤的選擇之間進行權衡:長時間停機或保留大量不需要的文件。

在GitLab 12.9中,使用GitLab容器註冊表並利用GCS進行存儲的實例的垃圾收集性能有了顯著提高。在使用1.4GiB存儲庫進行測試時,該存儲庫是dev.gitlab上使用的10 TiB註冊表的近似,觀察到性能提高了95%。

跟蹤合併請求中精心挑選的提交

跟蹤交付給生產環境的一切非常重要。新版本中,將記錄何時將合併提交挑選到要部署的分支中(通過UI或API完成時)。原始合併請求線程使用系統註釋更新,該系統註釋指示將合併提交精選到已部署的分支中,並且它也包含在已部署的合併請求列表中。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

使用Puma減少GitLab的內存消耗

GitLab正在將應用服務器從Unicorn切換到Puma,從而將GitLab的內存佔用量減少40%。效率的提高可以使GitLab管理員利用較小的內存實例,從而降低服務的運營成本。與Unicorn的單線程模型相比,通過利用Puma中的多線程來提高性。Puma支持在Omnibus中可用,而Helm圖表中是實驗性的。計劃將在GitLab 13.0 默認使用Puma作為應用程序服務器。

拖放支持上傳設計

在此發行版之前,將設計上傳到GitLab的唯一方法是單擊並使用文件上傳器。這種方法有效,但效率不如拖放。使用此版本,現在可以在"設計"選項卡中執行以下操作:

通過拖動新文件並將其放到dropzone中來上傳新設計。

通過拖動具有相同名稱的新文件並將其拖放到現有設計中,來上載現有設計的新版本。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

修復了查找未同步的Git LFS對象時Geo數據庫超時的問題(PREMIUM及以上)

Geo將跟蹤數據庫與只讀輔助數據庫進行比較,以確定需要同步的內容。現有的設計已經過迭代和優化,將繼續對其進行改進。如果Geo的數據庫查詢超時,則無法成功複製數據。在GitLab 12.9中,使用了一種新方法來同步Git LFS文件,從而消除了數據庫語句超時的可能性。驗證解決方案之後,該設計將推廣到其他數據類型。

此外,這為允許Geo刪除對Foreign Data Wrappers的依賴奠定了基礎,添加它是為了提高性能,但使Geo變得更加複雜且難以維護。

更新了自建實例運行脫機SAST的步驟文檔(ULTIMATE)

增強了文檔,以更好地描述如何在自託管的脫機GitLab環境中運行SAST掃描。

這將使提高項目的安全性,同時在脫機環境中運行GitLab時仍可保持合規性。

Gitlab組件更新

Omnibus改進

在Geo二級數據庫上升級PostgreSQL變得更加容易。pg-upgrade 現在支持在地理跟蹤數據庫節點上升級PostgreSQL。此前,升級地理跟蹤數據庫所需的postgresql['enable']被臨時設置為設置true中gitlab.rb的文件。現在,只需pg-upgrade在跟蹤數據庫節點上運行命令。

現在支持使用外部PostgreSQL數據庫時提供默認的語句超時。以前只能在使用內置的PostgreSQL數據庫時設置。語句超時用於自動終止運行時間超過指定時間的查詢。

GitLab 12.9 引入Mattermost 5.20,它是開源的Slack替代產品,其最新版本包括新的移動編輯器,桌面深色主題等此版本安全更新等。

GitLab圖表改進

現在在Rails容器(任務運行器,Unicorn和Sidekiq)中啟用了Bootsnap。Bootsnap優化並緩存計算,以加快Rails應用程序的啟動時間。在此迭代中,看到啟動時間減少了約14%,並有望在未來獲得更大的收益。可以在其GitHub存儲庫中瞭解有關Bootsnap的更多信息。

Puma現在可以在GitLab圖表(Unicorn子圖表)中用作Unicorn 的替代應用程序服務器。與Unicorn相比,Puma可以減少40%的內存消耗。

Helm安裝中對Puma的支持在12.9中處於試驗階段,但GitLab 13.0計劃將其作為默認應用程序服務器。

GitLab app Runner 12.9

同期發佈了GitLab Runner 12.9。GitLab Runner是輕量級的跨平臺代理,可運行的構建作業並將結果發送回GitLab實例。它與GitLab CI結合使用,GitLab CI是GitLab附帶的開源持續集成服務。更改包括:

為每個構建創建網絡以將容器鏈接在一起

修復Job在Kubernetes中途終止時標記為成功的Job;

修復錯誤撥號後端:EOF Google Kubernetes Engine;

在Kubernetes執行器中允許來自配置的服務別名;

為每個構建的網絡添加對Windows服務的支持;

為arm64提供rpm/deb軟件包;

將CI_JOB_IMAGE添加到預定義的環境變量;

支持EKS IAM服務帳戶(Web身份提供商);

為基於S3的緩存支持ECS任務IAM角色;

引入了Windows生命週期策略;

將Fedora 30添加到支持的操作系統;

在作業跟蹤中添加執行階段名稱;

在作業級別覆蓋kubernetes資源限制和構建容器的請求;

更多的變化,請參考GitLab Runner的CHANGELOG。

性能提升

GitLab將繼續在提高每個版本的性能。不僅致力於使GitLab的各個實例更快,而且還致力於大大提高GitLab在線倉庫(一個擁有100萬用戶的實例)的性能。

在GitLab 12.9中,在問題、項目和里程碑等方面提供了性能改進。

GitLab 12.9中的一些改進包括:

確保RepositoryLinkFilter可以正常處理Gitaly故障;

里程碑和受讓人在GraphQl中的搜索問題;

惰性加載器,用於Epics的聚合;

在組裡程碑視圖中修復N+1;

設置Elasticsearch索引的批量API請求大小的上限;

現在,當有大量結果時,項目級代碼搜索速度提高了10倍;

緩衝區寫入ElasticSearch並使用Bulk API;

從數據庫批量加載記錄以進行Elasticsearch增量批量更新;

請求內聯或並行差異,而不是在一個請求中從後端獲取所有數據。

功能棄用

Auto DevOps的默認PostgreSQL

作為更新Auto DevOps支持Kubernetes 1.16的一部分,在GitLab 12.9中添加了Auto DevOps的啟用功能,以使用PostgreSQL圖表版本8.2.1。當前默認的PostgreSQL圖表版本是0.7.1。在GitLab 13.0中,計劃將默認的PostgreSQL圖表版本從0.7.1切換到8.2.1。要保留舊的默認設置,需要將AUTO_DEVOPS_POSTGRES_CHANNELCI變量顯式設置為1。要將現有的0.7.1 PostgreSQL數據庫遷移到較新的基於8.2.1的數據庫,請備份數據庫,安裝新版本的PostgreSQL並還原數據庫。

生效日期:2020年5月22日

不建議使用DAST舊版入口點

正如現在支持使用/analyze在DAST配置,在gitlab 13.0中,切入點/zap/zap-baseline.py,/zap/zap-full-scan.py和/zap/zap-api-scan.py將被棄用。

在GitLab 13.0發佈之後,調用這些入口點的任何配置都會中斷。建議所有客戶更新其配置,以使用/analyze入口點來避免DAST掃描中的任何中斷。

刪除日期:2020年5月22日

13.0版本安全掃描程序刪除Docker中的Docker(DinD)中的Docker

自13.0起,GitLab Secure掃描儀不再使用Docker(DinD)中的Docker,以提高安全性並降低掃描的複雜性。GitLab安全產品將默認在供應商模板中開始使用非DinD模式。鼓勵客戶更新其供應商的模板以測試這種新行為。

刪除日期:2020年5月22日

禁用Docker進行依賴性掃描

在Docker中為SAST禁用Docker

遷移日期:2020年5月22日

終止對Internet Explorer 11的支持

在GitLab 13.0中,將刪除對Internet Explorer 11的官方支持。請參閱支持的Web瀏覽器列表。可以就此問題或通過常規支持渠道提供反饋。

遷移日期:2020年5月22日

GitLab代碼片段內容搜索刪除

隨著繼續為代碼段進行版本控制,將進行更改以在UI和API中搜索代碼段,從而從搜索結果中刪除代碼段內容。標題和說明內容可通過搜索和API訪問。

遷移日期:2020年5月22日

刪除PostgreSQL 9.6和10.x

為了利用PostgreSQL 11中改進的性能和功能(例如分區),計劃在GitLab 13.0中要求最低為PostgreSQL 11。在Omnibus GitLab 12.8中添加了PostgreSQL 11。它將成為GitLab 12.10中的默認PostgreSQL版本。雖然Omnibus GitLab仍支持並捆綁了PostgreSQL 9.6和10.x,但它們將在GitLab 13.0中刪除。

刪除日期:2020年5月22日

GitLab軟件包存儲庫的GPG簽名密鑰即將到期

GitLab PackageCloud存儲庫的GPG簽名密鑰即將到期,並將在四月的第一週進行更新。這意味著現有的誰已經在自己的機器配置GitLab包庫用戶通過使用apt,yum或者zypper,將不得不提取和添加新鍵,可繼續從GitLab包庫安裝或更新包。

遷移日期:2020年4月5日

計劃刪除xy穩定的docker鏡像,以使用安全產品的語義版本

GitLab Secure工具在歷史上一直利用x-y-stable docker標籤將掃描儀綁定到GitLab的發行版。正努力發佈與工具的語義版本(Major.minor.patch)相匹配的docker鏡像。語義版本控制具有許多優點,其中包括:Docker鏡像版本將與每個分析器的版本匹配CHANGELOG,因此更容易理解特定版本的分析器具有哪些功能。用戶可以選擇自己的穩定性級別:無變化(固定為major.minor.patch),僅修補程序固定(固定為major.minor),新功能和修補程序固定(固定為major),前沿(固定為edge)。將繼續發佈x-y-stableDocker鏡像,直到gitlab 13.0之前正式放棄對它們的支持。為防止此轉換後帶有自定義供應商模板的安全掃描作業失敗,用戶可以按照此問題了解有關如何更新/遷移現有模板的詳細信息。

遷移日期:2020年5月22日

版本更新

有關升級到GitLab 12.9的重要說明

GitLab 12.9包含Mattermost 5.20。有關升級到此最新版本的Mattermost的重要升級說明,請參閱重要升級說明。

GitLab 12.9有一個用於檢查後臺遷移的新命令。這對於零停機時間升級很重要。有關詳細信息,請參見。

Omnibus安裝版本升級

對自建實例Omnibus安裝版本,可以使用包管理器一鍵升級。

對於CentOS可以使用

sudo yum update gitlab-ce

會自動完成升級過程。

GitLab 12.9發佈集成HashiCorp Vault、自定義的價值流質量報告等

docker部署版本:

對於docker方式部署的gitlab實例,先停止和刪除舊的容器:

sudo docker stop gitlab

sudo docker rm gitlab

拉取gitlab官方最新的鏡像:

sudo docker pull gitlab/gitlab-ce:latest

重新啟動容器(啟動參數和以前保持一致)。

附上一個常見的gitlab docker啟動參數如下:

sudo docker run --detach \\

--hostname gitlab.example.com \\

--publish 443:443 --publish 80:80 --publish 22:22 \\

--name gitlab \\

--restart always \\

--volume /srv/gitlab/config:/etc/gitlab \\

--volume /srv/gitlab/logs:/var/log/gitlab \\

--volume /srv/gitlab/data:/var/opt/gitlab \\

gitlab/gitlab-ce:latest

Docker compose部署版本

可一鍵升級:

docker-compose pull

docker-compose up -d


分享到:


相關文章: