Fabric8 CD管道应该如何在OpenShift上工作(没有ImageStreams)
我正在努力让F8 CD管道在OpenShift上工作。我使用从for Maven版本下载的Jenkins文件,步骤为“CanaryReleaseAndStage”。此处的阶段部署步骤如下所示:Fabric8 CD管道应该如何在OpenShift上工作(没有ImageStreams),openshift,fabric8,Openshift,Fabric8,我正在努力让F8 CD管道在OpenShift上工作。我使用从for Maven版本下载的Jenkins文件,步骤为“CanaryReleaseAndStage”。此处的阶段部署步骤如下所示: stage('Rollout Staging') { kubernetesApply(environment: envStage) } 我从中查找了kubernetesaply()的实现。如果调用中不存在文件参数(如此处所示),它将应用在生成时生成的文件“target/classes/M
stage('Rollout Staging') {
kubernetesApply(environment: envStage)
}
我从中查找了kubernetesaply()的实现。如果调用中不存在文件参数(如此处所示),它将应用在生成时生成的文件“target/classes/META-INF/fabric8/OpenShift.yml”中定义的Kubernetes/OpenShift资源
在这个文件中(它也是作为工件上传到nexus的,因此我可以很容易地获取它),定义了三个资源:
- 服务
- 部署配置,包含Docker映像引用(不带标记),还包含侦听ImageStreamTag“my project:latest”的ConfigChange触发器
- 路线
[INFO] F8: Found tag on ImageStream my-project tag: sha256:c15b56841387a7e0aea960020ccf2efb48f21bd4d12d826e2cd04a94f4d9d748
[INFO] F8: ImageStream my-project written to /home/jenkins/workspace/my-project-dir/target/my-project-is.yml
但我恐怕这一条永远不会适用于库伯内特斯。因此,临时项目中没有图像流
在此配置中,临时部署甚至无法部署pod。如果我将映像流手动添加到登台项目中,它将部署,但在出现新构建时从未更新
我已经更新到最新的fabric/jenkins image 2.2.331,但在这里似乎也不起作用
My pom.xml(f8构建所必需的部分):
4.0.0
我的包裹
myproject/artifactId>
1.0-快照
openshift
码头工人
1.8
1.8
io.fabric8
fabric8 maven插件
3.2.28
fabric8/我的项目
${project.basedir}/src
Dockerfile
资源
建造
所以我想知道:
- CD管道在这里如何更新登台部署
- 如果未应用此图像流定义,为什么会创建此图像流定义。我可能缺少一些配置
谢谢你的洞察力 有没有可能看到您的pom.xml和完整版本?听起来你在使用fabric8 maven插件,对吗?它正在进行S2I二进制构建并生成图像流?听起来好像出了什么问题,生成的图像流没有包含在您的target/classes/META-INF/fabric8/openshift.yml中,可能吧
我想知道你的maven目标的顺序是否出了问题(例如,通常先是fabric8:resource,然后是fabric8:build,然后将ImageStream添加到生成的YAML文件中)有没有可能看到你的pom.xml和完整构建?听起来你在使用fabric8 maven插件,对吗?它正在进行S2I二进制构建并生成图像流?听起来好像出了什么问题,生成的图像流没有包含在您的target/classes/META-INF/fabric8/openshift.yml中,可能吧
我想知道您的maven目标的顺序是否出现了问题或其他问题(例如,通常先是fabric8:resource,然后是fabric8:build,然后将ImageStream添加到生成的YAML文件中)pom.xml。是的,我正在使用F8 maven插件。我不使用s2i而是docker构建策略,但它创建了一个s2i构建器吊舱来构建docker图像。完整日志太长,无法添加到此处(即使删除了所有maven下载内容)。有什么特别感兴趣的地方吗?添加了pom.xml。是的,我正在使用F8 maven插件。我不使用s2i而是docker构建策略,但它创建了一个s2i构建器吊舱来构建docker图像。完整日志太长,无法添加到此处(即使删除了所有maven下载内容)。有什么特别感兴趣的地方吗?
<project ...>
<modelVersion>4.0.0</modelVersion>
<groupId>my.package</groupId>
<artifactId>myproject/artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<fabric8.mode>openshift</fabric8.mode>
<fabric8.build.strategy>docker</fabric8.build.strategy>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>fabric8-maven-plugin</artifactId>
<version>3.2.28</version>
<configuration>
<images>
<image>
<name>fabric8/my-project</name>
<build>
<dockerFileDir>${project.basedir}/src</dockerFileDir>
<dockerFile>Dockerfile</dockerFile>
</build>
</image>
</images>
</configuration>
<executions>
<execution>
<goals>
<goal>resource</goal>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>