-
Notifications
You must be signed in to change notification settings - Fork 43
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
inf-terraform-[aws|azure], jenkins-agent-terraform-2306 with tooling update (ruby 3.2.2, python 3.11) #923
inf-terraform-[aws|azure], jenkins-agent-terraform-2306 with tooling update (ruby 3.2.2, python 3.11) #923
Conversation
@tbugfinder , This update in the agent will make older versions of the AWS and Azure quickstarter still functional ? is it a breaking change ? |
@braisvq1996 , that's correct. There are two options: Option B): If there's any other option, happy to discuss. |
The older image will always be preserved, just that the tag 4.x will pount to the most recent builded agent. Another option would be to make a new mayor release of ODS (5.x) even though I would not really want to go with this option... @metmajer @tbugfinder I would go with the option to prepare some documentation on how to use older image, how to update and notify/inform users of this breacking change. |
@tbugfinder @braisvq1996 I would recommend leaving existing use cases intact and not introducing breaking changes automatically. We can use our existing communication channels including Release Notes for the upcoming release to explain the breaking change and how to use the new image. Brais, what's your final take on the tag name? |
@metmajer @tbugfinder The tag for the agents are the same for everyone, 4.x because we are using ODS 4.x The only way to get this update and not have the breaking change is to either have a different name for the agent (as we did for Java) or release ODS 5.x Personally, I would preffer to either re-name the agent or take the breaking change into the existeing one and communicate/document |
Good point, that's option C. I rather prefer that existing teams manage and update their code. This should be a normal maintenance activity. |
What does renaming the agent mean? Is there any side effect if built agent images might get deleted mistakenly? |
Option D) This requires some additional testing, increases image size and the image itself might be marked having security issues. |
In Java agent we renamed the agent to jdk because maven was removed from it (wrappers approach is recomended instead). |
This would be a prefered option if posible. BUT we would still need to communicate to users that Ruby 2.x will be removed soon and they need to update their code then remove Ruby 2.x at a later date. |
Sorry for jumping in late ... considering our previous discussion my understanding was that we simply introduce a new agent and keep the old agent in parallel for compatibility |
Always welcome @nichtraunzer, we were just checking all possibilities and its impact to the users. |
Hi! Just to add my two cents: I think having a generic agent image for all terraform quickstarters is the way to go, because both azure and aws quickstarters use the same, right? |
Still aws&azure QS rely on the same image. The question is how to deal with existing environments which depend on a previous image build. @gerardcl Are you saying there should also be one image for existing and new environments? Is it ok that admins of existing environments have to update the code or should the image be versatile? |
How often can these be updated or how many versions should be maintained? Is it terraform-agent and terraform-agent-2? |
Hi! |
@gerardcl I do think it is a good idea as it seems ruby version is a breaking change and it will follow the same approach we have with node agents. @tbugfinder @nichtraunzer we can follow the last suggested naming convention that way we keep last agent and we have new one available. New naming convention makes sense in the following versions of ruby. |
My understanding is that we are more flexible and do not depend on ODS releases - @braisvq1996 correct me if I am wrong ... My preferred approach to this topic would be:
Going this approach allows us to inform "old customers" about the availability of the new agent version in a follow-up "sunset" phase (3-6 months). So we would have enough time to
|
We are not necessarily dependent of ODS releases but we can take advantage that one is near in order to update some quickstarters. Lets go with the approach of having a new agent and as you mention work on the migration path |
As a side note, I've done a build with two ruby versions which could work too, but might increase over time. Anyway the approach is one active/maintained agent and an deprecated agent. The naming convention for the agent (from now on) is: |
I would be more inclined to use package versions instead of dates like Gerard example: jenkins-agent-terraform-ruby3 |
Today the agent uses ruby3.2.2, tomorrow ruby 3.4.5. So it might not work well with ruby3 only or even a breaking change is raised by another component, meaning the name could be jenkins-agent-terraform-ruby3-azure3-aws2? Therefore yymm is simple and makes the version transparent (jenkins-agent-terraform-2305:4.x). |
… changes to ruby3, inspec5 * update quickstarters inf-terraform-[aws|azure] to align with the new terraform-2306 agent - update pre-commit hooks - rebuild Gemfile.lock - update python requirements - bump versions.tf
0bc9061
to
8f00ae7
Compare
@tbugfinder we should also update the makefile to build this new agent |
This PR add a new jenkins-agent-terraform-2305 with updated tools used within the could quickstarter components.
Especially upgrade to Ruby 3.2.2 as Ruby 2.7.5 is EOL and switching the default python version to 3.11.
Dependent updates are also incorporated as well as overall version updates.
Closes #914
Tasks:
docs/modules/...
directory<quickstarter>/testdata
directory