Environment setup

To set up for charts development, command line tools and a Kubernetes cluster are required.

Required developer tools

The minimum tools required for charts development are documented on the Required tools page.

We recommend to use mise to install these tools. This allows us to easily switch between versions, such as different kubectl or Helm versions.

We provide a .tool-versions file that specifies these tools with their recommended versions. To install or update them:

  1. Clone the charts repository and change directory:

    git clone https://gitlab.com/gitlab-org/charts/gitlab.git charts-gitlab
    cd charts-gitlab/
  2. Trust and install all plugins:

    mise trust
    mise install

Additional developer tools

Developers working on charts also often use the following tools:

Tool nameBenefitsExample use case
miseEasily switch between versions of your favorite runtimes and CLI tools.Switching between Helm 3.7 and Helm 3.9 binaries.
kubectx & kubensManage and switch between Kubernetes contexts and namespaces.Setting default namespace per selected cluster context.
k3sLightweight Kubernetes installation (<40 MB).Quick and reliable local chart testing.
k9sGreatly reduced typing of kubectl commands.Navigate and manage cluster resources quickly in a command line interface.
lensHighly visual management and navigation of clusters.Navigate and manage cluster resources quickly in a standalone desktop application.
sternEasily follow logs from multiple pods.See logs from a set of GitLab pods together.
diveExplore container layers.A tool for exploring a container image, layer contents, and discovering ways to shrink the size of your Docker/OCI image. GitLab Unfiltered
container-diffExplore container layers.A tool for analyzing and comparing container images.

Kubernetes cluster

A cloud or local Kubernetes cluster may be used for development. For simple issues, a local cluster is often enough to test deployments. When dealing with networking, storage, or other complex issues, a cloud Kubernetes cluster allows you to more accurately recreate a production environment.

GitLab images are built for x86-64 amd ARM64 architectures.

FIPS-validated images are only available for x86-64. See issue 2285 for ARM64 FIPS status.

Local cluster

The following local cluster options are supported:

Cloud cluster

The following cloud cluster options are supported:

  • GKE - Google Kubernetes Engine, recommended
  • EKS - Amazon Elastic Kubernetes Service

Installing from repository

Details on installing the chart from the Git repository can be found in the developer deployment documentation.

Developer license

A developer license can be used for chart development to test features that are only functional in a licensed environment.

To use a developer license follow the instructions for Enterprise licenses and connect your instance to the Staging Customers Portal.

global:
  extraEnv:
    GITLAB_LICENSE_MODE: test
    CUSTOMER_PORTAL_URL: https://customers.staging.gitlab.com