【问题标题】:Open shift build config vs jenkinsfileOpenshift 构建配置与 jenkinsfile
【发布时间】:2021-08-17 23:15:33
【问题描述】:

我们正在使用 OpenShift。我对 buildconfig 文件与 jenkinsfile 之间存在混淆。我们需要它们两个还是一个就足够了。我已经看到在 jenkinsfile docker build 中使用 buildconfig 文件定义的示例。在某些情况下 buildconfig 文件使用 jenkinsfile 作为构建策略。有人可以澄清一下吗

【问题讨论】:

标签: openshift cicd


【解决方案1】:

BuildConfig 是所有构建的基本类型,可以在构建配置中使用不同的构建策略,通过运行oc explain buildconfig.spec.strategy 你可以看到它们。如果你想做一个 docker build 使用dockerStrategy,如果你想使用 source2image 从源代码构建你指定sourceStrategy

有时您的需求比简单地运行带有输出图像的构建更复杂,假设您想要运行构建,等待该图像部署到某个环境,然后运行一些自动化的 GUI 测试。在这种情况下,您需要一个管道。如果您想从 OpenShift Web 控制台触发和配置此管道,您可以在 BuildConfig 中使用 jenkinsPipelineStrategy。在 OpenShift 3.x Web 控制台中,此类 BuildConfigs 显示为 Pipelines 而不是 Builds,即使它们都是真正的 BuildConfigs。

任何带有jenkinsPipelineStrategy 的 BuildConfig 都将由项目内运行的 Jenkins Build Server 执行。该 Jenkins 实例还可能具有其他管道,这些管道在 OpenShift Web 控制台中未映射或不可见,如果您在 OpenShift Web 控制台中看不到它们的好处,则不需要为每个 Jenkinsfile 都有一个 BuildConfig。

在 Jenkinsfile 和带有一些非 jenkinsfile-strategy 的 BuildConfig 中运行构建的区别在于,构建实际上是在 jenkins 构建代理而不是普通的 OpenShift 构建 pod 中执行的。

在我们公司,我们将 jenkinsFile 管道和 BuildConfigs 与 sourceStrategy 结合使用。我们让管道调用 OpenShift API 并告诉它使用 sourceStrategy 执行 BuildConfig,而不是直接在 Jenkinsfile 管道中运行构建。所以基本上我们仍然使用 s2i 来构建图像,但 Jenkinsfile 作为我们的 CI/CD 管道引擎。你可以在https://github.com/openshift/jenkins-client-plugin找到一些例子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2022-11-07
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    相关资源
    最近更新 更多