Continuous Integration and Continuous Deployment, better known by the acronym CI/CD is the foundation of modern DevOps.
At the Crossplane Community Day Europe virtual event, Jan Willies, Platform Architect at Accenture outlined how to connect all the different platform pieces together for automated CI/CD. Accenture is one of the world's largest consulting firms and has been actively engaged in many different cloud native efforts including Kubernetes and Crossplane.
The first part of the CI/CD process is onboarding a new application, which can be an involved and complicated process in many organizations. Willies explained that onboarding a new application often involves lots of manual steps including finding the right settings for a Git code repository, connecting code integration systems and figuring out deployment manifests. From a platform engineering perspective, Willies said that there is a clear need and desire to automate the application onboarding process.
"Obviously the application needs to be deployed and for the GitHub software we also need to connect the Git repo and we need to connect the execution environment," Willies said. "We can do that manually, but we can also use API's for that."
Using Crossplane for Application Onboarding
Willies explained that among Crossplane's core features is the Crossplane Provider capability that implements arbitrary API's and mirrors them into Kubernetes.
"This is really helpful because we now have drivers for each of those API's and are able to configure the systems in a standardized way via Kubernetes," Willies said.
So for example, a YAML configuration file can be created for a given Git repository. That said, Willies noted that there is still a need to know what to put in the YAML files, since they can potentially expose everything the upstream provider based API enables. That's where Crossplane Compositions come into play.
"A composition is a templated resource, which acts as a controller and creates a single YAML file," Willies said.
A Crossplane Composition from a technical perspective is an XRC, a Composite Resource Claim (XRC) which enables the composition to abstract the underlying implementation details from the assembled provider resources.
In a demo, Willies showed how it was possible to easily onboard a new application using Crossplane. The demo involved creating a GitLab project, an Argo CD repository and an Argo CD application as well. The providers for GitLab and ArgoCD are all available in the Crossplane GitHub repository for anyone to use and create their own onboarding approach.
"All of this is open source," Willies said.