GitLab 的 feature flag 設定

| | 0 Comments| 10:32
Categories:

之前 GitLab 推出了 DAG 的功能,透過 needs 這個標籤,可以多線同時進行工作,在某些場合算是相當方便的~

不過後來因為 Heresy 試著把工作拆分到很細,所以就採到他的一個問題,那就是 needs 的數量上限了。

在官方文件(連結)中也有提到,目前有針對 needs 中指定的工作數量做限制。下面是原文:

We are temporarily limiting the maximum number of jobs that a single job can need in the needs: array:

  • For GitLab.com, the limit is five. For more information, see our infrastructure issue.
  • For self-managed instances, the limit is:
    • Five by default (ci_dag_limit_needs feature flag is enabled).
    • 50 if the ci_dag_limit_needs feature flag is disabled.

基本上,由於 DAG 的功能似乎會有一些效能上的風險,所以官方是暫時把數量上限設定為 5。

而對於像 Heresy 這種自行架設的人來說,則可以透過 ci_dag_limit_needs 這個 feature flag 來做控制;在開啟的狀況下(預設是開啟)就是 5 個,關閉的話則會變成 50 個。

但是,Heresy 看了老半天,完全找不到要如何設定 feature flag 啊!

在官方「Feature Flags」文件(連結)中所描述的介面基本上似乎並不存在(至少 Heresy 這邊沒有…);而在「Feature flag controls」(連結)中的 chatops 也不知道怎麼用…

這個問題印象中之前要使用其他功能的時候也有碰過,不過後來是放棄了。
而這次,稍微認真研究一下後,終於找到設定方法了。

根據官方的《`needs` documentation is wrong》的這個 issue(連結),理論上 feature flag 應該是可以透過「gitlab-rails console」來控制的。

而怎麼進入 gitlab-rails console 呢?以 Heresy 是以 Docker 來架設 GitLab 來說,則是可以透過

docker exec -it gitlab gitlab-rails console

這個指令來進入。其中,黃字的部分是 GitLab 的容器名稱。

他的初始化感覺有點慢,要等好一段時間才會有反應。完成後,介面會如下:

然後,再輸入

Feature.disable(:ci_dag_limit_needs)

就可以了~

為了保險起見,Heresy 還是有重啟一次 GitLab 的 Docker 容器,看起來應該是沒問題的。


而理論上,其他的 feature flag 應該也是透過同樣的方法來調整。
由於這個問題之前就找過了,所以這邊還是紀錄一下、預防萬一吧~

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *