v0.6.0: Bye bye Jenkins & Hiera, Welcome Alpine & MySQL
This is the first "official" Release of Lagoon and it's a big and important one. Here is what has happened:
- We got completely rid of Jenkins. We still use a Docker container which itself does most of the heavy lifting (it's called
oc-build-deploy-dind
). But instead of inside a Jenkins Job it now runs within a OpenShift Build. This has many many advantages:- Less services and resource usage (Jenkins is a hungry animal)
- No need to run an external Jenkins, we are now fully self contained within OpenShift
- The Build Container is executed within the same OpenShift Project that will also contain all necessary Ressources to run the Application (Deploymentconfigs, Routes, Services, etc.). This increases security, performance and it's much easier to see which build actually failed, as it is at the same place.
- There is a new Service Called
OpenshiftBuildDeployMonitor
. In the past theOpenshiftBuildDeploy
Service was continuously connected to the Build Container and waited for it to be finished. This had two disadvantages. It used a possible slot for another Build to be started and so we could have ended up in big deploy queues. If the connection between the Service and Build Container broke (TCP issues, Internet hick-ups, whatever). The Build and Deployment probably still finished but the status was lost and we could not inform the developers about the status. Now the OpenshiftBuildDeploy Service creates the Build Container and after that creates a new RabbitMQ Message inside thelagoon-tasks-monitor
exchange, which then will be used byOpenShiftBuildDeployMonitor
to continuously (every 5 secs) to connect tot he OpenShift and check if the Build is done. This frees up resources, makes the system more robust and overall just better. - We completely de-amazeeioified Lagoon. Meaning everything is now called
lagoon
. This ranges from.lagoon.yml
Files, over RabbitMQ queue names and up to comments. As amazee.io we are proud of our name, but we want to keep Lagoon as clean as possible. The Project is called 'lagoon' it's just maintained by amazee.io and friends. - We are replacing the CentOS Images with Alpine Images. With v0.6.0 all of them are gone except the mariadb ones, as there are no upstream alpine-mariadb images that we easily could connect to (see #61 for process on that). All other images are now based on Alpine and with that are not only smaller and faster but also more secure als they provide less attack vector.
- Hiera is no more. Out of legacy reasons of the amazee.io Hosting Platform Version 3 (which is built on Puppet), the Lagoon internal API storage was based on YAML Files saved within a Git repo. Sounds weird and painful? Yes it was. So we replaced it with a proper Database, one that we already know: MariaDB.
- Moar GraphQL. We are improving our Lagoon API more and more. With the v0.6.0 release there is the possibility to create new Projects, Customers, and all other API Objects directly via GraphQL. The deletion and update of the same is still in the works (#102) and we need to authenticate our users (#109) as today there is just a full admin access to everything. But we are finally getting where we want to be: Full API Access.
- Better Install Documentation! (We are very sorry for all the people that tried their best to get Lagoon up and running and where failing because we didn't provide all the required documentation). We really wanted to get all changes in this release in first before anybody else tried to run it, unfortunately our planning didn't really work out so we had a couple of weeks without proper documentation. But this is now solved. Find it here.
- We're testing with OpenShift 3.6.1 now
- Updated the Lagoon Schema to reflect the removed Jenkins and new Services
We want to thank everybody who helped pushing Lagoon forwards, is it via actual code contributions, fixing documentation, bringing up ideas or just trying it out.
The amazee.io team.