OpenShift 4 - 在 OpenShift 上安装 GitLab(附视频)

89 篇文章 3 订阅
6 篇文章 0 订阅

OpenShift / RHEL / DevSecOps 汇总目录
说明:本文已经在 OpenShift 4.15 环境中验证。

GitLab

GitLab 是一个完整的开源 DevOps 平台,作为一个单一的应用程序交付,从根本上改变了开发、安全和运营团队协作和构建软件的方式。GitLab 帮助团队将 DevOps 周期时间从几周缩短到几分钟,降低开发流程成本,缩短上市时间,同时提高开发人员的生产力。

在 OpenShift OperatorHub 中提供了 GitLab Operator,它提供以下功能:

  • 管理 OpenShift 容器平台中的 GitLab 实例的整个生命周期。
  • 简化 GitLab 实例的安装和配置。
  • 提供版本之间的无缝升级。
  • 设置自动缩放功能。

安装 GitLab 环境

安装 cert-manager Operator

安装 GitLab 前需要先在 OpenShift 中使用缺省配置安装 cert-manager Operator for Red Hat OpenShift。
在这里插入图片描述

用 Operator 安装 GitLab

  1. 使用默认配置安装 GitLab Operator,GitLab Operator 将安装在 gitlab-system 命名空间中。
    在这里插入图片描述
    注意:在国内安装时,可能因为无法直接访问以下 gcr.io 的容器镜像而不能完成安装。
gcr.io/kubebuilder/kube-rbac-proxy:v0.5.0

此时可以进入已安装的 GitLab Operator 的 YAML 栏,将以上的镜像替换为以下镜像地址。

quay.io/coreos/kube-rbac-proxy:v0.5.0

在这里插入图片描述

最后确认名为 gitlab-controller-manager 的 Deployment 能够成功部署并运行 Pod。注意:在这期间使用了 Deployment 的 “暂停推出部署” 功能才让 Deployment 使用更新后的 Operator 配置,另外还需要修改下图中名为 gitlab-controller-manager 的部署的 YAML,同样像上面那样将其中的 gcr.io 镜像改为 quay.io 镜像。
在这里插入图片描述

  1. 执行以下命令,在安装好的 GitLab Operator 中使用以下配置创建 GitLab 实例。注意:需使用自己 OpenShift 集群的子域名设置以下 YAML 的 “spec.chart.values.global.hosts.domin”。
$ SUB_DOMAIN=$(oc get ingresscontroller default -n openshift-ingress-operator -o jsonpath={.status.domain}) 
$ oc apply -f - << EOF
apiVersion: apps.gitlab.com/v1beta1
kind: GitLab
metadata:
  name: gitlab
  namespace: gitlab-system
spec:
  chart:
    values:
      certmanager:
        install: false
      global:
        hosts:
          domain: ${SUB_DOMAIN}
          hostSuffix: null
        ingress:
          configureCertmanager: false
          tls:
            secretName: null
          class: none
          annotations:
            route.openshift.io/termination: "edge"
      nginx-ingress:
        enabled: false
    version: 8.1.1
EOF
  1. 在 GitLab 实例部署好后,可以在 “开发者” 视图中的 “拓扑” 页面中看到以下部署的资源。注:gitlab-prometheus-server 部署提示有权限问题,可暂时忽略。
    在这里插入图片描述

访问 GitLab 控制台

  1. 由于 GitLab Opeartor 默认创建的 GitLab 控制台访问入口是 Ingress 类型,因此还需要运行以下命令创建 Route 对象。
$ oc create route edge gitlab --service=gitlab-webservice-default --port=http-workhorse -n gitlab-system
$ oc get route gitlab -n gitlab-system -o jsonpath=https://'{.spec.host}'; echo
  1. 获取 root 用户的缺省密码,然后用其登录以上名为 gitlab 的 route 地址。
$ oc get secret gitlab-gitlab-initial-root-password -o jsonpath="{.data.password}" -n gitlab-system | base64 --decode; echo

在这里插入图片描述

  1. 登录后可看到 GitLab 缺省页面,然后关闭黄色的提示部分即可。
    在这里插入图片描述

  2. 可进入 “User Settings” 中的 “Preferences” 页面,调整 “Localization” 的 “Language”,最后 “Save changes” 后刷新页面即可。
    在这里插入图片描述

访问 Minio 控制台

  1. 获取登录 Minio 控制台的 accesskey 和 secretkey。
oc get secret gitlab-minio-secret -o jsonpath="{.data.accesskey}" -n gitlab-system | base64 --decode; echo
oc get secret gitlab-minio-secret -o jsonpath="{.data.secretkey}" -n gitlab-system | base64 --decode; echo
  1. 创建访问 Minio 控制台的 Route,然后用浏览器访问 Route 地址,并用上一步的 accesskey 和 secretkey 登录 Minio 控制台。
oc create route edge gitlab-minio --service=gitlab-minio-svc -n gitlab-system
oc get route gitlab-minio -n gitlab-system -o jsonpath=https://'{.spec.host}'; echo

在这里插入图片描述

演示视频

视频

参考

https://www.youtube.com/watch?v=nJDCUfbEmVI&ab_channel=GitLabUnfiltered
https://docs.gitlab.com/operator/openshift_ingress.html
https://gitlab.com/gitlab-org/cloud-native/gitlab-operator/-/blob/master/doc/openshift_ingress.md
https://qiita.com/JPishikawa/items/be67b02d815504a9423b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值