< img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=3131724&fmt=gif" />

Deploy GitLab on KubeSphere

GitLab is an open-source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more.

This tutorial demonstrates how to deploy GitLab on KubeSphere.

Prerequisites

  • You need to enable the OpenPitrix system.
  • You need to create a workspace, a project, and two accounts (ws-admin and project-regular) for this tutorial. The account ws-admin must be granted the role of workspace-admin in the workspace, and the account project-regular must be invited to the project with the role of operator. If they are not ready, refer to Create Workspaces, Projects, Accounts and Roles.

Hands-on Lab

Step 1: Add an app repository

  1. Log in to KubeSphere as ws-admin. In your workspace, go to App Repositories under App Management, and then click Add.

    add-repo

  2. In the displayed dialog box, enter main for the app repository name and https://charts.kubesphere.io/main for the app repository URL. Click Validate to verify the URL and you will see a green check mark next to the URL if it is available. Click OK to continue.

    add-main-repo

  3. The repository is displayed in the list after successfully imported to KubeSphere.

    added-main-repo

Step 2: Deploy GitLab

  1. Log out of KubeSphere and log back in as project-regular. In your project, go to Apps under Application Workloads and click Deploy New App.

    deploy-app

  2. In the displayed dialog box, select From App Templates.

    from-app-templates

  3. Select main from the drop-down list, then click gitlab.

    click-gitlab

  4. On the App Information tab and the Chart Files tab, you can view the default configuration from the console. Click Deploy to continue.

    view-config

  5. On the Basic Information page, you can view the app name, app version, and deployment location. This tutorial uses the version 4.2.3 [13.2.2]. Click Next to continue.

    basic-info

  6. On the App Configurations page, use the following configurations to replace the default configurations, and then click Deploy.

    global:
      hosts:
        domain: demo-project.svc.cluster.local
    gitlab-runner:
      install: false
    gitlab:
      webservice:
        helmTests:
          enabled: false
    

    change-value

    Note

    demo-project refers to the project name where GitLab is deployed. Make sure you use your own project name.
  7. Wait for GitLab to be up and running.

    gitlab-running

  8. Go to Workloads, and you can see all the Deployments and StatefulSets created for GitLab.

    deployments-running

    statefulsets-running

    Note

    It may take a while before all the Deployments and StatefulSets are up and running.

Step 3: Get the root user’s password

  1. Go to Secrets under Configurations, enter gitlab-initial-root-password in the search box, and then press Enter on your keyboard to search the Secret.

    search-secret

  2. Click the Secret to go to its detail page, and then click in the upper-right corner to view the password. Make sure you copy it.

    password

Step 4: Edit the hosts file

  1. Find the hosts file on your local machine.

    Note

    The path of hosts file is /etc/hosts for Linux, or c:\windows\system32\drivers\etc\hosts for Windows.
  2. Add the following item into the hosts file.

    192.168.4.3  gitlab.demo-project.svc.cluster.local
    

    Note

    • 192.168.4.3 and demo-project refer to the NodeIP and project name respectively where GitLab is deployed. Make sure you use your own NodeIP and project name.
    • You can use any IP address of the nodes in your Kubernetes cluster.

Step 5: Access GitLab

  1. Go to Services under Application Workloads, enter nginx-ingress-controller in the search box, and then press Enter on your keyboard to search the Service. You can see the Service is being exposed through port 31246, which you can use to access GitLab.

    search-service

    Note

    The port number shown on your console may be different. Make sure you use your own port number.
  2. Access GitLab through http://gitlab.demo-project.svc.cluster.local:31246 using the root account and its initial password (root/ojPWrWECLWN0XFJkGs7aAqtitGMJlVfS0fLEDE03P9S0ji34XDoWmxs2MzgZRRWF).

    access-gitlab

    gitlab-console

    Note

    You may need to open the port in your security groups and configure related port forwarding rules depending on where your Kubernetes cluster is deployed.

Thanks for the feedback. If you have a specific question about how to use KubeSphere, ask it on Slack. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.