GitLab

From David's Wiki
\( \newcommand{\P}[]{\unicode{xB6}} \newcommand{\AA}[]{\unicode{x212B}} \newcommand{\empty}[]{\emptyset} \newcommand{\O}[]{\emptyset} \newcommand{\Alpha}[]{Α} \newcommand{\Beta}[]{Β} \newcommand{\Epsilon}[]{Ε} \newcommand{\Iota}[]{Ι} \newcommand{\Kappa}[]{Κ} \newcommand{\Rho}[]{Ρ} \newcommand{\Tau}[]{Τ} \newcommand{\Zeta}[]{Ζ} \newcommand{\Mu}[]{\unicode{x039C}} \newcommand{\Chi}[]{Χ} \newcommand{\Eta}[]{\unicode{x0397}} \newcommand{\Nu}[]{\unicode{x039D}} \newcommand{\Omicron}[]{\unicode{x039F}} \DeclareMathOperator{\sgn}{sgn} \def\oiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x222F}\,}{\unicode{x222F}}{\unicode{x222F}}{\unicode{x222F}}}\,}\nolimits} \def\oiiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x2230}\,}{\unicode{x2230}}{\unicode{x2230}}{\unicode{x2230}}}\,}\nolimits} \)


Kubernetes Administration

Notes on deploying GitLab using their Helm chart.

Setup

To use your own PVs and PVCs,

  • Create your own PVs and PVCs for gitaly, postgres, and redis.
  • Setup a PV for minio.
    • Note that the gitaly PVC should be named repo-data-gitlab-gitaly-0
  • Set the following values:
minio:
  replicas: 2
  persistence:
    volumeName: gitlab-minio
redis:
  persistence:
    existingClaim: gitlab-redis
postgresql:
  persistence:
    existingClaim: gitlab-postgres

Migration from Omnibus Install

See Migrate from the Linux package to the Helm chart

Omnibus Administration

Here are notes on running your own gitlab instance.
Note: I've migrated from the Omnibus install to the helm charts.

Terms

  • unicorn - this is the web server portion of gitlab
  • sidekiq - the background job processor

Basic Commands

sudo gitlab-ctl start
sudo gitlab-ctl stop
sudo gitlab-ctl restart

LFS

LFS Administration

Edit the config in /etc/gitlab/gitlab.rb and set the following:

### Git LFS
gitlab_rails['lfs_enabled'] = true
gitlab_rails['lfs_storage_path'] = "/var/opt/gitlab/gitlab-rails/shared/lfs-objects"
Notes

Email

The easiest way if you have very few users like me is to setup a separate gmail account.
Then use forwardemail.net such that the separate gmail account can send using your domain.
Then fill in the configuration.
See settings:smtp#gmail. Also set:

gitlab_rails['gitlab_email_from'] = '[email protected]'

Container Registry

In /etc/gitlab/gitlab.rb, edit the following:

registry_external_url 'https://registry.gitlab.davidl.me'

### Settings used by GitLab application
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "registry.gitlab.davidl.me"
gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"

registry_nginx['enable'] = false

Then have your reverse proxy to 5000.