Background: For this retail giant, the main challenge was limited CI/CD options available for the project and the complexity and diversity of tasks that would need to be automated.
Goal: Integrate old and new product management systems.
Solution & Results:
The flexibility offered by Jenkins allowed us to create custom pipelines for all of our needs in the project, from building a Python application as a Docker image to the automation of the Kubernetes clusters creation, deletion, and updates.
Jenkins allowed us to achieve all our goals and satisfy all our needs. Its rich plugin ecosystem provides flexibility to run, schedule, and visualize any complex automation.
We leveraged Jenkins' ability to run jobs in Kubernetes clusters dynamically and used Kubernetes secrets as credentials for Jenkins jobs. JCasC allowed us to declaratively source both of the pipelines and configure plugins and other aspects of the Jenkins deployments.
As we used Flux CD, we automated Jenkins upgrades to keep it updated automatically. There were challenges with the approach of making changes in the plugin ecosystem, but it was fairly easy to resolve.
The key capabilities we relied on were:
Jenkins helped us: