在openshift上部署Gitlab

1.在OperatorHub搜索GitLab

点击install

Update approval 改为 Manual

2.Create GitLab

yaml 复制代码
kind: GitLab
apiVersion: apps.gitlab.com/v1beta1
metadata:
  name: gitlab
  namespace: gitlab-system
spec:
  chart:
    values:
      certmanager:
        install: false
      global:
        hosts:
          domain: example.com ## 这里替换成自己的
          hostSuffix: null
        ingress:
          configureCertmanager: false
          tls:
            secretName: gitlab-tls
      postgresql:
        primary:
          extendedConfiguration: max_connections = 200
    version: 8.9.1

等待安装完成即可。

3.集成LDAP用户

新增configmap

yaml 复制代码
kind: ConfigMap
apiVersion: v1
metadata:
  name: ldap-config
  namespace: gitlab-system
data:
  set-config: |-
    #!/bin/bash

    set -eo pipefail

    TEMPLATE_DIRECTORY="$1"
    CONFIG_DIRECTORY="${2:-$1}"

    if [ -z "$TEMPLATE_DIRECTORY" ]; then
      echo 'usage: set-config <template_directory> [<config_directory>]'
      exit 1
    fi

    shopt -s nullglob  # Don't enter empty for loops

    if command -v erb &> /dev/null; then
      echo "Begin parsing .erb templates from $TEMPLATE_DIRECTORY"
      for template in ${TEMPLATE_DIRECTORY}/*.erb; do
        output_file="${CONFIG_DIRECTORY}/$(basename $template '.erb')"
        echo "Writing $output_file"
        erb -U -r yaml -r json -r fileutils "$template" > "$output_file"
      done
    fi

    if command -v gomplate &> /dev/null; then
      echo "Begin parsing .tpl templates from $TEMPLATE_DIRECTORY"
      for template in ${TEMPLATE_DIRECTORY}/*.tpl; do
        output_file="${CONFIG_DIRECTORY}/$(basename $template '.tpl')"
        echo "Writing $output_file"
        gomplate --left-delim '{%' --right-delim '%}' --file "${template}" --out "${output_file}"
      done
    fi

    if [ "$CONFIG_DIRECTORY" != "$TEMPLATE_DIRECTORY" ]; then
      echo "Copying other config files found in $TEMPLATE_DIRECTORY to $CONFIG_DIRECTORY"
      for configfile in ${TEMPLATE_DIRECTORY}/*.{yml,yaml,toml,rb,json}; do
        echo "Copying $(basename $configfile) into ${CONFIG_DIRECTORY}"
        cp "$configfile" "$CONFIG_DIRECTORY/"
      done
    fi

    shopt -u nullglob

    config_file="/srv/gitlab/config/gitlab.yml"

    # 使用 sed 删除 ldap 配置中的 'enabled: false' 行
    sed -i '/ldap:/,/^$/ { /enabled: false/ { d } }' "$config_file"

    # 使用 echo 追加新的 ldap 配置
    cat <<EOL >> "$config_file"
      ldap:
        enabled: true
        servers:
          main:
            label: ldap
            host: ldap.example.com
            port: 636
            uid: 'sAMAccountName'
            encryption: 'simple_tls'
            verify_certificates: false
            base: 'xxxx'
            user_filter: ''
            bind_dn: 'xxx'
            admin_group: ''
            password: 'xxx'
    EOL

    echo "LDAP 配置已更新。"

ldap配置根据你的实际情况进行更改。

修改deployment 的yaml,把此ldap-config的set-config挂载到gitlab-webservice-default的/scripts/set-config路径上。

yaml 复制代码
kind: Deployment
apiVersion: apps/v1
metadata:
  name: gitlab-webservice-default
spec:
  template:
    metadata:
    spec:
      volumes:
        - name: ldap-config
          configMap:
            name: ldap-config 
      containers:
        - name: webservice
          volumeMounts:
            - name: ldap-config
              mountPath: /scripts/set-config
              subPath: set-config

这样gitlab就集成了ldap

相关推荐
catoop14 小时前
K8s 通过 Traefik Ingress 配置白名单IP访问限制
kubernetes
catoop16 小时前
K8s 通过 Nginx Ingress 配置白名单IP访问限制
kubernetes
哈里谢顿1 天前
Kubernetes Service动手实验
kubernetes
哈里谢顿1 天前
k8s实用脚本
kubernetes
❥ღ Komo·1 天前
K8s集群搭建全流程详解
云原生·容器·kubernetes
一念一花一世界1 天前
DevOps实战(12) - 使用Arbess+GitLab实现Java项目构建并将制品上传Aliyun OSS
阿里云·ci/cd·gitlab·devops·arbess
努力发光的程序员1 天前
互联网大厂Java面试场景:微服务与云原生架构实践
spring cloud·kubernetes·微服务架构·共享经济·netflix oss·故障容错
新手小白*1 天前
K8S-Pod资源对象
云原生·容器·kubernetes
拾心211 天前
【云运维】K8s管理(二)
运维·容器·kubernetes
小牛马爱写博客1 天前
Kubernetes Service 核心概念与实操指南(分别使用yaml文件和命令行分别创建service版)
云原生·容器·kubernetes