zarf-dev/zarf
GitHub: zarf-dev/zarf
Zarf 是专为 Kubernetes 设计的气隙原生包管理器,通过声明式打包策略解决离线和半连接环境下的云原生应用交付复杂性。
Stars: 1828 | Forks: 236
# Zarf - Kubernetes 的原生气隙包管理器
[](https://github.com/zarf-dev/zarf/releases)
[](https://go.dev/)
[](https://github.com/zarf-dev/zarf/actions/workflows/release.yml)
[](https://securityscorecards.dev/viewer/?uri=github.com/zarf-dev/zarf)
[](https://zarf.dev/)
[](https://docs.zarf.dev/)
[](https://kubernetes.slack.com/archives/C03B6BJAUJ3)
[](https://github.com/zarf-dev/zarf/issues/2613)
Zarf 利用声明式打包策略,消除了 Kubernetes 集群和云原生工作负载的[气隙软件交付复杂性](https://www.itopstimes.com/contain/air-gap-kubernetes-considerations-for-running-cloud-native-applications-without-the-cloud/),以支持离线和半连接环境中的 DevSecOps。
## 为什么使用 Zarf
- 💸 **免费且开源。** Zarf 将始终免费使用,并由开源社区维护。
- ⭐️ **零依赖。** 作为一个静态编译的二进制文件,Zarf CLI 在任何机器上运行都没有依赖要求。
- 🔓 **无供应商锁定。** 没有专有软件将您锁定在使用 Zarf 上。如果您想移除它,您仍然可以使用您的 Helm charts 手动部署您的软件。
- 💻 **操作系统无关。** Zarf 支持众多操作系统。完整的受支持操作系统、架构和功能集矩阵即将推出。
- 📦 **高度可分发。** 从多个安全开发环境集成和部署软件,包括边缘、嵌入式系统、安全云、数据中心,甚至本地环境。
- 🚀 **联网开发,离线部署。** 团队可以在连接互联网的同时构建和配置单个应用程序或整个 DevSecOps 环境。一旦创建,它们就可以被打包并运送到断开连接的环境中进行部署。
- 💿 **单文件部署。** Zarf 允许您将应用程序所需的互联网部分打包成一个压缩文件,以便在没有网络连接的情况下安装。
- ♻️ **声明式部署。** Zarf 包定义了应用程序的精确状态,使其能够每次都以相同的方式部署。
- 🦖 **继承遗留代码。** Zarf 包可以封装遗留代码和项目 - 允许将它们部署到现代 DevSecOps 环境中。
## 📦 开箱即用的功能
- 在断开连接的环境中自动化 Kubernetes 部署
- 自动化 [软件物料清单 (SBOM)](https://docs.zarf.dev/ref/sboms/) 的生成
- 构建并[将包发布为 OCI 镜像制品](https://docs.zarf.dev/tutorials/6-publish-and-deploy/)
- 提供 [web 仪表板](https://docs.zarf.dev/ref/sboms/#the-sbom-viewer) 以查看 SBOM 输出
- 使用 [cosign](https://github.com/sigstore/cosign) 创建和验证包签名
- 从 [OCI registry](https://opencontainers.org/) [发布](https://docs.zarf.dev/commands/zarf_package_publish)、[拉取](https://docs.zarf.dev/commands/zarf_package_pull) 和 [部署](https://docs.zarf.dev/commands/zarf_package_deploy) 包
- 强大的组件生命周期 [actions](https://docs.zarf.dev/ref/actions)
- 在完全断开连接的情况下使用 [K3s](https://k3s.io/) 部署新集群,或使用 [kube config](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) 部署到任何现有集群
- 内置 Git 服务器 [Gitea](https://gitea.io/en-us/)
- 内置 Docker registry
- 内置 [K9s 仪表板](https://k9scli.io/) 用于从终端管理集群
- [Mutating Webhook](adr/0005-mutating-webhook.md) 自动更新 Kubernetes pod 的镜像路径和拉取密钥,以及 [Flux Git Repository](https://fluxcd.io/docs/components/source/gitrepositories/) 的 URL 和密钥引用
- 内置[从 Helm chart 查找镜像](https://docs.zarf.dev/commands/zarf_dev_find-images)和资源的命令
- 隧道功能,无需配置网络路由、DNS、TLS 或 Ingress 即可[连接到 Kubernetes 资源](https://docs.zarf.dev/commands/zarf_connect)
## 🛠️ 可配置功能
- 可定制的[变量和包模板](https://docs.zarf.dev/ref/values/),支持默认值和用户提示
- [可组合的包](https://docs.zarf.dev/ref/components/#component-imports)以包含多个子包/组件
- 组件级的操作系统/架构过滤
## 演示
[](https://www.youtube.com/watch?v=WnOYlFVVKDE)
__
## ✅ 快速开始
请遵循 上的说明。
要深入了解 Zarf 并探索其功能,请访问 [docs.zarf.dev](https://docs.zarf.dev/)。该文档提供了关于以下内容的深入见解:
- [安装](https://docs.zarf.dev/getting-started/install)
- [包](https://docs.zarf.dev/ref/packages)
- [组件](https://docs.zarf.dev/ref/components)
- [actions](https://docs.zarf.dev/ref/actions)
- [变量](https://docs.zarf.dev/ref/values)
- [SBOMs](https://docs.zarf.dev/ref/sboms)
- 以及更多!
在 GitHub workflows 中使用 Zarf?请查看 [setup-zarf](https://github.com/zarf-dev/setup-zarf) action。在零额外依赖的情况下安装任何版本的 Zarf 及其 `init` 包。
## ⭐️ 特别感谢
我们还要感谢以下出色的库和项目,没有它们 Zarf 就不可能实现!
[](https://github.com/pterm/pterm)
[](https://github.com/mholt/archives)
[](https://github.com/spf13/cobra)
[](https://github.com/go-git/go-git)
[](https://github.com/sigstore/cosign)
[](https://github.com/helm/helm)
[](https://github.com/kubernetes)
[](https://zarf.dev/)
[](https://docs.zarf.dev/)
[](https://kubernetes.slack.com/archives/C03B6BJAUJ3)
[](https://github.com/zarf-dev/zarf/issues/2613)
Zarf 利用声明式打包策略,消除了 Kubernetes 集群和云原生工作负载的[气隙软件交付复杂性](https://www.itopstimes.com/contain/air-gap-kubernetes-considerations-for-running-cloud-native-applications-without-the-cloud/),以支持离线和半连接环境中的 DevSecOps。
## 为什么使用 Zarf
- 💸 **免费且开源。** Zarf 将始终免费使用,并由开源社区维护。
- ⭐️ **零依赖。** 作为一个静态编译的二进制文件,Zarf CLI 在任何机器上运行都没有依赖要求。
- 🔓 **无供应商锁定。** 没有专有软件将您锁定在使用 Zarf 上。如果您想移除它,您仍然可以使用您的 Helm charts 手动部署您的软件。
- 💻 **操作系统无关。** Zarf 支持众多操作系统。完整的受支持操作系统、架构和功能集矩阵即将推出。
- 📦 **高度可分发。** 从多个安全开发环境集成和部署软件,包括边缘、嵌入式系统、安全云、数据中心,甚至本地环境。
- 🚀 **联网开发,离线部署。** 团队可以在连接互联网的同时构建和配置单个应用程序或整个 DevSecOps 环境。一旦创建,它们就可以被打包并运送到断开连接的环境中进行部署。
- 💿 **单文件部署。** Zarf 允许您将应用程序所需的互联网部分打包成一个压缩文件,以便在没有网络连接的情况下安装。
- ♻️ **声明式部署。** Zarf 包定义了应用程序的精确状态,使其能够每次都以相同的方式部署。
- 🦖 **继承遗留代码。** Zarf 包可以封装遗留代码和项目 - 允许将它们部署到现代 DevSecOps 环境中。
## 📦 开箱即用的功能
- 在断开连接的环境中自动化 Kubernetes 部署
- 自动化 [软件物料清单 (SBOM)](https://docs.zarf.dev/ref/sboms/) 的生成
- 构建并[将包发布为 OCI 镜像制品](https://docs.zarf.dev/tutorials/6-publish-and-deploy/)
- 提供 [web 仪表板](https://docs.zarf.dev/ref/sboms/#the-sbom-viewer) 以查看 SBOM 输出
- 使用 [cosign](https://github.com/sigstore/cosign) 创建和验证包签名
- 从 [OCI registry](https://opencontainers.org/) [发布](https://docs.zarf.dev/commands/zarf_package_publish)、[拉取](https://docs.zarf.dev/commands/zarf_package_pull) 和 [部署](https://docs.zarf.dev/commands/zarf_package_deploy) 包
- 强大的组件生命周期 [actions](https://docs.zarf.dev/ref/actions)
- 在完全断开连接的情况下使用 [K3s](https://k3s.io/) 部署新集群,或使用 [kube config](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) 部署到任何现有集群
- 内置 Git 服务器 [Gitea](https://gitea.io/en-us/)
- 内置 Docker registry
- 内置 [K9s 仪表板](https://k9scli.io/) 用于从终端管理集群
- [Mutating Webhook](adr/0005-mutating-webhook.md) 自动更新 Kubernetes pod 的镜像路径和拉取密钥,以及 [Flux Git Repository](https://fluxcd.io/docs/components/source/gitrepositories/) 的 URL 和密钥引用
- 内置[从 Helm chart 查找镜像](https://docs.zarf.dev/commands/zarf_dev_find-images)和资源的命令
- 隧道功能,无需配置网络路由、DNS、TLS 或 Ingress 即可[连接到 Kubernetes 资源](https://docs.zarf.dev/commands/zarf_connect)
## 🛠️ 可配置功能
- 可定制的[变量和包模板](https://docs.zarf.dev/ref/values/),支持默认值和用户提示
- [可组合的包](https://docs.zarf.dev/ref/components/#component-imports)以包含多个子包/组件
- 组件级的操作系统/架构过滤
## 演示
[](https://www.youtube.com/watch?v=WnOYlFVVKDE)
_标签:declarative配置, DevSecOps, EVTX分析, EVTX分析, Go语言, Helm, K8s工具, LLM防护, NIDS, 上游代理, 二进制分发, 二进制发布, 包管理器, 基础设施, 子域名突变, 安全交付, 容器化, 开源工具, 断网部署, 无依赖, 日志审计, 混合云, 离线安装, 离线环境, 程序破解, 统一API, 请求拦截, 软件供应链, 边缘计算