Shipwright v0.14.0 发布

文摘   2024-11-22 09:29   中国香港  

作者: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
参考资料
[1]

使用 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微信公众号。

CNCF
云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。
 最新文章