Apereo CAS Initializr is a relatively new addition to the Apereo CAS ecosystem that allows you as the deployer to generate WAR Overlay projects on the fly with just what you need to start quickly. This post builds on top of the original blog entry and reviews recent enhancements to the Apereo CAS Initializr concerning support for additional project types and publishing Docker images.
This post specifically requires and focuses on:
Resuming from the initial effort, the Apereo CAS Initializr is now able to support the generation of additional project types. The project selection is indicated using a
type parameter. Let’s review a few examples together.
Just as before, you may generate a CAS WAR overlay project using the following command:
curl -k http://casinit.herokuapp.com/starter.tgz \ -d dependencies="core,duo" -d type=cas-overlay \ -d baseDir=overlay | tar -xzvf -
…which will generate a
cas-overlay project based on the requested modules (i.e. dependencies) inside the
overlay directory. Of course, note that the
type parameter is optional here and is the default type for Apereo CAS Initializr.
You may generate a CAS Spring Boot Admin WAR overlay project using the following command:
curl -k http://casinit.herokuapp.com/starter.tgz \ -d type=cas-bootadmin-server-overlay \ -d baseDir=overlay | tar -xzvf -
You may generate a CAS Spring Cloud Configuration Server WAR overlay project using the following command:
curl -k http://casinit.herokuapp.com/starter.tgz \ -d type=cas-config-server-overlay \ -d baseDir=overlay | tar -xzvf -
You may generate a CAS Spring Cloud Discovery Server WAR overlay project using the following command:
curl -k http://casinit.herokuapp.com/starter.tgz \ -d type=cas-discovery-server-overlay \ -d baseDir=overlay | tar -xzvf -
You may generate a CAS Management Server WAR overlay project using the following command:
curl -k http://casinit.herokuapp.com/starter.tgz \ -d type=cas-mgmt-overlay \ -d baseDir=overlay | tar -xzvf -
In summary, here are a few reasons to take advantage of the CAS Initializr capabilities.
The maintenance effort to manage and update multiple overlay projects as starting templates for deployments is now reduced to one unified codebase. Updating various version numbers to produce new versions of each overlay can be done centrally in one codebase without having to manually manage, update and keep track of different projects.
The structure and build process for each overlay project is now uniformly consistent and similar, which helps with reducing the learning curve and entry barriers for new adopters and users. Build tasks, customizations, and other relevant settings in this area are all managed centrally, and should mainly differ in the final produced artifact and not much in the way artifacts are built.
Apereo CAS Initializr can validate each overlay project via consistent continuous integration builds, which of course allows for a more comfortable upgrade process as artifacts and version numbers change.
Once validation efforts succeed and are approved continuous integration system, Apereo CAS Initializr can automatically publish Docker images for each overlay project:
The CAS Initializr can dynamically generate a starting project based on the requested modules and dependencies needed for a deployment. This behavior can be tailored to the user’s experience based on that input and the conditions that follow to generate additional references, files, starting templates, and more in the same project to make the deployment process more comfortable.
CAS Initializr at this point is mainly a backend service and a few APIs. However, one could imagine that a graphical and modern user interface could be built on top of available APIs to help with the project generation task, especially for project newcomers.
Start simple and make changes one step at a time. Once you have a functional environment, you can gradually and slowly add customizations to move files around.
I hope this review was of some help to you and I am sure that both this post as well as the functionality it attempts to explain can be improved in any number of ways. Please feel free to engage and contribute as best as you can.