GitLab CE 10.5リリースノート

統合開発ツールチェイン環境GitLab CE [10.5が2018年2月22日にリリース](https://about.gitlab.com/2018/02/22/gitlab-10-5-released/)されました :tada: 

[GitLab Core Team](https://about.gitlab.com/core-team/)の @tnir です。[日本語圏でのマーケティングも注力](https://gitlab-jp.connpass.com/)しています。

![](https://about.gitlab.com/images/tweets/gitlab-10-5-released.png)

GitLabには、大きく分けてCommunity Edition (CE) とEnterprise Edition (EE) とありますが、本記事はCEにフォーカスしています。

私自身もGitLab CE 10.5において[CEに11件](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests?state=merged&author_username=tnir&milestone_title=10.5)のMRを入れていますが、バグフィックスが6件だったので、リリースノートには掲載されませんでした。GitLabはまだまだUI/UXが不十分なため、ご興味のある方はぜひご参加ください。[3/10には大阪でGitLabの開発に関するイベントが開催](https://oss-gate.doorkeeper.jp/events/69160)されます。

## GitLabネイティブLet's Encrypt対応 (Instant SSL with Let's Encrypt for GitLab)

![](https://about.gitlab.com//images/10_5/lets_encrypt.png)

これまでもGitLabではSSL/TLS (HTTPS)サポートがされていましたが、多数の手順を踏む必要がありました。本リリースではLet's EncryptがGitLabパッケージに組み込まれたため、誰でもSSL/TLS (HTTPS) 対応したGitLabシステムを構築することが簡単になりました。

TLSを有効化せずに使っていた組織は少ないと思いますので、これは管理者向けの機能と言えます。

`gitlab.rb` に `letsencrypt['enable'] = true` を付与すればいいだけです。

本バージョンではGitLab本体のみの対応で、[Registry](https://docs.gitlab.com/ee/user/project/container_registry.html)、[Pages](https://docs.gitlab.com/ee/user/project/pages/)、[Mattermost](https://docs.gitlab.com/omnibus/gitlab-mattermost/)の対応は[来月以降の対応となる](https://gitlab.com/gitlab-org/build/team-tasks/issues/96)ことが発表されています。

これに関して、Let's Encryptのインテグレーションについて興味があるという相談を受けました。GitLabではChefで構成していますので、このLet's EncryptインテグレーションもChefでの実装となります。Chefを構成ツールとして利用している場合は参考にできると思います。そうでない場合、Let's Encryptのために新規でChefを構成ツールとして入れるのはあまりオススメではありません。

**関連ドキュメント**

- [Learn more about Let's Encrypt integration](https://docs.gitlab.com/omnibus/settings/ssl.html#let-39-s-encrypt-integration)

## Git LFS 2ファイルロックサポート (Git LFS 2 locking support)

![](https://about.gitlab.com//images/10_5/git_lfs_lock.png)

[gitlab-org/gitlab-ce#35856](https://gitlab.com/gitlab-org/gitlab-ce/issues/35856)

2017年3月に、GitHubが開発しているGit LFSの[2.0.0](https://github.com/blog/2328-git-lfs-2-0-0-released)がリリースされ、ファイルロックをサポートするようになりました。
また、GitLabで利用しているGit LFSが2.0にアップデートされたため、ファイルロックをサポートするようになりました。
GitHub.comなどで利用するときと同様に、Git LFSクライアントでLFSファイルのロックが使えるようになります。

Web UIではロック済みファイルにロックアイコンが表示されるため、ロック状況も確認ができます。

**関連ドキュメント**

- [Learn more on how to use Git LFS](https://docs.gitlab.com/ee/workflow/lfs/manage_large_binaries_with_git_lfs.html)

## CIシークレット変数のインライン更新 (Dynamic management of secret variables)

![](https://about.gitlab.com//images/10_5/secret-variables.png)

[gitlab-org/gitlab-ce#39118](https://gitlab.com/gitlab-org/gitlab-ce/issues/39118)

これまでのUIでは1変数ずつ編集画面がありましたが、まとめて追加・編集・可視化できるようになりました。

GitHubやその他のDeveloper向けSaaSのWeb UIでは当たり前に実現されていることがGitLabのCI/CDシークレット変数管理機能でも実現できるようになりました。

**関連ドキュメント**

- [Read through the documentation for secret variables](https://docs.gitlab.com/ee/ci/variables/#secret-variables)

## 永続的なpublicプロジェクトのデプロイ (Persistent public projects deployments)

[gitlab-org/gitlab-ce#40428](https://gitlab.com/gitlab-org/gitlab-ce/issues/40428)

GitLab 10.0で導入されたAuto DevOps (Beta)ではKubernetesクラスタに全自動でアプリケーションをデプロイできるようになりました。しかし、Podsを移動したりソースイメージがキャッシュに見つからなかった場合にデプロイが止まってしまう問題もありました。

GitLab 10.5では、publicプロジェクトでデプロイパイプラインが終わっても、クラスタからGitLab Container Registryにアクセスできるようになり、より安定したデプロイができるようになりました。

**関連ドキュメント**

- [Read more about Auto DevOps (Beta)](https://docs.gitlab.com/ee/topics/autodevops/)

## Auto DevOps用インスタンスレベルドメイン (Instance level domain for Auto DevOps)

[https://gitlab.com/gitlab-org/gitlab-ce/issues/38175](gitlab-org/gitlab-ce#38175)

Auto DevOpsではKubernetesクラスタへアプリケーションのデプロイが自動化できますが、KubernetesクラスタのパブリックIPアドレスに紐付いたドメイン名を指定する必要がありました。

GitLab 10.5では、インスタンスレベルでドメインを指定できるようになり、プロジェクト側でオーバーライドしない限り、共通のドメインのKubernetesクラスタが自動で利用されることになりました。

**関連ドキュメント**

- [Read through the documentation on Auto DevOps base domain](https://docs.gitlab.com/ee/topics/autodevops/index.html#auto-devops-base-domain)

## グループの移動 (Transfer groups)

![](https://about.gitlab.com//images/10_5/transfer_group.png)

[gitlab-org/gitlab-ce#31885](https://gitlab.com/gitlab-org/gitlab-ce/issues/31885)

グループやサブグループを再構成しやすくするため、グループ全体を別のグループに移動できるようになりました。

**関連ドキュメント**

- [Read through the documentation on Groups](https://docs.gitlab.com/ee/user/group/index.html#transfer-groups-to-another-group)

## シームレスなKubernetes上のPrometheus連携 (Seamless Prometheus integration on Kubernetes)

[gitlab-org/gitlab-ce#28916](https://gitlab.com/gitlab-org/gitlab-ce/issues/28916)

GitLab 10.4では1クリックで[連携済みKubernetesクラスタをPrometheusにデプロイ](https://docs.gitlab.com/ce/user/project/clusters/index.html#installing-applications)する機能を追加しました。今回の10.5ではさらに全自動でPrometheus連携をするような拡張をしています。

GitLabではKubernetes APIを使って、デプロイされたPrometheusサーバにクエリしています。

**関連ドキュメント**

- [Learn more about monitoring applications with Prometheus](https://docs.gitlab.com/ee/user/project/integrations/prometheus.html)

## デプロイされたIngressに対してPrometheusメトリックを設定 (Deployed Ingresses now configured for Prometheus metrics)

[gitlab-org/gitlab-ce#28916](https://gitlab.com/gitlab-org/gitlab-ce/issues/28916)

[デプロイされたIngress](https://docs.gitlab.com/ee/user/project/clusters/index.html#installing-applications)に対して、Prometheusのメトリックが設定できるようになりました。これにより、簡単にレイテンシ、スループット、エラーレートなどのアプリケーションメトリックが取れるようになります。

**関連ドキュメント**

- [Learn more about deploying Ingress on Kubernetes](https://docs.gitlab.com/ee/user/project/clusters/index.html#installing-applications)

## グローバル検索API (Global Search API)

[gitlab-org/gitlab-ce#41763](https://gitlab.com/gitlab-org/gitlab-ce/issues/41763)

グローバル検索APIがGitLab APIに追加されました。GitLabのWeb UIで使えていたものをAPI化したものです。このAPIにより、他システムとの連携、カスタムワークフローなどがしやすくなると思います。

**関連ドキュメント**

- [Read through the documentation on Global Search API](https://docs.gitlab.com/ee/api/search.html)

## ラベルリストページの再デザイン (Labels list page redesign)

![](https://about.gitlab.com//images/10_5/label-list-redesign.png)

[gitlab-org/gitlab-ce#39550](https://gitlab.com/gitlab-org/gitlab-ce/issues/39550)

ラベルリストページのデザインを整理して、ラベルの閲覧と管理をしやすくなりました。アイコンも新しいアイコンデザインに刷新されています。ラベルからIssuesリスト、Merge Reuqestsリストへのリンクも整理されて、UXが改善したはずです。

**関連ドキュメント**

- [Read through the documentation on Issues](https://docs.gitlab.com/ce/user/project/labels.html)

## 全サブグループのIssues/Merge Requests一覧 (View all issues of all subgroups on group issues page)

![](https://about.gitlab.com//images/10_5/issues-subgroups.png)

[gitlab-org/gitlab-ce#30106](https://gitlab.com/gitlab-org/gitlab-ce/issues/30106)

グループの全サブグループのIssues/Merge Requestsの一覧を横断して見れるようになりました。これにより、ネストされたサブグループを作っても、簡単にIssuesやMerge Requestsの一覧を見れるようになっています。

microservices化を進めているプロジェクトや階層化が細かい組織などで特に役立ちそうです。

**関連ドキュメント**

- [Read through the documentation on Issues](https://docs.gitlab.com/ce/user/project/issues/)

## コミットページからMRへのナビゲーション (Navigate to related merge requests from commit page)

![](https://about.gitlab.com//images/10_5/commit-mr.png)

[gitlab-org/gitlab-ce#2383](https://gitlab.com/gitlab-org/gitlab-ce/issues/2383)

あるコミットページからMRへのリンクが追加されるようになりました。

**関連ドキュメント**

- [Read through the documentation on Related Merge Requests in Commit](https://docs.gitlab.com/ce/user/project/merge_requests/#find-the-merge-request-that-introduced-a-change)

## Markdown中のカラーチップ (Color chips in GitLab Flavored Markdown)

![](https://about.gitlab.com//images/10_5/gfm-colors.png)

[gitlab-org/gitlab-ce#24167](https://gitlab.com/gitlab-org/gitlab-ce/issues/24167)

GitLab Flavored Markdown (GFM) でカラーチップ（color chips）に対応しました。

**関連ドキュメント**

- [Read through the documentation on GitLab Flavored Markdown](https://docs.gitlab.com/ce/user/markdown.html)

## 国際化の改善 (Improved internationalization)

[gitlab-org/gitlab-ce#4012](https://gitlab.com/gitlab-org/gitlab-ce/issues/4012)

GitLabの国際化が強化されています。Issue/Merge Requestの一覧/詳細、レポジトリチャート、レポジトリグラフの文字列を外出ししたので、ローカリゼーション(翻訳)ができるようになったとのことです。

GitLabの日本語翻訳は[GitLab.JP Slack](https://gitlab-jp.herokuapp.com/)でやっていますので、お気軽にご参加ください。

**関連ドキュメント**

- [Read through the documentation on translating GitLab](https://docs.gitlab.com/ee/development/i18n/index.html)

## git pushによるプロジェクト作成 (Push to create a project)

[gitlab-org/gitlab-ce#26388](https://gitlab.com/gitlab-org/gitlab-ce/issues/26388)

`git push` によってプロジェクト作成ができるようになったらしいです。試していませんが、すごいなと思います。

**関連ドキュメント**

- [Learn more on how to create projects](https://docs.gitlab.com/ee/gitlab-basics/create-project.html#push-to-create-a-new-project)

## Hashedストレージがベータに (Hashed storage is now Beta)

[gitlab-org&21](https://gitlab.com/groups/gitlab-org/-/epics/21)

HashedストレージはGitLab 10.0で導入されたストレージ方式です。プロジェクトURLとGitLabローカルのディレクトリ構造を揃えるのでなく、プロジェクトIDベースのハッシュをGitLabローカルディスクに保存する仕組みになっています。

これにより、グループ、ユーザ、プロジェクトのリネームが高速化しています。

**関連ドキュメント**

- [Read through the documentation on Hashed Storage](https://docs.gitlab.com/ee/administration/repository_storage_types.html#hashed-storage)

## omnibusパッケージの改善 (Omnibus improvements)

- GitLab [Mattermost 4.6](https://about.mattermost.com/releases/mattermost-4-6/): チャンネル表示高速化とリハビリテーション法第508条対応
- Chefの12.21.31へのアップデート
- Chef Omnibusの5.6.3へのアップデート
- SELinux ルールで[高速SSH key探索](https://docs.gitlab.com/ee/administration/operations/fast_ssh_key_lookup.html)の追加


**関連ドキュメント**

- [Read through the documentation on Omnibus GitLab](https://docs.gitlab.com/omnibus/README.html)

## パフォーマンス改善 (Performance improvements)

[gitlab-org/gitlab-ce#12345](https://gitlab.com/gitlab-org/gitlab-ce/issues/12345)

GitLab 10.5での有用なパフォーマンス改善の一部は以下です:

- [グローバル検索の結果を1,000件までに抑えて、データベースタイムアウトを防止](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/16502)
- [非常に長い行を含むコード検索結果がタイムアウトエラーになる不具合を修正](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/16462)
- [Merge Requestウィジェットの更新高速化](https://gitlab.com/gitlab-org/gitlab-ce/issues/36876)
- [コミットAPIからコミット状態を外して、レスポンスを高速化するオプションの追加](https://gitlab.com/gitlab-org/gitlab-ce/issues/41681)

**関連ドキュメント**

- [See all the performance improvements in GitLab 10.5](https://gitlab.com/groups/gitlab-org/-/merge_requests?scope=all&utf8=%E2%9C%93&state=merged&label_name%5B%5D=performance&milestone_title=10.5)

## GitLab Runner 10.5

GitLab Runner 10.5も同時リリースされています。以下の修正がされています。

- [Git 1.7.1互換性の修正](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/791)
- [TLS接続評価時にOSの証明書を常にロードする](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/804)
- [gitlab-runner registerした際に /cache が既に有効化されていれば、追加しない](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/807)

その他の修正は[GitLab RunnerのCHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/v10.5.0/CHANGELOG.md)を見てください。

## Depration: The <code>gitlab</code> Helm chart

2018年3月22日に[`gitlab` Helm chart](https://docs.gitlab.com/ee/install/kubernetes/gitlab_chart.html)が廃止されます。2018年2月現在、Kubernetesへのデプロイは[`gitlab-omnibus` Helm chart](https://docs.gitlab.com/ee/install/kubernetes/gitlab_omnibus.html)を使うことが推奨されています。

さらに新しい[cloud native GitLab chart](https://docs.gitlab.com/ee/install/kubernetes/#cloud-native-gitlab-chart)は現在開発中です。2018年中にはgitlab-omnibus Helm chartはこちらのcloud native GitLab chartにリプレースされる見込みです。

---

#### ライセンス

- [カバーイメージ](https://unsplash.com/photos/r53rNKb_7s8): [Unsplash free license](https://unsplash.com/license)
- [その他](https://about.gitlab.com/2018/02/22/gitlab-10-5-released/): [![](https://about.gitlab.com/images/by-sa.svg)](https://creativecommons.org/licenses/by-sa/4.0/) CC BY-SA 4.0