GitLab 的 feature flag 設定


最近 Heresy 還是繼續在玩 GitLab CI/CD 的應用。

之前 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 應該也是透過同樣的方法來調整。
由於這個問題之前就找過了,所以這邊還是紀錄一下、預防萬一吧~

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.