Ich habe Probleme die F8 CD-Pipeline mit OpenShift zu arbeiten. Ich benutze eine Jenkinsfile heruntergeladen von der F8 Jenkinsfile Library für Maven Builds mit Schritten "CanaryReleaseAndStage". Die Bühne deploy Schritt sieht es wie folgt aus:Wie sollte Fabric8 CD-Pipeline auf OpenShift (ohne ImageStreams) funktionieren?
stage('Rollout Staging') {
kubernetesApply(environment: envStage)
}
ich die Umsetzung der kubernetesApply nachgeschlagen() aus der Kubernetes Pipeline Plugin. Wenn kein Dateiparameter im Aufruf vorhanden ist (wie hier), wendet er die Kubernetes/OpenShift-Ressourcen an, die in der Datei "target/classes/META-INF/fabric8/openshift.yml" definiert sind, die beim Build generiert wird.
In dieser Datei (die auch als Artefakt der Schnittstelle hochgeladen, so kann ich es leicht holen) gibt es drei Ressourcen definiert:
- A Service
- A Deployment config ein Docker Bild enthält Referenz (ohne Markierung), auch einen ConfigChange Trigger hört für einen ImageStreamTag enthält 'my-Projekt: latest'
- A Route
... aber kein Image. Doch auf dem Buildprotokoll sehe ich, dass ein Bild Stromdefinition offenbar auf einer anderen Datei erstellt wurde:
[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
Aber ich habe Angst, dass man nie zu Kubernetes angewendet wird. Daher gibt es im Staging-Projekt keinen Bildstrom.
In dieser Konfiguration kann die Bereitstellungsbereitstellung den Pod nicht einmal bereitstellen. Wenn ich einen Image-Stream manuell zum Staging-Projekt hinzufüge, wird es zwar bereitgestellt, aber nie aktualisiert, wenn neue Builds auftreten.
Ich habe auf den neuesten Stoff/jenkins Bild 2.2.331 aktualisiert, aber es scheint auch hier nicht zu funktionieren.
Meine pom.xml (Teile wesentlich für f8 Gebäude):
<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>
So weiß ich möchte:
- Wie ist das in Bezug auf Updates für die Inszenierung soll CD-Pipeline arbeiten Bereitstellungen hier?
- Warum wird diese Image-Stream-Definition erstellt, wenn sie nicht angewendet wird? Vermisse ich hier vielleicht etwas Konfiguration.
Danke für jede Einsicht!
pom.xml hinzugefügt. Ja, ich benutze das F8 Maven Plugin. Ich benutze nicht s2i, sondern die Docker-Build-Strategie, aber es erstellt trotzdem einen s2i Builder-Pod, um das Docker-Image zu erstellen.Das vollständige Protokoll ist zu lang, um es hier hinzuzufügen (selbst nach dem Entfernen aller Maven Download-Sachen). Irgendein besonderes Interessengebiet? –