Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add additional machines that can build Linux installers #1283

Open
gdams opened this issue Apr 15, 2020 · 21 comments
Open

Add additional machines that can build Linux installers #1283

gdams opened this issue Apr 15, 2020 · 21 comments

Comments

@gdams
Copy link
Member

gdams commented Apr 15, 2020

Currently we only have 1 machine to build the den/rpm files and this is shared with the docker builds. This can cause a massive delay in getting releases out. Let’s get the required dependencies added to ansible.

@gdams gdams self-assigned this Apr 15, 2020
@sxa
Copy link
Member

sxa commented Apr 16, 2020

I thought I'd taken the docker tag off that machine - I'll remove it now as the docker builds generally run on other systems now

@sxa
Copy link
Member

sxa commented Apr 16, 2020

It's sitting with two executors as well which should have prevented it from blocking any pipelines (I also thought I'd dropped that back to one executor, or did you increase it to unblock the installer jobs?)

@sxa
Copy link
Member

sxa commented Apr 16, 2020

Ref #952

@karianna karianna modified the milestone: April 2020 Apr 16, 2020
@sxa
Copy link
Member

sxa commented Apr 16, 2020

Have dropped executors on that machien back down to 1 now that the docker job has finished (and the docker tag removed this time!)

Do we have docs on the requirements setting up machines for running the installers @gdams? The only thing we need to take care of is additional access controls on machines that have the keys so I don't want them just installed everywhere (same situation with the docker keys - I want access to those systems more restricted than most of our systems so I'm trying not to deploy them everywhere at the moment)

@aahlenst
Copy link
Contributor

@aahlenst
Copy link
Contributor

If I can do anything to make things more friendly for our infra, please let me know.

@sxa
Copy link
Member

sxa commented Apr 16, 2020

@aahlenst This is purely out of curiosity (as itr's not a problem) but why is java 11 required? There seems to be references to gradle in there, but does that now require 11 - is that the reason?

@aahlenst
Copy link
Contributor

Java 11 isn't required anymore. I removed the Java 11 specific features a year ago or so. The machine the jobs are running on doesn't have 11 anyway?

@sxa
Copy link
Member

sxa commented Apr 16, 2020

It does have 11 installed (most of our machines do) but it's not the default java. Your first link was where it said it needed java11 or later, so I was curious as to why that was the case, or if java 8 was ok for whatever required it. Sounds like the latter, in which case perhaps the doc could be updated to clarify that?

@sxa
Copy link
Member

sxa commented Apr 16, 2020

I think we should definitely get an ansible role set up for those extra things (ruby gems+fpm), even if we don't run it by default on all of our machines :-) Feel free to take a look at creating one if you're interested, or @Haroon-Khel can probably get something in place without too much difficulty too! I suspect there's an ansible operation to install a ruby gem somewhere so this should be a simple thing to add.

@gdams
Copy link
Member Author

gdams commented Apr 16, 2020

I think it also requires a specific GPG key to be installed on the machine

@sxa
Copy link
Member

sxa commented Apr 16, 2020

Yeah I figured there probably was hence my earlier comment on "additional access controls" - I'm not keen for any such key being a default thing on all the machines

@gdams
Copy link
Member Author

gdams commented Apr 16, 2020

@sxa I think there is a Jenkins plugin that allows you to install a gpg key on a machine temporarily for a job

@gdams
Copy link
Member Author

gdams commented Apr 17, 2020

could look at using https://plugins.jenkins.io/rpmsign-plugin/

@sxa
Copy link
Member

sxa commented Apr 17, 2020

I think it also requires a specific GPG key to be installed on the machine

Seems to be the ones in ~/.gnupg on the machine that are used

@Haroon-Khel
Copy link
Contributor

Haroon-Khel commented Apr 21, 2020

@sxa @gdams aside from the prereqs listed in https://github.com/AdoptOpenJDK/openjdk-installer/tree/master/linux#prerequisites, which of the existing roles do you think would need to be run on a machine dedicated to only building linux installers? I can start adding these roles into a playbook

@sxa
Copy link
Member

sxa commented Apr 28, 2020

I would imagine that nothing else would be definitely required to perrform the work, but I would suggest we add the Superuser and jenkins roles and see how well that works :-)

We should see if we can run the install script excluding the signing on a machine set up with only those things.

@Haroon-Khel
Copy link
Contributor

The linux installer job uses gradle tasks, yet gradle isnt mentioned as a prerequisite in https://github.com/AdoptOpenJDK/openjdk-installer/tree/master/linux#prerequisites. @gdams Do you know if this is because Jenkins sorts this out by the use of a plugin?

@aahlenst
Copy link
Contributor

@Haroon-Khel Gradle wrapper is being used. If Gradle is already present on the system, it's ignored.

@sxa
Copy link
Member

sxa commented May 30, 2022

Is this still relevant with the move to the linuxNew installer process?

@karianna
Copy link
Contributor

karianna commented Jun 8, 2022

For those watching, linuxNew has been renamed to linux

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants