*Helm 很棒…
…直到你把它交給開發人員。 *
事實上,Helm 是為了解 Kubernetes 的人設計的。身為 DevOps 工程師,您可以定義複雜的部署、管理特定於環境的配置並使用範本重複使用邏輯。美麗的。
但對於大多數開發人員來說,Helm 圖表只是令人困惑。 Helm 假設開發人員具有一定程度的 Kubernetes 熟練程度,但許多開發人員根本不具備。沒關係。他們應該專注於製造和運輸產品,而不是擔心底層基礎設施。
然而,這會造成摩擦,因為開發人員過度依賴 DevOps 工程師進行每一個小的更改和部署。
Helm很棒,但作為使用者介面卻不行。
但讓我們修復它!在這篇文章中,我將向您展示如何將任何Helm 圖表轉換為您的開發人員(甚至非技術人員)可以實際使用的簡單 UI。它不會超過5分鐘。
預備,開始⏳
Cyclops是一個開源工具,可讓您從 Helm 圖表建立內部開發平台。基本上,你會匯入一個 Helm 圖表,然後Cyclops 就會根據它輸出一個 UI 。
從那裡,開發人員可以使用此 UI 來配置、部署和管理在 Kubernetes 叢集中執行的應用程式。
設定很簡單,只需兩個命令即可開始。您可以在我們的網頁或存儲庫中找到它,但我也將它放在這裡以方便存取:
kubectl apply -f https://raw.githubusercontent.com/cyclops-ui/cyclops/v0.18.2/install/cyclops-install.yaml &&
kubectl apply -f https://raw.githubusercontent.com/cyclops-ui/cyclops/v0.18.2/install/demo-templates.yaml
要存取 cyclops-ui,您只需轉發其服務的端口,但對於生產用途,您可以透過入口或負載平衡器公開它。
kubectl port-forward svc/cyclops-ui -n cyclops 3000:3000
現在您可以透過 http://localhost:3000/ 存取 Cyclops。
當您在我們的 repo 時,請考慮用 star 來支持我們!
>
你可能有一些 Helm 圖表;他們會做得很好。如果沒有,您可以使用我的!我使用helm create
命令建立了一個圖表,但尚未對其進行任何更改。
讓我們花一點時間仔細看一下該圖表。它由 5 種資源組成:部署、服務、服務帳戶、入口和水平 pod 自動擴縮器。 HPA 和 ingress 預設是停用的,但您可以在values.yaml
中將其開啟。
這裡的值檔案非常小,但是,即使這只是「預設」的 Helm 圖表,也足以讓大多數開發人員望而卻步。
my-chart/
├── Chart.yaml # Metadata about the chart (name, version, etc.)
├── values.yaml # Default configuration values
├── **values.schema.json** # Generated from the values.yaml
├── templates/
│ ├── deployment.yaml
│ ├── hpa.yaml # Off in default values
│ ├── serviceaccount.yaml.
│ ├── service.yaml
│ ├── ingress.yaml # Off in default values
└── .helmignore
我將使用並試驗此圖表,但您可以對任何現有圖表執行相同的操作。
我將在圖表中加入另一個內容——架構文件。雖然我的 Helm 圖表沒有附帶模式文件,但您的圖表可能已經有了它(您可以在上面的結構中看到它,即values.schema.json
)。我自動產生並刪除了不需要的多餘行。您可以 在此處查看最終版本。
現在到了有趣的部分。
如果您已經設定了 Cyclops,請在瀏覽器中開啟它。您將看到空白的模組螢幕,但我們應該先轉到“模板”標籤。
開箱即用,Cyclops 附帶一系列模板來幫助您入門,但讓我們加入自己的模板,以便我們可以嘗試它。
點擊Add template reference
按鈕並輸入字段,使其指向您的 Helm 圖表。
⚠️如果您使用儲存在私人儲存庫中的 Helm 圖表,則可以在此處找到如何啟用存取權限⚠️
>
新增圖表後,返回模組標籤。它仍然是一個空白螢幕,但讓我們使用我們的新模板來部署一個模組!
部署模組的第一步是選擇模板。在下拉式選單中,找到您匯入的範本並點擊它。還記得之前的value.schema.json
嗎?這正是 Cyclops 用來渲染 UI 的方法。
如您所見,這裡的欄位與value.schema.json
中定義的欄位相關。更改 Helm 圖表中的模式(例如刪除此處的幾個欄位)也會導致不同的 UI。
然而,Cyclops 不僅僅是 Helm 圖表的一個漂亮的使用者介面。一旦您填寫了模板呈現的表單,您就可以將其作為模組部署! Cyclops 可以將其直接部署到你的集群,或者,如果你更喜歡 GitOps,也可以將配置推送到 git 。最終目標是相同的:您將使用 UI 中提供的值將 Helm 圖表部署到叢集。
從這裡,開發人員可以輕鬆存取他們可能需要的一切:重新啟動他們的應用程式,存取他們的日誌,檢查他們的狀態,編輯配置等等…
雖然 Helm 圖表可能會讓大多數開發人員望而卻步,但簡單的使用者介面會更受歡迎。透過抽象化 Kubernetes 的複雜性並僅透過 UI 顯示相關的設定選項,您可以為開發人員提供更安全、更快速、更自主的工作流程。
不再需要與 DevOps 來回溝通常規變更。無需再透過上下文切換來學習 Helm。相反,開發人員將獲得簡化、集中的體驗,讓他們可以充滿信心地交付程式碼。這是平台工程背後的核心思想:提供標準化、自助服務的基礎設施,為開發團隊提供支援。
如果您想了解有關平台工程和建立內部開發者平台的更多訊息,請加入我們的Discord 社群並與我們交談!
>
原文出處:https://dev.to/cyclops-ui/from-helm-chart-to-developer-ui-in-5-minutes-5ff