relizaio/rearm-helm-action

GitHub: relizaio/rearm-helm-action

一个 GitHub Action,用于在 CI 流水线中自动化 Helm Chart 的版本管理、打包发布、SBOM 生成与签名,并将发布元数据同步至 ReARM 平台。

Stars: 0 | Forks: 0

# rearm-helm-action ## 关于 用于将 Helm chart 进行版本控制并发布到 OCI 兼容仓库(或 ECR / ChartMuseum),并将发布元数据提交至 [ReARM](https://github.com/relizaio/rearm) 的 GitHub Action。 此 Action: - 将 `Chart.yaml` 中的 `version:` 更新为 ReARM 生成的版本 - 提交并将该更改推送回仓库 - 打包并发布 Helm chart - 计算 chart 压缩包的 SHA256 摘要,并将发布元数据提交至 ReARM ## 用法 ``` steps: - uses: actions/checkout@v4 - uses: relizaio/rearm-helm-action@ with: rearm_api_id: rearm_api_key: registry_username: registry_password: registry_host: helm_chart_name: ``` ### 最小工作流示例 ``` name: Publish Helm chart on: push: branches: [ main ] permissions: contents: write jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: relizaio/rearm-helm-action@ with: rearm_api_id: ${{ secrets.REARM_API_ID }} rearm_api_key: ${{ secrets.REARM_API_KEY }} registry_username: ${{ secrets.REGISTRY_USERNAME }} registry_password: ${{ secrets.REGISTRY_PASSWORD }} registry_host: ${{ secrets.REGISTRY_HOST }} helm_chart_name: mychart ``` ## 输入项 此 Action 支持以下输入项: - `registry_username`:chart 仓库的用户名。 - `registry_password`:chart 仓库的密码。 - `registry_host`:chart 仓库的主机地址。 - `helm_chart_name`:Helm chart 的名称(chart 目录名称)。 - `rearm_api_id`:ReARM API ID。 - `rearm_api_key`:ReARM API KEY。 - `rearm_api_url`:ReARM API URL,可选,默认值:`https://demo.rearmhq.com`。 - `path`:相对于仓库根目录的路径(默认为 `.`)。 - `ci_metadata`:CI 运行的元数据,可选,默认值:`GitHub`。 - `rearm_component_id`:使用组织范围密钥时此仓库的组件 UUID,可选。 - `registry_type`:仓库类型,可选,默认值:`OCI`。支持:`OCI`、`ECR`、`CHARTMUSEUM`。 - `aws_region`:AWS 区域,当 `registry_type` 为 `ECR` 时必填。 - `enable_sbom`:生成 SBOM 并将其与构件一起存储,可选,默认值:`false`。 - `enable_public_cosign_sigstore`:通过 cosign 使用公共 sigstore 对 SBOM 进行签名,可选,默认值:`false`。 - `successful_build_lifecycle`:构建成功时在 ReARM 上设置的状态(`DRAFT` 或 `ASSEMBLED`),可选,默认值:`ASSEMBLED`。 - `enable_securesbom`:启用 ShiftLeftCyber 的 SecureSBOM 对 SBOM 进行签名,可选,默认值:`false`。 - `securesbom_pub_key_id`:用于 ShiftLeftCyber 的 SecureSBOM 签名的公钥 ID,可选,默认值:空。 - `securesbom_host`:SecureSBOM(由 ShiftLeftCyber 提供)主机地址,可选,默认值:空。 - `securesbom_api_key`:SecureSBOM(由 ShiftLeftCyber 提供)API 密钥,可选,默认值:空。 ## 注意事项 - 此 Action 会执行 `git commit` 和 `git push` 来更新 `Chart.yaml` 的版本。您的工作流通常需要 `permissions: contents: write` 权限,并且分支保护规则必须允许工作流 token 进行推送(或者您必须通过 `actions/checkout` 使用自定义 token)。 - `registry_type: OCI` 通过 `helm registry login` 和 `helm push ... oci://...` 进行发布。 - `registry_type: ECR` 使用 AWS ECR 登录;请通过 `registry_username` / `registry_password` 提供 `aws_region` 和 AWS 凭证。 - `registry_type: CHARTMUSEUM` 使用辅助容器推送到 ChartMuseum。
标签:ChartMuseum, CVE, ECR, GitHub Actions, Google Gemini, Helm, LLM防护, ReARM, SBOM, SHA256, 元数据管理, 发布管理, 安全可观测性, 安全合规, 容器镜像仓库, 持续交付, 数字签名, 版本控制, 特权提升, 硬件无关, 网络代理, 自动化部署, 自动笔记, 跌倒检测, 软件物料清单