Appendix. Install the GitLab on OpenShift
演習の概要
このモジュールでは、 こちらの手順を参考にしながら、 OpenShiftのGitLab Operatorを利用してGitLabをインストールします。
OpenShiftの管理者アカウント( kubeadmin や cluster-admin など)を利用します。
|
cert-manager Operatorのインストール
GitLabを利用するための証明書発行機能を持つ、cert-manager Operatorを利用してGitLabをインストールします。 OpenShift環境にログインして、「ソフトウェアカタログ」から「cert-manager Operator for Red Hat OpenShift」を選択して、 「インストール」ボタンをクリックして、インストールします。インストール時のオプションは、全てデフォルト値を利用します。
これで、cert-manager Operatorのインストールは完了です。
GitLab Operatorのインストール
続いて、GitLab Operatorをインストールします。 cert-manager Operatorの時と同様に、「ソフトウェアカタログ」からCertified版のGitLab Operatorを選択して、 「インストール」ボタンをクリックして、インストールを完了します。インストール時のオプションは、全てデフォルト値を利用します。
これで、GitLab利用に必要となるOperatorのインストールは完了です。
GitLab インスタンスの作成
GitLab Operatorを利用して、GitLabインスタンスを作成します。 「インストール済みのOperator」メニューから「GitLab」を選択して、「インスタンスの作成」をクリックします。
GitLab インスタンスを作成するためのYAMLが表示されます。 これを以下のように修正します。
kind: GitLab
apiVersion: apps.gitlab.com/v1beta1
metadata:
name: gitlab
namespace: gitlab-system
spec:
chart:
values:
prometheus:
install: false
gitlab:
gitlab-shell:
maxReplicas: 1
minReplicas: 1
sidekiq:
maxReplicas: 1
minReplicas: 1
resources:
requests:
cpu: 500m
memory: 1000M
webservice:
maxReplicas: 1
minReplicas: 1
resources:
requests:
cpu: 500m
memory: 1500M
global:
hosts:
domain: <OpenShift環境で利用しているドメインを設定>
hostSuffix: null
ingress:
annotations:
route.openshift.io/termination: edge
kubernetes.io/tls-acme: true
class: none
installCertmanager: false
certmanager-issuer:
email: <証明書発行者のメールアドレスを設定>
minio:
resources:
requests:
cpu: 100m
postgresql:
primary:
extendedConfiguration: max_connections = 200
redis:
resources:
requests:
cpu: 100m
version: 9.7.0
デフォルトで表示されるYAMLからの変更点は次の通りです。
-
検証用途を想定して
maxReplicasを1に設定して、冗長構成を排除 -
OpenShiftでデフォルトで用意されるPrometheusがあるため、
spec.chart.values.prometheus.installをfalseに変更 -
spec.chart.values.global.ingress.annotationsを設定して、OpenShift上でのGitLabサービスを公開するための Routeを利用 (Nginx-ingressは利用しない) -
GitLabサービスを利用するためのドメインを指定。ドメインはOpenShift ConsoleのURLなどを参照(例:
https://console-openshift-console.<ドメイン>/) -
cert-manager による証明書発行者のメールアドレスを指定
上記のYAMLをコピペしたら、「作成」ボタンをクリックしてGitLabインスタンスを作成します。
5~10分ほど待つと、GitLabインスタンスが Running 状態になります。
この状態になると、GitLabのWebコンソールにアクセスできるようになります。
GitLab Runner Operatorのインストール
GitLab CI/CDと連携してパイプラインでジョブを実行するアプリケーションである GitLab RunnerもOperatorでインストールと設定ができます。
前述の手順でGitLab OperatorのインストールとGitLab インスタンスの作成が完了した後に、 「ソフトウェアカタログ」からCertified版のGitLab Runner Operatorを選択して、「インストール」ボタンをクリックして、 インストールを完了します。インストール時のオプションは、全てデフォルト値です。
これで、GitLab Runner利用に必要となるOperatorのインストールは完了です。
GitLab Runner インスタンスの作成
GitLab Runnerを利用するために必要となるインスタンスを作成します。 「インストール済みのOperator」メニューから「GitLab Runner」を選択して、「インスタンスの作成」をクリックします。
GitLab Runnerインスタンスを作成するためのYAMLが表示されます。これを以下のように修正します。
kind: Runner
apiVersion: apps.gitlab.com/v1beta2
metadata:
generateName: gitlab-runner-
namespace: gitlab-system
spec:
gitlabUrl: https://gitlab.<OpenShift環境で利用しているドメインを設定>/
token: gitlab-gitlab-runner-secret
tags: openshift
concurrent: 10
imagePullPolicy: IfNotPresent
デフォルトで表示されるYAMLからの変更点は次の通りです。
-
metadata.generateName: gitlab-runner-を指定 -
GitLab Runnerを利用するGitLabインスタンスのURLを
spec.gitlabUrlで指定 -
前述のGitLabインスタンス作成時に自動作成されたシークレットを
spec.token: gitlab-gitlab-runner-secretで指定 -
OpenShiftによって作成されたリソースであることを示す
spec.tags: openshiftを指定
上記のYAMLをコピペしたら、「作成」ボタンをクリックしてGitLab Runnerインスタンスを作成します。
これによってGitLab Runnerインスタンスが Running 状態になります。この状態になると、
GitLabのWebコンソールからGitLab Runnerのエージェントとして利用できるようになります。
上記YAMLでは metadata.generateName を指定しています。
これにより GitLab Runnerインスタンスに特定の名前を指定することなく、
上記YAMLからGitLab Runnerインスタンスを作成するという前述の手順を繰り返すだけで、
GitLab Runnerのエージェント追加が可能になります。
GitLab の利用
以下の画像の例ではURLがいくつか提示されていますが、
GitLabのWebコンソールにアクセスするには gitlab 文字列を含むURLを利用します。
https://gitlab.<OpenShift環境で利用しているドメイン>/
アクセスすると、GitLabのログイン画面が表示されます。
GitLabインスタンス作成時に自動作成される管理者アカウント root ユーザーでログインします。
root ユーザーのパスワードは、OpenShift Webコンソールの「シークレット」メニューにある、
gitlab-system プロジェクトの gitlab-gitlab-initial-root-password シークレットから確認できます。
「値を表示する」をクリックすると、パスワードを確認できます。
ログインすると、次のような画面が表示されます。 英語になっている場合は、画面右上のユーザーアイコンの「Preferences(設定)」から「Language」を日本語に設定して、 変更保存することで、日本語への表示変更ができます。
GitLabのログイン後の画面に表示される「人を追加」メニューからローカルユーザーアカウントを追加したり、 「プロジェクトを作成」からコードのリポジトリを作成できるようになっています。GitLabでのコード管理については、 公式ガイドの ステップ1とステップ2を最低限実施するといいでしょう。
また、画面右上の「管理者」をクリックして「概要」→「CI/CD」→「Runner」を選択することで、 前述の手順で作成したGitLab Runnerインスタンスが表示されていることを確認できます。 以下の画像は、GitLab Runner Operatorを利用してGitLab Runnerインスタンスを2つ作成した例となります。
他にも様々な公式ガイドがGitLabから提供されているので、参考にしてください。