Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fabric8 CD管道应该如何在OpenShift上工作(没有ImageStreams)_Openshift_Fabric8 - Fatal编程技术网

Fabric8 CD管道应该如何在OpenShift上工作(没有ImageStreams)

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

我正在努力让F8 CD管道在OpenShift上工作。我使用从for Maven版本下载的Jenkins文件,步骤为“CanaryReleaseAndStage”。此处的阶段部署步骤如下所示:

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>