Skip to content

Commit 1cc5ef5

Browse files
majinghe小马哥
andauthored
Docs: add gitlab integration (#54)
Co-authored-by: 小马哥 <xiaomage@xiaomagedeMacBook-Pro.local>
1 parent 1e99325 commit 1cc5ef5

File tree

4 files changed

+84
-5
lines changed

4 files changed

+84
-5
lines changed

docs/zh/integration/gitlab.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
title: "将 RustFS 配置为 GitLab 对象存储后端"
3+
description: "GitLab 默认支持 minio 作为对象存储后端,RustFS 作为 minio 的平替,可以作为 GitLab 的存储后端。"
4+
---
5+
6+
7+
# 关于 GitLab
8+
9+
[GitLab](https://about.gitlab.com) 是全球知名的一体化 DevSecOps 平台,功能涵盖整个软件开发生命周期。由于支持私有化部署,因此在国内外有数千万用户。[GitLab 支持将对象存储作为数据存储后端](https://docs.gitlab.com/administration/object_storage/),其中就包括 MinIO。由于 RustFS 是 MinIO 的完全平替,因此可以将 RustFS 配置为 GitLab 的对象存储后端。
10+
11+
## 前提条件
12+
13+
- 一个可用的 GitLab 实例。可查看[GitLab 官网安装指南](https://about.gitlab.com/install)
14+
- 一个可用的 RustFS 实例。可遵照[RustFS 安装](../installation/index.md)章节进行创建。
15+
- 可用的 RustFS 访问令牌。可遵照[访问令牌管理](../administration/iam/access-token.md)章节进行创建。
16+
17+
## 在 GitLab 中配置 RustFS
18+
19+
### 创建 RustFS 存储桶
20+
21+
可以为 GitLab 的不同功能(支持将数据存储在对象存储中的功能)创建不同的存储桶,比如 `artifacts``ci-secure-files``dependency-proxy``external-diffs``lfs``packages``pages``terraform-state``uploads`。RustFS 存储桶的创建可参考 [RustFS 存储桶管理](../management/bucket/creation.md)章节。
22+
23+
24+
![gitlab bucket creation](./images/gitlab-bucket-creation.png)
25+
26+
27+
### 修改 `gitlab.rb` 配置文件
28+
29+
GitLab 中关于对象存储的配置都在文件 `gitlab.rb`(默认为 `/etc/gitlab/gitlab.rb`)中。以 `packages` 后端配置为例,配置信息如下:
30+
31+
```ruby
32+
gitlab_rails['packages_enabled'] = true # 启动 packages 功能
33+
gitlab_rails['packages_object_store_enabled'] = true # 为 packages 启动对象存储
34+
gitlab_rails['packages_object_store_proxy_download'] = false
35+
gitlab_rails['packages_object_store_remote_directory'] = "packages" # 远端存储对象对应的存储桶
36+
gitlab_rails['packages_object_store_connection'] = {
37+
'provider' => 'AWS', #对象存储 provider,暂时为 AWS
38+
'endpoint' => 'http://example.rustfs.com:9000',
39+
'region' => 'cn-east-1', # rustfs 的 Region 默认为 `cn-east-1`
40+
'aws_access_key_id' => 'aws_access_key_id', # rustfs access key
41+
'aws_secret_access_key' => 'aws_secret_access_key', # rustfs secret key
42+
'path_style' => true,
43+
'enable_signature_v4_streaming' => false,
44+
'host' => 'example.rustfs.com',
45+
}
46+
```
47+
48+
重点包括以下几个参数:
49+
50+
- `packages_object_store_enabled`:是否启用对象存储,`true` 代表启动,`false` 代表禁用。**只有这个参数为 `true`**后面的配置才会生效。
51+
- `packages_object_store_remote_directory`:RustFS 实例上的存储桶名称。
52+
- `packages_object_store_connection`:RustFS 实例的链接信息,主要包括 RustFS 实例地址、访问令牌等。
53+
54+
修改完配置以后,执行 `reconfigure` 命令,让配置生效:
55+
56+
```bash
57+
sudo gitlab-ctl reconfigure
58+
```
59+
60+
> 对于 `artifacts``ci-secure-files``dependency-proxy``external-diffs``lfs``pages``terraform-state``uploads` 的配置都类似,在此不做赘述。切记,修改配置以后要执行 `sudo gitlab-ctl reconfigure` 让配置生效。
61+
62+
### 配置验证
63+
64+
使用 GitLab 相应功能后,数据就会存储到后端配置的 RustFS 存储桶中。以上一步中的 `packages` 为例,上传一个 Docker 容器镜像到 GitLab 项目镜像仓库:
65+
66+
```bash
67+
# 登录 GitLab 内置容器镜像仓库
68+
docker login example.gitlab.com:5050
69+
70+
# 构建容器镜像
71+
docker build -t example.gitlab.com/rustfs/rusts .
72+
73+
# 推送到 GitLab 内置的容器镜像仓库
74+
docker push example.gitlab.com:5050/rustfs/rusts
75+
```
76+
77+
镜像数据就以对象的方式存储到 `packages` 存储桶中。
78+
79+
![gitlab container registry](./images/gitlab-container-registry.png)
110 KB
Loading
125 KB
Loading

docs/zh/sidebar.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -412,13 +412,13 @@ export const sidebar = [
412412
link: '/zh/integration/virtual'
413413
},
414414
{
415-
text: 'Milvus 存储后端配置',
415+
text: 'Milvus 对象存储配置',
416416
link: '/zh/integration/milvus',
417417
},
418-
// {
419-
// text: 'HDFS',
420-
// link: '/zh/integration/hdfs'
421-
// },
418+
{
419+
text: 'GitLab 对象存储配置',
420+
link: '/zh/integration/gitlab'
421+
},
422422
// {
423423
// text: 'restic',
424424
// link: '/zh/integration/restic'

0 commit comments

Comments
 (0)