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, 元数据管理, 发布管理, 安全可观测性, 安全合规, 容器镜像仓库, 持续交付, 数字签名, 版本控制, 特权提升, 硬件无关, 网络代理, 自动化部署, 自动笔记, 跌倒检测, 软件物料清单