将脚本或命令与 Skaffold 开发部署一起运行到 Kubernetes 集群

Ali*_*i n 5 kubernetes skaffold

我想在运行之前运行一个命令来从远程存储库克隆脚本,skaffold dev我需要以某种方式注入git clone命令或将 git clone 命令和相应的参数放在 shell 脚本中,然后使用 Skaffold 运行 shell 脚本。

从 Skaffold 工作流的角度来看,这一步应该在构建之前运行。我在构建阶段使用 Jib,看起来 Jib 状态没有给我任何在实际构建之前运行脚本的能力。我不知道我是否可以为 Skaffold 生命周期添加一个新阶段,例如pre-build. 我想到的一个解决方案是使用custombuild 而不是Jib并将所有预构建命令以及与 jib 相关的命令放在一个脚本中运行。这种方法可能有效,但不会很方便。我想知道是否有更好的方法来使用 Skaffold 做到这一点。

build:
  artifacts:
    - image: gcr.io/k8s-skaffold/example
      custom:
        buildCommand: ./prebuild-and-build.sh
Run Code Online (Sandbox Code Playgroud)

aar*_*dle 4

skaffold 支持生命周期挂钩,允许在构建之前/之后运行自定义脚本 - https://skaffold.dev/docs/pipeline-stages/lifecycle-hooks/

这样,您应该能够在 skaffold.yaml 中添加类似于以下内容的节:

build:
  artifacts:
  - image: gcr.io/k8s-skaffold/example
    hooks:
      before:
        - command: ["sh", "-c", "./prebuild-and-build.sh"]
          os: [darwin, linux]
        # - command: # ...TODO
        #   os: [windows]
Run Code Online (Sandbox Code Playgroud)

注意:此功能相对较新,请务必使用最新的 skaffold 版本(撰写本文时为 v1.33.0)。