본문 바로가기

Kubernetes(k8s)/GitLab

GitLab

1.        GitLab

         1.1.        정의

 Git의 원격 저장소와 코드 리뷰, 이슈 트레커 기능등을 제공하는 소프트웨어이다. 패키지는 3가지로 GitLab CE, GitLab EE, GitLab.com 3가지로 CE는 무료로 사용하는 버전이고, EE는 매월 유저당 요금을 지불하는 형식 .com 은 클라우드형태로 개인이 가입하여 사용하는 서비스이다.

 

         1.2.        특징

 

 

         1.3.        설치 과정

[admin@ubu22-01 ~/Documents/ (kubernetes-admin@cluster.local:default)]$ helm repo add gitlab https://charts.gitlab.io/
[admin@ubu22-01 ~/Documents/ (kubernetes-admin@cluster.local:default)]$ helm repo update
[admin@ubu22-01 ~/Documents/ (kubernetes-admin@cluster.local:default)]$ helm pull gitlab/gitlab
[admin@ubu22-01 ~/Documents/ (kubernetes-admin@cluster.local:default)]$ tar xvfz gitlab-7.2.4.tgz
[admin@ubu22-01 ~/Documents/ (kubernetes-admin@cluster.local:default)]$ rm -rf gitlab-7.2.4.tgz
[admin@ubu22-01 ~/Documents/ (kubernetes-admin@cluster.local:default)]$ mv gitlab gitlab-7.2.4
[admin@ubu22-01 ~/Documents/ (kubernetes-admin@cluster.local:default)]$ cd gitlab-7.2.4
[admin@ubu22-01 ~/Documents/gitlab-7.2.4 (kubernetes-admin@cluster.local:default)]$ cp values.yaml my-values.yaml
[admin@ubu22-01 ~/Documents/gitlab-7.2.4 (kubernetes-admin@cluster.local:default)]$
vi my-values.yaml
...
 
26 global:
  40   edition: ee
  51   hosts:
  52     domain: myweb.io
 846 certmanager-issuer:
 942 prometheus:
 943   install:
false
1181 gitlab-runner:              
1182   install:
false

[admin@ubu22-01 ~/Documents/gitlab-7.2.4 (kubernetes-admin@cluster.local:default)]$
k create ns gitlab
[admin@ubu22-01 ~/Documents/gitlab-7.2.4 (kubernetes-admin@cluster.local:default)]$
k ns gitlab
[admin@ubu22-01 ~/Documents/gitlab-7.2.4 (kubernetes-admin@cluster.local:default)]$
helm install gitlab -f my-values.yaml .

 
[admin@ubu22-01 ~ (kubernetes-admin@cluster.local:gitlab)]$ kubectl get service
NAME                                      TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                                   AGE
...
gitlab-nginx-ingress-controller           LoadBalancer   10.233.62.204   192.168.100.62   80:31014/TCP,443:30423/TCP,22:31104/TCP   1m
...
 
[admin@ubu22-01 ~ (kubernetes-admin@cluster.local:gitlab)]$ k get secrets gitlab-gitlab-initial-root-password --template={{.data.password}} | base64 -d
agalv%iudqHi7od7oijae73n55miuhiu9

 

         1.4.        WEB 확인

1)    root계정 비밀번호 확인

[kevin@ubu22-01 ~/gitlab (kubernetes-admin@cluster.local:gitlab)]$ k get secrets gitlab-gitlab-initial-root-password --template={{.data.password}} | base64 -d
gUkoILCtV9rYmdeZEKtAmDdxoFDilnRkB7g5KRpaEKLiMR7MOpAxIamXsPCT9lci

 

2)    gitlab 페이지 로그인

 

3)    루트 패스워드 변경

 

4)    유저 생성

 

 

5)    관리가 계정에서 승인

 

 

 

생성된 유저 확인

 

 

유저 승인

 

활성화된 유저 확인

 

6)    유저 계정으로 로그인

프로젝트 생성

 

프로젝트 타입 지정

 

빈 프로젝트 생성

 

프로젝트 업로드

 

 

         1.5.        git clone으로 불러오기

# 다운로드 위치 지정
[kevin@ubu22-01 ~/gitlab (kubernetes-admin@cluster.local:gitlab)]$ cd ~

[kevin@ubu22-01 ~ (kubernetes-admin@cluster.local:gitlab)]$
mkdir gitlab-test

[kevin@ubu22-01 ~ (kubernetes-admin@cluster.local:gitlab)]$
cd gitlab-test/


# git설정을 변경
[kevin@ubu22-01 ~/gitlab-test (kubernetes-admin@cluster.local:gitlab)]$
git config --global http.sslVerify false


# 구성한 gitlab에서 다운로드
[kevin@ubu22-01 ~/gitlab-test (kubernetes-admin@cluster.local:gitlab)]$
git clone https://gitlab.myweb.io/kevin/testproject.git
Cloning into 'testproject'...
Username for 'https://gitlab.myweb.io': kevin
Password for 'https://kevin@gitlab.myweb.io':
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.


# 확인
[kevin@ubu22-01 ~/gitlab-test (kubernetes-admin@cluster.local:gitlab)]$
cd testproject/

[kevin@ubu22-01 ~/gitlab-test/testproject (kubernetes-admin@cluster.local:gitlab)]$
ll
total 20
drwxrwxr-x 3 kevin kevin 4096  8월 24 15:05 ./
drwxrwxr-x 3 kevin kevin 4096  8월 24 15:04 ../
drwxrwxr-x 8 kevin kevin 4096  8월 24 15:05 .git/
-rw-rw-r-- 1 kevin kevin 6180  8월 24 15:05 README.md

 

         1.6.        gitlab에 업로드

# 업로드할 디렉토리를 가져온다.
[kevin@ubu22-01 ~/gitlab-test/testproject (kubernetes-admin@cluster.local:gitlab)]$ cp -r ~/gitlab/ .


# 확인
[kevin@ubu22-01 ~/gitlab-test/testproject (kubernetes-admin@cluster.local:gitlab)]$
ll
total 24
drwxrwxr-x 4 kevin kevin 4096  8월 24 15:06 ./
drwxrwxr-x 3 kevin kevin 4096  8월 24 15:04 ../
drwxrwxr-x 8 kevin kevin 4096  8월 24 15:05 .git/
drwxrwxr-x 3 kevin kevin 4096  8월 24 15:06
gitlab/
-rw-rw-r-- 1 kevin kevin 6180  8월 24 15:05 README.md


# 현재 위치의 디렉토리를 올리고 주석을 단다.
[kevin@ubu22-01 ~/gitlab-test/testproject (kubernetes-admin@cluster.local:gitlab)]$ git add . && git commit -m "initial commit - add gitlab helm chart"
warning: adding embedded git repository: gitlab/gitlab/charts/gitlab-zoekt
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <url> gitlab/gitlab/charts/gitlab-zoekt
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached gitlab/gitlab/charts/gitlab-zoekt
hint:
hint: See "git help submodule" for more information.
Author identity unknown

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'kevin@ubu22-01.(none)')
// 이메일 등록이 안되어있음.

 
# 등록 유저와 이메일 git에 등록
[kevin@ubu22-01 ~/gitlab-test/testproject (kubernetes-admin@cluster.local:gitlab)]$
git config --global user.name "kevin"

[kevin@ubu22-01 ~/gitlab-test/testproject (kubernetes-admin@cluster.local:gitlab)]$
git config --global user.email "gemtd03@gmail.com"


# 재시도
[kevin@ubu22-01 ~/gitlab-test/testproject (kubernetes-admin@cluster.local:gitlab)]$
git add . && git commit -m "initial commit - add gitlab helm chart"
[main 86137d6] initial commit - add gitlab helm chart
 701 files changed, 71360 insertions(+)
 create mode 100644 gitlab/gitlab/CHANGELOG.md
 create mode 100644 gitlab/gitlab/CONTRIBUTING.md
 create mode 100644 gitlab/gitlab/Chart.yaml
 create mode 100644 gitlab/gitlab/LICENSE.md
 create mode 100644 gitlab/gitlab/README.md
.
.
.
// 정상동작

 
# gitlab에 올린다.
[kevin@ubu22-01 ~/gitlab-test/testproject (kubernetes-admin@cluster.local:gitlab)]$ git push
Username for 'https://gitlab.myweb.io': kevin
Password for 'https://kevin@gitlab.myweb.io':
Enumerating objects: 757, done.
Counting objects: 100% (757/757), done.
Delta compression using up to 2 threads
Compressing objects: 100% (744/744), done.
Writing objects: 100% (756/756), 682.30 KiB | 4.49 MiB/s, done.
Total 756 (delta 230), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (230/230), done.
To https://gitlab.myweb.io/kevin/testproject.git
   7ec7366..86137d6  main -> main

 

확인