My team was tasked with supporting and testing IBM Cloud Private (ICP), a Kubernetes offering by IBM, on Linux on Z. Our goal was to have full support by the 3.1.2 release and in order to achieve this we needed to port the Travis project to the Mainframe, as CICD pipelines already existed for other architectures (x86/ppc64le).
Our goal was to stay current with the releases of ICP so we supported an N-1, N and N+1 configuration where N was the current GA version of ICP. About once a quarter we had to cycle our clusters so quickly I realized that automation was necessary. Using Terraform we would interact with OpenStack to provision around a handful of multi-architectural nodes. After the infrastructure was initiated, Ansible was leveraged to install packages, customize security policies, and template required files . The end to end strategy reduced standup time by 70%, a huge success.
Alongside these efforts we saw an opportunity to provide our colleagues with a tool enabling them to run and test their applications in a kubernetes context. I was responsible for provisioning and supporting three production clusters that served as a content development portal and hosting utility for 25+ teams at IBM.
Our team also used these clusters to host and port many different open source applications to Linux on Z. Using Travis on Z I containerized applications like Jenkins, OpenFaaS, Postgres, Redis, as well as custom applications written in Python and Bash in regression. We use these examples to write public build scripts released by the Linux on Z outreach team on GitHub.