$30 off During Our Annual Pro Sale. View Details »

使用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

More Decks by demoyuw

Other Decks in Programming

Transcript

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

    View Slide

  2. About me
    •III DevOps contributor
    •8 年 System, DevOps 與 Backend 開發與
    維護經驗
    •資展國際、工研院: Kubernetes, DevOps
    講師
    2

    View Slide

  3. CI/CD 工具所做的事情越來越多後
    •1個CI/CD YAML 會有多個功能需要執行
    •編譯、打包、單元測試、整合測試、程式碼品
    質、白箱掃描、黑箱掃描、部署……
    •每個git repository皆會有CI/CD YAML
    file
    3

    View Slide

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

    View Slide

  5. DevOps team需要維護的YAML function
    •n個軟體項目 X n個git repository X
    YAML n 個功能
    •試想今天要把幫程式碼品質掃描增加一個
    參數,要改多少YAML檔?
    •隨著DevOps專業化、測試左移,這種問
    題會越來越明顯。
    5

    View Slide

  6. 解決方案
    6

    View Slide

  7. Helm
    •Kubernetes套件管理工具 (類似: Yum
    RPM, Apt dpkg)
    •角色
    •Chart: 安裝、部署包 (package),
    •Repository: 安裝包倉庫 (package server),
    供Helm取用安裝包進行安裝
    •Release: 經由Helm所部署至kubernetes上的
    APP
    7

    View Slide

  8. 把各項Pipeline各階段掃描用Helm chart來打包
    8

    View Slide

  9. Pipeline 運作流程
    9

    View Slide

  10. 10

    View Slide

  11. Chart tgz and Image Update
    11

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. 優點 - YAML file 可讀性提高
    16
    https://github.com/iii
    devops-
    templates/vuejs-app-
    template2/blob/mast
    er/.rancher-
    pipeline.yml

    View Slide

  17. VMWare Harbor mirror (Proxy Cache) 功能
    17

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide