Feedback

Chat Icon

Cloud Native CI/CD with GitLab

From Commit to Production Ready

Multi-Stage Continuous Deployment with GitLab, Helm and Kubernetes
97%

Creating a Helm Repository

We have different options to host our Helm repository. We can use GitHub Pages, Amazon S3, Google Cloud Storage, or any other web server. GitLab also provides a built-in package registry that can be used to store charts that's what we are going to use in this guide.

We need to have the following variables defined - we already did this earlier:

  • GITLAB_USERNAME: Your GitLab username.
  • GITLAB_TOKEN: This can be a personal access token with the api scope (we already created one earlier).

We have to define these variables:

  • PROJECT_ID: The GitLab project ID where we want to store the Helm chart. You can find the project ID in the project settings (Settings > General).

GitLab Project ID

GitLab Project ID

  • HELM_CHANNEL: The channel where the chart will be stored. The channel can be stable, alpha, beta, or any other name you want.

Here is an example - make sure to replace the project ID with your own:

# Change the values accordingly
cat <> $HOME/.bashrc && source $HOME/.bashrc
export PROJECT_ID=61109779
export HELM_CHANNEL="stable"
EOF

We also need to define the URL where the Helm chart will be stored. This URL is generated by GitLab and it looks like this:

https://gitlab.com/api/v4/projects/$PROJECT_ID/packages/helm/$HELM_CHANNEL/charts

Let's export this URL to our bash environment:

cat <> $HOME/.bashrc && source $HOME/.bashrc
export HELM_CHARTS_URL="https://gitlab.com/api/v4/projects/$PROJECT_ID/packages/helm/api/$HELM_CHANNEL/charts"
EOF

Now, we can upload the Helm chart to the GitLab Package Registry:

cd $HOME/todo/app/manifests/helm/todo && \
curl \
--fail-with-body \
--request POST \
--form 'chart=@todo-0.1.0.tgz' \
--user $GITLAB_USERNAME:$GITLAB_TOKEN \
$HELM_CHARTS_URL

Cloud Native CI/CD with GitLab

From Commit to Production Ready

Enroll now to unlock all content and receive all future updates for free.