[es自動化更新] Updatecli編排配置.yaml | dockerfilePath值文件.yml

鏈接:https://github.com/elastic/elasticsearch/tree/main/build-conventions

elasticsearch自動化更新

本專欄使用updatecli實現自動化版本更新與依賴管理

其配置通過編排文件updatecli-compose.yaml)實現,該文件羅列了稱為Policies的自動化任務,每個任務通過配置文件(Values Files)獲取項目特定細節,實際執行邏輯則來自容器鏡像(Policy Sources),確保自動化過程可復現。

概覽

在這里插入圖片描述

章節導航

  1. Updatecli編排配置
  2. 值文件
  3. 策略
  4. 策略源(容器鏡像)

第一章:Updatecli編排配置

歡迎來到使用Updatecli實現Elasticsearch項目版本更新自動化的首章教程~

維護Elasticsearch這類大型軟件項目的依賴更新(包括基礎容器鏡像、庫文件乃至內部工具)是項艱巨任務。

設想我們作為項目管理者,每天需要跟蹤數十項待檢查更新的內容!此時我們需要一個主清單來確保所有事項被覆蓋且無遺漏。

這正是updatecli-compose.yaml文件的價值所在。

它如同Updatecli在項目中的主檢查清單,雖不包含具體更新細節,但通過羅列所有待執行任務(即檢查項),告知Updatecli需要更新哪些內容

何為updatecli-compose.yaml

該文件本質上是協調多個Updatecli任務的編排配置文件,是執行系列自動化更新的起點。它向updatecli compose命令傳達:“這是本項目需運行的所有更新任務清單,每個任務的具體指令如下。”

參考簡化版文件結構:

# `updatecli compose ...`的配置文件
policies:# 清單首項- name: 處理ironbank更新policy: ghcr.io/elastic/oblt-updatecli-policies/ironbank/templates:0.3.0@sha256:... # (策略細節簡化)values:- .github/updatecli/values.d/scm.yml- .github/updatecli/values.d/ironbank.yml# 清單次項- name: 更新Updatecli策略policy: ghcr.io/updatecli/policies/autodiscovery/updatecli:0.8.0@sha256:... # (策略細節簡化)values:- .github/updatecli/values.d/scm.yml- .github/updatecli/values.d/updatecli-compose.yml

該YAML文件核心是policies:列表(通過-標識),每項代表一個Updatecli需執行的更新任務。

每任務項包含:

  • name:人類可讀的任務名稱(如"處理ironbank更新"),便于理解任務目標
  • policy:指向具體執行指令或模板,即該任務的"操作手冊"(詳見策略章)
  • values:提供策略運行所需細節的文件列表,如同填寫操作手冊中的空白項(詳見下一章值文件)

這種任務項的劃分有點類似于Manus

運行機制

執行updatecli compose時,系統將:

  1. 讀取updatecli-compose.yaml
  2. 遍歷policies列表
  3. 獲取每個策略的指令(通過policy引用)
  4. 加載values文件中的具體配置
  5. 執行策略

流程示意圖:

在這里插入圖片描述
IronBank是一個DeFi借貸協議,采用信用授權機制,允許用戶無需抵押直接借款,主要服務于機構和高信用用戶。

簡言之,updatecli-compose.yaml作為中央調度器,統一管理項目所需的所有版本更新任務,確保通過單入口即可觸發全量自動化更新。

總結

updatecli-compose.yaml是協調運行多個Updatecli任務的主入口,其作為檢查清單具備兩大功能:

  1. 羅列項目所需的全部更新任務(策略)
  2. 指引每個任務獲取具體配置(值文件)

理解該文件的中心地位后,讓我們深入探究策略配置的核心——值文件。

下一章:值文件


第二章:值文件

在上一章《Updatecli編排配置》中,我們了解到updatecli-compose.yaml文件是項目中Updatecli的主檢查清單。它列出了所有需要運行的更新任務(策略),并指引Updatecli獲取每個任務所需的具體配置。

這些"具體配置"就存儲在值文件

值文件解決何種問題?

設想我們有一個操作手冊(策略),描述如何更新容器鏡像版本

這個手冊是通用性的——它闡述著標準步驟:“查找最新版本”、“定位項目文件中鏡像引用位置”、“用新版本替換舊版本”。

當項目中使用數十個不同鏡像且分散在不同文件時,若為每個鏡像編寫獨立手冊將極其低效!

這正是值文件的用武之地。它們為通用操作手冊提供特定場景下的專屬配置,回答以下核心問題:

  • 跟蹤哪個具體鏡像?
  • 在哪個文件路徑檢索?
  • 需匹配的具體行或模式?

通過將這類項目專屬信息存入獨立文件,我們的操作手冊(策略)得以保持通用性復用性

(可復用性的方案)

何為值文件?

值文件通常是采用key: value格式的YAML配置文件,類似為特定策略任務填寫的定制表單。以下通過上章的示例片段展開說明:

# `updatecli compose ...`的配置文件
policies:- name: 處理ironbank更新policy: ghcr.io/elastic/oblt-updatecli-policies/ironbank/templates:0.3.0@sha256:...values:- .github/updatecli/values.d/scm.yml- .github/updatecli/values.d/ironbank.yml # <-- 此處即為值文件!

假設.github/updatecli/values.d/ironbank.yml內容如下(簡化版):

# .github/updatecli/values.d/ironbank.yml - 簡化示例
imageName: elasticsearch/elasticsearch # 需更新的鏡像名稱?
imageTag: 8.12.2 # 當前跟蹤版本(或匹配模式)
dockerfilePath: x-pack/docker/elasticsearch/Dockerfile # 鏡像引用所在文件路徑

該值文件提供三項關鍵配置:

  • imageName:目標容器鏡像名稱
  • imageTag:當前版本標識(或版本模式)
  • dockerfilePath:鏡像引用文件路徑

策略如何消費值數據?

當Updatecli執行策略時,會加載值文件數據并將其實例化到策略中。通用策略通過占位符(如{{ .imageName }})動態獲取專屬配置,實現具體操作:

  1. 檢索elasticsearch/elasticsearch的最新版本
  2. 掃描x-pack/docker/elasticsearch/Dockerfile文件
  3. 查找引用elasticsearch/elasticsearch的行(可能包含舊版本8.12.2
  4. 用新版本替換舊標識

底層運行機制

在這里插入圖片描述

流程分解:

  1. updatecli compose讀取主清單文件
  2. 定位策略項(如處理ironbank更新
  3. 解析策略模板引用地址
  4. 加載關聯值文件scm.ymlironbank.yml
  5. 合并值數據并注入策略模板
  6. 策略實例化后執行具體更新操作

該過程對清單中每個策略循環執行,不同策略可復用同一模板配合不同值文件

(多態)

采用獨立值文件的優勢

優勢描述示例
可復用性單一策略可服務多個更新任務用相同"鏡像更新"策略配合valuesA.yml更新imageAvaluesB.yml更新imageB
關注點分離策略邏輯(如何更新)與項目數據(更新對象及位置)解耦"鏡像更新"策略無需感知具體操作的是elasticsearch/elasticsearch鏡像
可讀性值文件直觀展示任務目標查看ironbank.yml即可明確該任務針對特定Ironbank鏡像
易維護性修改配置無需調整策略代碼更新新鏡像只需新建值文件或修改現有文件,策略模板保持不變

通過值文件機制,我們能在Elasticsearch等大型項目中高效管理海量依賴更新,構建靈活、清晰且易維護的自動化體系。

總結

值文件作為策略執行的燃料,具備兩大特性:

  1. 配置驅動:通過鍵值對定制策略行為(如dockerfilePath指定操作文件)
  2. 環境隔離項目專屬數據與通用策略邏輯物理分離

此設計使得版本更新流程既保持標準化,又能靈活適配項目演進需求。

下一章我們將深入探討策略模板的設計哲學與實現細節,解密值數據如何驅動自動化操作。

下一章:策略

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/88582.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/88582.shtml
英文地址,請注明出處:http://en.pswp.cn/web/88582.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

新手向:使用Python將多種圖像格式統一轉換為JPG

本文將詳細解析一個專業的Python腳本&#xff0c;它能夠將指定文件夾中的所有非JPG格式圖像批量轉換為JPG格式。這個腳本雖然代碼量不大&#xff0c;但包含了文件操作、圖像處理、異常處理等多個重要編程概念&#xff0c;非常適合初學者系統學習。環境準備在開始之前&#xff0…

深入剖析C++ RPC框架原理:有棧協程與分布式系統設計

深入剖析C RPC框架原理&#xff1a;有棧協程與分布式系統設計 &#x1f6e0;? 第一部分&#xff1a;RPC框架核心原理與技術架構 &#x1f310; 1.1 RPC在分布式系統中的核心地位 遠程過程調用&#xff08;RPC&#xff09;是現代分布式系統的基石&#xff0c;它實現了&#xf…

基于springboot+Vue的二手物品交易的設計與實現

基于springbootVue的二手物品交易的設計與實現 作者&#xff1a; Mr順 | 某大廠全棧開發工程師 | CSDN新星計劃導師 | Java領域優質創作者 技術棧&#xff1a; SpringBoot, JavaWeb, 數據庫等。精通Java、微信小程序開發。 項目亮點&#xff1a; 完整可運行&#xff1a; 提供…

騰訊云輕量服務器創建快照免費API接口教程

接口簡介 該API用于騰訊云輕量服務器系統盤快照創建&#xff0c;無需關機即可自動刪除舊快照并創建新快照。特點包括&#xff1a; 不占用騰訊云快照配額支持自動備份策略適用于定時備份任務僅支持系統盤快照&#xff08;云硬盤需調用專用接口&#xff09; ?請求地址? https…

C++中的智能指針(1):unique_ptr

一、背景普通指針是指向某塊內存區域地址的變量。如果一個指針指向的是一塊動態分配的內存區域&#xff0c;那么即使這個指針變量離開了所在的作用域&#xff0c;這塊內存區域也不會被自動銷毀。動態分配的內存不進行釋放則會導致內存泄漏。如果一個指針指向的是一塊已經被釋放…

HTTPS安全機制:從加密到證書全解析

目錄 1.HTTPS是什么 2.加密是什么 3.HTTPS的加密過程 3.1對稱加密 3.2非對稱加密 4.引入證書 4.1"中間人"攻擊 4.2 引入證書機制 4.3 理解數據簽名 4.4 非對稱加密 對稱加密 證書認證 5.常見問題 5.1 Fiddler等抓包工具&#xff0c;為啥能解析HTTPS的數據…

2024年深度學習技術主要發展分析

摘要&#xff1a;深度學習作為人工智能領域的戰略級技術&#xff0c;在2024年持續取得突破性進展&#xff0c;持續重構現代戰爭規則&#xff0c;成為大國軍事智能化競爭的核心角力點。對2024年深度學習技術熱門領域的主要發展進行了綜合評述。研究了深度學習技術的發展現狀&…

Swift 枚舉:深入理解與高效使用

Swift 枚舉:深入理解與高效使用 引言 Swift 枚舉(Enum)是 Swift 編程語言中的一種基本數據類型,它允許我們將一組相關的值組合在一起。枚舉在 Swift 中有著廣泛的應用,從簡單的數據分類到復雜的業務邏輯處理,枚舉都能發揮巨大的作用。本文將深入探討 Swift 枚舉的原理、…

從大模型到云游戲,國鑫SY8108G-G4如何化身“全能AI引擎”?

當大模型參數量突破萬億級&#xff0c;傳統服務器在散熱枷鎖與擴展瓶頸前舉步維艱。國鑫全新推出的 SY8108G-G4 8U8卡AI服務器 &#xff0c;以顛覆性架構支持8張600W GPU全速并行&#xff0c;結合CPU-GPU直連、冗余電源和彈性擴展三大優勢&#xff0c;為AI訓練、生成式創作、數…

在多個DHCP服務器的網絡環境中選擇指定的DHCP服務

問題 學校有兩個網絡&#xff0c;我電腦網線插在同一個交換機的同一個接口上&#xff0c;有時候獲取的是172.27開頭的IP&#xff0c;有時候獲取的是192.168開頭的IP。 通常第一次開機獲取的是172.27的IP&#xff0c;插拔網線或重啟網絡接口后會變為192.168的IP。 兩個網絡各有…

【Nginx】實測Nginx增加第三方主動式健康檢查模塊

一、環境說明系統版本&#xff1a;CentOS 7.9內核版本&#xff1a;3.10.0-1160.119.1Nginx版本&#xff1a;1.26.3第三方檢測模塊及版本&#xff1a;nginx_upstream_check_module&#xff08;v0.4.0&#xff0c;兼容nginx 1.20&#xff09;二、nginx安裝部署2.1 下載檢測模塊目…

pytest中mark的使用

在pytest中&#xff0c;mark&#xff08;標記&#xff09;是用于對測試用例進行分類、篩選或附加元數據的重要功能。以下是其核心使用方法&#xff1a; 1. ?基本標記定義與使用? ?注冊標記?&#xff1a;在pytest.ini中預先定義標記&#xff08;避免運行時警告&#xff09;&…

STM32N6--NPU簡單介紹

關鍵詞&#xff1a;STM32N6、生物神經元、神經網絡處理單元&#xff08;NPU&#xff09;、數據流處理 參考鏈接&#xff1a; RM0486 Reference manual STM32N647/657xx Arm-based 32-bit MCUsST_中文論壇【資料合集】STM32N6超全資料合集&#xff08;定期更新&#xff09;B站_…

一款開源免費、通用的 WPF 主題控件包

前言 今天大姚給大家分享一款開源免費&#xff08;MIT License&#xff09;、通用的 WPF 主題控件包&#xff1a;Rubyer WPF。 WPF介紹 WPF是一個強大的桌面應用程序框架&#xff0c;用于構建具有豐富用戶界面的 Windows 應用。它提供了靈活的布局、數據綁定、樣式和模板、動…

windows安裝python環境以及對應編輯器的詳細流程

windows安裝python環境以及對應編輯器的詳細流程 一、安裝 Python 環境 步驟 1&#xff1a;下載 Python 安裝包 訪問 Python 官網&#xff1a;https://www.python.org/downloads/windows/選擇最新穩定版本&#xff08;如 Python 3.12.x&#xff09;&#xff0c;點擊 Download W…

高保真組件庫:下拉多選

制作一個高保真的下拉多選需要具備多種交互事件。 拖拽一個文本框并命名為“下拉文本輸入框”和一個向下的箭頭組合在一起,外觀上看起來是下拉組件。為了美觀調整一些邊框顏色、圓角、文字左邊距等。 拖拽一個矩形作為下拉選項的容器,啟動陰影xy都為0 制作下拉選項:拖拽一個…

sqli-labs靶場通關筆記:第1-4關 聯合注入

第1關&#xff1a;單引號閉合1.這是第1關的界面&#xff0c;讓我們以id作為參數輸入&#xff0c;方式為數值&#xff0c;這里輸入?id1看一下。2.顯示了id1的用戶名和密碼。分析&#xff1a;在sql注入漏洞中&#xff0c;第一步是要尋找注入點&#xff0c;即可以輸入參數的地方&…

和服腰封改造:3種解構主義造型的東方美學新解

和服腰封改造&#xff1a;3種解構主義造型的東方美學新解在東京原宿的小巷里&#xff0c;一場關于和服腰封的"溫柔革命"正在悄然發生。年輕設計師們將傳統寬腰帶拆解重構&#xff0c;創造出既保留東方神韻又充滿當代氣息的造型藝術。正如一位新銳設計師所說&#xff…

什么是強化學習(RL)--3

如果reward大多數情況下都是0&#xff0c;只有少數是很大的值。這種情況下就是稀疏reward的問題。比如你要教機械手臂拴螺絲&#xff0c;只有最后把螺絲栓進去才可以&#xff0c;其余機械手臂的位置都不可以。額外的reward幫agent學習。reward shaping射擊游戲cs,這個游戲中&am…

彩虹云商城全解源碼系統|人工客服系統

核心升級亮點 人工客服系統&#xff1a;新增智能工單在線IM雙模式多端同步&#xff1a;PCH5小程序APP四端數據實時互通支付升級&#xff1a;支持數字人民幣收款安全加固&#xff1a;內置Web應用防火墻(WAF) 部署教程 ? B站視頻教程 包含&#xff1a; 寶塔環境配置&#xf…