CI/CD pipeline: GitLab & Helm for Kubernetes Auto Deploy

This post details the evolution of a GitLab CI/CD pipeline for Golang microservices, specifically focusing on auto-deployment to Kubernetes using Helm. Key changes include the removal of docker-in-docker, the use of caching for packages instead of pre-built images, splitting the pipeline into multiple steps, and configuring Helm for deployment. It also covers building Golang images with specific directory adjustments, installing dependencies with `glide install`, and managing Kubernetes configurations via base64 encoded `kube_config` variables. The deployment stage demonstrates how to use `helm init --client-only`, add chart repositories, and perform conditional `helm install` or `helm upgrade` based on existing releases, including managing application versions via `Chart.yaml`.