You are viewing documentation for KubeSphere version:v3.0.0
KubeSphere v3.0.0 documentation is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see the latest version.
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 user accounts (
ws-admin
andproject-regular
) for this tutorial. The accountws-admin
must be granted the role ofworkspace-admin
in the workspace, and the accountproject-regular
must be invited to the project with the role ofoperator
. If they are not ready, refer to Create Workspaces, Projects, Accounts and Roles.
Hands-on Lab
Step 1: Add an app repository
-
Log in to KubeSphere as
ws-admin
. In your workspace, go to App Repos under Apps Management, and then click Add Repo. -
In the dialog that appears, enter
main
for the app repository name andhttps://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. -
The repository displays in the list after successfully imported to KubeSphere.
Step 2: Deploy GitLab
-
Log out of KubeSphere and log back in as
project-regular
. In your project, go to Applications under Application Workloads and click Deploy New Application. -
In the dialog that appears, select From App Templates.
-
Select
main
from the drop-down list, then click gitlab. -
On the App Info tab and the Chart Files tab, you can view the default configuration from the console. Click Deploy to continue.
-
On the Basic Info page, you can view the app name, app version, and deployment location. Click Next to continue.
-
On the App Config 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
Note
demo-project
refers to the project name where GitLab is deployed. Make sure you use your own project name. -
Wait for GitLab to be up and running.
-
Go to Workloads, and you can see all the Deployments and StatefulSets created for GitLab.
Note
It may take a while before all the Deployments and StatefulSets are up and running.
Step 3: Get the root user’s password
-
Go to Secrets under Configurations, input
gitlab-initial-root-password
in the search bar, and then press Enter on your keyboard to search the Secret. -
Click the Secret to go to its detail page, and then click the eye icon in the upper right corner to view the password. Make sure you copy it.
Step 4: Edit the hosts file
-
Find the hosts file on your local machine.
Note
The path of hosts file is/etc/hosts
for Linux, orc:\windows\system32\drivers\etc\hosts
for Windows. -
Add the following item into the hosts file.
192.168.4.3 gitlab.demo-project.svc.cluster.local
Note
192.168.4.3
anddemo-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
-
Go to Services under Application Workloads, input
nginx-ingress-controller
in the search bar, and then press Enter on your keyboard to search the Service. You can see the Service is being exposed through port32618
, which you can use to access GitLab.Note
The port number shown on your console may be different. Make sure you use your own port number. -
Access GitLab through
http://gitlab.demo-project.svc.cluster.local:32618
using the root account and its initial password (root/LAtonWwrzFvbAW560gaZ0oty6slpkCcywzzCCpeqql9bxIjJBMSGys43zSwq3d9I
).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.