Upgrade to Pro — share decks privately, control downloads, hide ads and more …

使用Helm搭配CI/CD供多 團隊使用的DevSecOps

demoyuw
September 18, 2022

使用Helm搭配CI/CD供多 團隊使用的DevSecOps

為了達到 DevSecOps,就必須把 CI/CD 工具與資安軟體進行結合,確保進行 CI/CD Pipeline 進行時,能夠自動進行掃描。產出資安檢測報告。

單一團隊使用,最簡單直接方式就是把各資安掃描軟體的 Agent ,寫成 Kubernetes YAML,放置到專案內 Git Repository 來使用,但當多團隊時,這個方式就明顯不方便,任何資安軟體 Agent 的調整,都需要調整所有團隊的 Git Repository 裡的 Kubernetes Agent YAML,耗費時間多,且容易出錯。

我們採用 Helm,為每個資安掃描軟體 Agent 開發獨立的 Chart,並提供給多個團隊使用,使用者只需在 Pipeline stages 裡,填入 values 值,指定我們提供的 Chart版號,讓 Helm install 進行 Agent 部署。當 Agent 升級時,使用者只需調整 values 值,指定新的 Chart 版本,一切就可持續運行。

demoyuw

September 18, 2022
Tweet

Other Decks in Programming

Transcript

  1. 使用Helm搭配CI/CD供多 團隊使用的DevSecOps 周育緯 1

  2. About me •III DevOps contributor •8 年 System, DevOps 與

    Backend 開發與 維護經驗 •資展國際、工研院: Kubernetes, DevOps 講師 2
  3. CI/CD 工具所做的事情越來越多後 •1個CI/CD YAML 會有多個功能需要執行 •編譯、打包、單元測試、整合測試、程式碼品 質、白箱掃描、黑箱掃描、部署…… •每個git repository皆會有CI/CD YAML

    file 3
  4. 當我們使用CI/CD 工具後 •1個軟體開發項目會有多個Git Repository •1個公司有多個軟體開發項目 4

  5. DevOps team需要維護的YAML function •n個軟體項目 X n個git repository X YAML n

    個功能 •試想今天要把幫程式碼品質掃描增加一個 參數,要改多少YAML檔? •隨著DevOps專業化、測試左移,這種問 題會越來越明顯。 5
  6. 解決方案 6

  7. Helm •Kubernetes套件管理工具 (類似: Yum RPM, Apt dpkg) •角色 •Chart: 安裝、部署包

    (package), •Repository: 安裝包倉庫 (package server), 供Helm取用安裝包進行安裝 •Release: 經由Helm所部署至kubernetes上的 APP 7
  8. 把各項Pipeline各階段掃描用Helm chart來打包 8

  9. Pipeline 運作流程 9

  10. 10

  11. Chart tgz and Image Update 11

  12. 功能用Chart appversion 來進行版本區隔 – 舉SonarQube為例 12 https://github.com/iii-org/devops-charts-pack-and-index

  13. Runner Image 13 https://github.com/iii-org/sonarqube-runner

  14. Chart version 14 https://github.com/iii-org/devops-charts/tree/main/charts/scan-sonarqube/0.2.5

  15. 優點 •最小化改動YAML file •調整版本號(version),跟參數(Answer)即可 •掃描工具也需持續更新 •減少漏洞,增加新功能 •新舊專案可以同時兼容 •舊專案使用舊版的chart 與 image,無需配合

    升級 15
  16. 優點 - YAML file 可讀性提高 16 https://github.com/iii devops- templates/vuejs-app- template2/blob/mast

    er/.rancher- pipeline.yml
  17. VMWare Harbor mirror (Proxy Cache) 功能 17

  18. 缺點 •沒有,運作非常順利 •對於設定複雜且操作繁瑣的工具 •把複雜的邏輯留給Runner image跟Chart. 18

  19. 總結 •採用工具與專案越多,有系統的Runner版 本管理越能看出效果 •保持YAML file乾淨易讀 •Dev團隊如果有特殊需求,也能用獨立 Runner版本進行區隔。 19

  20. 歡迎大家參考 III DevOps 更多詳細教學影音,請觀看我們的 YouTube 影音 影音連結 或訂閱我們的YouTube頻道,享受最新第一手教學資訊。 https://www.iiidevops. org

    20