eclipse-platform / eclipse.platform.releng.aggregator

Aggregated repository for Eclipse Java IDE
https://www.eclipse.org/eclipse/
Eclipse Public License 2.0
30 stars 74 forks source link

[I/Y/P-Builds] Simplify Kubernetes pod definitions #2149

Closed HannesWell closed 3 months ago

HannesWell commented 3 months ago

Inherit most of the configuration from the centos-8 pod-template.

This extracts the changes made in https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/pull/2107 on the kubernetes spec.

heurtematte commented 3 months ago

LGTM!

HannesWell commented 3 months ago

LGTM!

Thank you. Then lets submit this. I'll and trigger another I-build to verify this as soon as my other currently building PRs are submitted.

@MohananRahul can you have an eye on the next Y- and P-builds? Although I expect that if the I-build succeeds those builds should also be fine.

HannesWell commented 3 months ago

The triggered I-build failed with https://ci.eclipse.org/releng/job/Builds/job/I-build-4.33/35/

[ERROR] Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:4.0.8:compile (default-compile) on project org.eclipse.equinox.http.service.api: useJDK = BREE configured, but no toolchain of type 'jdk' with id 'JavaSE-1.8' found. See https://maven.apache.org/guides/mini/guide-using-toolchains.html -> [Help 1]
 org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:4.0.8:compile (default-compile) on project org.eclipse.equinox.http.service.api: useJDK = BREE configured, but no toolchain of type 'jdk' with id 'JavaSE-1.8' found. See https://maven.apache.org/guides/mini/guide-using-toolchains.html

My first guess is that some of the volumeMounts about toolchains.xml that were removed were not useless. But it's unexpected since the build of this repo and other project builds also use -Pbree-libs with the centos-latest pob-template. I have replayed the build with some of these mounts restored to check if that's really the cause.

HannesWell commented 3 months ago

When comparing the pod definition that is printed on the console in the very beginning of a job, e.g.:

Created Pod: kubernetes releng/builds-i-build-4-33-37-n6f4m-32g09-nhhz6
Agent [builds-i-build-4-33-37-n6f4m-32g09-nhhz6](https://ci.eclipse.org/releng/computer/builds-i-build-4-33-37-n6f4m-32g09-nhhz6) is provisioned from template Builds_I-build-4_33_37-n6f4m-32g09
...

of the current I-build-4.33 job, for example with the eclipse.platform.releng.aggregator/master job, where the latter just uses in its pipeline a simple labeled agent agent { label "centos-latest-8gb" } I see that the following volumeMounts and (what I believe are) the corresponding volumes are missing:

    volumeMounts:
    - mountPath: "/home/jenkins/.m2/toolchains.xml"
      name: "m2-dir"
      readOnly: true
      subPath: "toolchains.xml"
    - mountPath: "/home/jenkins/.m2/settings-security.xml"
      name: "m2-secret-dir"
      readOnly: true
      subPath: "settings-security.xml"
    - mountPath: "/home/jenkins/.m2/settings.xml"
      name: "m2-secret-dir"
      readOnly: true
      subPath: "settings.xml"

Besides the toolchains.xml, which I added back in #2157, the absence of the other two mounts seem not to be problematic. But nevertheless I wonder why they are missing? @heurtematte can you tell that? Does inheriting a pod-template not inherit the volum(mounts)? Does it have to be activated explicitly? Or are we eventually using actually another template than the eclipse.platform.releng.aggregator/master that only defines a labeled agent?

heurtematte commented 3 months ago

@HannesWell I have updated the jenkins instance with the merge strategy for podtemplate. It is not anymore necessary to replicate those mount volume definitions.

HannesWell commented 3 months ago

@HannesWell I have updated the jenkins instance with the merge strategy for podtemplate. It is not anymore necessary to replicate those mount volume definitions.

Awesome! Thank you. Just created https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/pull/2158 to remove those extra volume(Mounts) again. Verified it before with a replayed (shortly after its start aborted) I-build that the volume(Mounts) are now inherited as intended.