I have been starting Continuous Integration and Deployment setups. Starting this was really hard for me as every article and forum discussion assumes that you are familiar with infrastructure concepts and procedures, specially in referring to cloud provider tools or outdated configurations.
But that is not my case, I’m documenting my own CI/CD tool setup and is one of the most complex things that I have tried. I’m sure this practice is useful to every developer, or even automation, ETL or low-code practitioner. So, this series might save you some time as step by step is documented from setting a source control server, uploading code to a local repository, build docker images, deploy them, into your own Infrastructure as Code (IaC) in this case into Raspberry Pi (k3s) or Local Linux machine (‘kind’) Kubernetes cluster.
The only caveat is that this environment runs locally and does not use SSL certificates (just HTTP) as this setup is not well documented online.
The articles in the series are:
- Install a Server for source code control
- Create groups, users and projects
- Working with Git
- GitLab Container Registry and authentication
- Set up a GitLab Runner
- Test a simple CI pipeline
- Use CI to build a java App using a GitLab script
- Deploy a Web App with Ansible and GitLab (IaC for Database and Apache servers)
- Set Up a Kubernetes Cluster on Raspberry Pi’s
- Create a ‘kind’ Kubernetes cluster and deploy an App using a GitLab pipeline
- Build a multiplatform docker App and deploy it into a k3s Kubernetes cluster