作者:Sascha Schwarze (@SaschaSchwarze0)
我们很高兴地宣布 Shipwright v0.14.0 的发布。这是我们作为沙箱项目加入云原生计算基金会 (CNCF) 后的第一次发布。
在此次发布中,我们整合了一些很棒的功能:
功能
漏洞扫描
保持环境安全至关重要。对于容器镜像,扫描已被广泛采用。Shipwright 现在将扫描提前,将镜像扫描集成到镜像构建过程中。我们将确保有漏洞的镜像不会进入你的容器注册表(当然,你仍需定期重新扫描,以确定何时变得易受攻击)。这对于使用的基础镜像突然不再更新时,是一个很好的保护措施。
你可以在单独的博客文章使用 Shipwright 构建安全容器镜像[1]中了解更多信息。
CLI 中的参数
Shipwright CLI 最终支持了构建参数[2]。你可以使用 --param-value
参数为策略参数提供值,例如在我们的 ko 示例构建策略中指定 Go 版本和 Go 标志,命令如下:shp build create my-app --param-value go-version=1.23 --param-value go-flags=-mod=vendor
。
其他小改进
小的改动往往能带来帮助,以下是一些:
如果 BuildRun 中的某个步骤耗尽内存,现在更容易判断,因为 BuildRun 状态将显示 StepOutOfMemory 作为原因。 新增了一个示例构建策略[3],通过 Kubernetes Jobs 协调多架构构建。有关更多信息,请查看我们的文档[4]。 我们开始在 Builds 和 BuildRuns 上实现节点选择[5],并计划在 v0.15 中添加容忍度支持。 一如既往,我们进行了尽职调查。DependaBot 帮助我们保持依赖项的安全。我们现在使用 Go 1.22 进行构建,并更新了 Kubernetes 和 Tekton 的依赖项。我们还在建立自动化流程,一旦我们的最新版本变得易受攻击,将会在 GitHub 上创建一个问题。未来你可能会看到更多补丁发布,以保持我们的版本没有漏洞。
安装 Shipwright
构建
1. 安装 Tekton v0.65.1:
kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.65.1/release.yaml
2. 使用发布 YAML 清单安装 v0.14.0:
kubectl apply --filename https://github.com/shipwright-io/build/releases/download/v0.14.0/release.yaml --server-side
curl --silent --location https://raw.githubusercontent.com/shipwright-io/build/v0.14.0/hack/setup-webhook-cert.sh | bash
3.(可选)使用 YAML 清单安装示例构建策略:
kubectl apply --filename https://github.com/shipwright-io/build/releases/download/v0.14.0/sample-strategies.yaml --server-side
如果你是早期使用 Alpha API 的 Shipwright 用户(v0.13.0 之前),建议你运行存储版本迁移。这将更新你集群中所有 Shipwright 资源的存储版本为 Beta API,以避免将来不必要的转换 webhook 调用。
curl --silent --location https://raw.githubusercontent.com/shipwright-io/build/v0.14.0/hack/storage-version-migration.sh | bash
CLI 安装
Windows
curl --silent --fail --location https://github.com/shipwright-io/cli/releases/download/v0.14.0/cli_0.14.0_windows_x86_64.tar.gz | tar xzf - shp.exe
shp version
shp help
Mac
curl --silent --fail --location https://github.com/shipwright-io/cli/releases/download/v0.14.0/cli_0.14.0_macOS_$(uname -m).tar.gz | tar -xzf - -C /usr/local/bin shp
shp version
shp help
Linux
curl --silent --fail --location "https://github.com/shipwright-io/cli/releases/download/v0.14.0/cli_0.14.0_linux_$(uname -m | sed 's/aarch64/arm64/').tar.gz" | sudo tar -xzf - -C /usr/bin shp
shp version
shp help
使用 Shipwright 构建安全容器镜像: https://shipwright.io/blog/2024/11/14/shipwright-v0.14.0-is-here/2024-07-15-vulnerability-scanning.md
[2]构建参数: https://shipwright.io/blog/2024/11/docs/build/build.md#defining-paramvalues
[3]示例构建策略: https://github.com/shipwright-io/build/blob/v0.14.0/samples/v1beta1/buildstrategy/multiarch-native-buildah/buildstrategy_multiarch_native_buildah_cr.yaml
[4]文档: https://github.com/shipwright-io/build/blob/v0.14.0/docs/buildstrategies.md#multi-arch-native-buildah
[5]节点选择: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
点击【阅读原文】阅读网站原文。
CNCF概况(幻灯片)
扫描二维码联系我们!
CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux Foundation,是非营利性组织。
CNCF(云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请关注CNCF微信公众号。