History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: QB-3564
Type: New Feature New Feature
Status: Open Open
Priority: Major Major
Assignee: Robin Shen
Reporter: Jeremie Levy
Votes: 11
Watchers: 3
Operations

If you were logged in you would be able to see more operations.
QuickBuild

Manage Kubernetes Pod definition in QB

Created: 04/May/20 01:08 PM   Updated: 29/Mar/21 01:32 PM
Component/s: None
Affects Version/s: 10.0.11
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown


 Description  « Hide
when raising a resource in Kubernetes, there is no way to define volumes, cpus, memory usage ...
This is a feature present in jenkins (sorry for writing this) and we would like the same pipeline in QB in order to keep using it properly.
https://github.com/jenkinsci/kubernetes-plugin

Thank you.

 All   Comments   Work Log   Change History      Sort Order:
De Ce [08/Feb/21 12:58 PM]
This functionality is critical for us. Building inside containers is easy, cost effective and reliable in comparation to classic agent model.
By giving possibility to manage pod specification (in this case nodeSelector) we can even connect to Kubernetes cluster with Windows nodes and try to build code on Windows containers.
By mounting volumes, we can use shared storage for huge binaries instead fetching it over the network which will speed up build process.
List of advantages and possibilities is really long.

Please kindly increase priority of this request.


Robin Shen [29/Mar/21 01:32 PM]
Although we can make k8s agent pod definition more flexible with yaml files, it still requires you to build special agent image including build agent software, and your build command can only be executed on this build agent container.

This may not work as you expected from Jenkins pipeline on Kubernetes which allows you to execute command on arbitrary container. This mode works very differently from QB's current agent architecture and we will not make the change.

Alternatively, you may checkout another product we open sourced, and it works exactly the way you expected, and it is much simpler than Jenkins. It is a all-in-one devops platform something like GitLab and is hosted here: https://github.com/theonedev/onedev

A tutorial on installing OneDev into k8s and run each build as separated pod:
https://dzone.com/articles/build-farm-in-kubernetes-with-onedev