gitlab pipelie 使用 minio 作为 cache 服务器

当gitlab的runner使用kubernetes动态调度的时候,由于不确定pod会调度到哪个节点,所以,使用宿主机目录作为cache是有问题的。这时需要一个cache的服务器。

在k8s中安装minio

用helm 找到 minio的chart包。修改values.yaml中的defaultBucket:

  enabled: true
  ## If enabled, must be a string with length > 0
  name: gitlab
  ## Can be one of none|download|upload|public
  policy: none
  ## Purge if bucket exists already
  purge: false

安装gitlab runner

先用helm下载gitlab runner的chart包,chart包的helm仓库是https://charts.gitlab.io/
解压chart包,然后修改templates/_cache.tpl,添加一个name为CACHE_S3_INSECURE变量:

{{- define "gitlab-runner.cache" }}
{{-   if .Values.runners.cache.cacheType }}
- name: CACHE_TYPE
  value: {{ default "" .Values.runners.cache.cacheType | quote }}
- name: CACHE_PATH
  value: {{ coalesce .Values.runners.cache.cachePath .Values.runners.cache.s3CachePath | default "" | quote }}
{{-     if .Values.runners.cache.cacheShared }}
- name: CACHE_SHARED
  value: "true"
{{-     end }}
{{-     if eq .Values.runners.cache.cacheType "s3" }}
- name: CACHE_S3_SERVER_ADDRESS
  value: {{ template "gitlab-runner.cache.s3ServerAddress" . }}
- name: CACHE_S3_BUCKET_NAME
  value: {{ default "" .Values.runners.cache.s3BucketName | quote }}
- name: CACHE_S3_BUCKET_LOCATION
  value: {{ default "" .Values.runners.cache.s3BucketLocation | quote }}
- name: CACHE_S3_INSECURE
  value: {{ default "false" .Values.runners.cache.Insecure | quote }}
{{-       if .Values.runners.cache.s3CacheInsecure }}
- name: S3_CACHE_INSECURE
  value: "true"
{{-       end }}
{{-     end }}
{{-     if eq .Values.runners.cache.cacheType "gcs" }}
- name: CACHE_GCS_BUCKET_NAME
  value: {{ default "" .Values.runners.cache.gcsBucketName | quote }}
{{-     end }}
{{-   end }}
{{- end -}}

修改values.yamlrunners.cache部分(其他部分按照实际情况修改):

    cacheType: s3
    cachePath: "gitlab_runner"
    cacheShared: true
    # 这个是自己加的,作用是不用https
    Insecure: true
    ## S3 settings
    # minio的地址
    s3ServerAddress: minio.example.com
    # 对应minio的defaultBucket name
    s3BucketName: gitlab
    s3BucketLocation:
    s3CacheInsecure: false
    # helm安装minio后会创建两个secret,用非sa token的这个
    # 也可以用命令创建kubectl create secret generic s3access --from-literal=accesskey="YourAccessKey" --from-literal=secretkey="YourSecretKey"
    # 这两个key的值都在minio的values中,网页上登陆minio也是通过这两个值
    secretName: littering-aardvark-minio

总结

需要注意的有两点:

  1. minio需要创建Bucket,gitlab runner才可用,在本文中,helm安装的同时创建了一个默认的bucket
  2. gitlab runner安装的时候需要配置INSECURE,gitlab 官方提供的chart包没有这个配置项,需要自己加上,作用是不使用https
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值