統合開発ツールチェイン環境GitLab CE 10.5が2018年2月22日にリリースされました
GitLab Core Teamの @tnir です。日本語圏でのマーケティングも注力しています。
GitLabには、大きく分けてCommunity Edition (CE) とEnterprise Edition (EE) とありますが、本記事はCEにフォーカスしています。
私自身もGitLab CE 10.5においてCEに11件のMRを入れていますが、バグフィックスが6件だったので、リリースノートには掲載されませんでした。GitLabはまだまだUI/UXが不十分なため、ご興味のある方はぜひご参加ください。3/10には大阪でGitLabの開発に関するイベントが開催されます。
GitLabネイティブLet's Encrypt対応 (Instant SSL with Let's Encrypt for GitLab)
これまでもGitLabではSSL/TLS (HTTPS)サポートがされていましたが、多数の手順を踏む必要がありました。本リリースではLet's EncryptがGitLabパッケージに組み込まれたため、誰でもSSL/TLS (HTTPS) 対応したGitLabシステムを構築することが簡単になりました。
TLSを有効化せずに使っていた組織は少ないと思いますので、これは管理者向けの機能と言えます。
gitlab.rb
に letsencrypt['enable'] = true
を付与すればいいだけです。
本バージョンではGitLab本体のみの対応で、Registry、Pages、Mattermostの対応は来月以降の対応となることが発表されています。
これに関して、Let's Encryptのインテグレーションについて興味があるという相談を受けました。GitLabではChefで構成していますので、このLet's EncryptインテグレーションもChefでの実装となります。Chefを構成ツールとして利用している場合は参考にできると思います。そうでない場合、Let's Encryptのために新規でChefを構成ツールとして入れるのはあまりオススメではありません。
関連ドキュメント
Git LFS 2ファイルロックサポート (Git LFS 2 locking support)
2017年3月に、GitHubが開発しているGit LFSの2.0.0がリリースされ、ファイルロックをサポートするようになりました。
また、GitLabで利用しているGit LFSが2.0にアップデートされたため、ファイルロックをサポートするようになりました。
GitHub.comなどで利用するときと同様に、Git LFSクライアントでLFSファイルのロックが使えるようになります。
Web UIではロック済みファイルにロックアイコンが表示されるため、ロック状況も確認ができます。
関連ドキュメント
CIシークレット変数のインライン更新 (Dynamic management of secret variables)
これまでのUIでは1変数ずつ編集画面がありましたが、まとめて追加・編集・可視化できるようになりました。
GitHubやその他のDeveloper向けSaaSのWeb UIでは当たり前に実現されていることがGitLabのCI/CDシークレット変数管理機能でも実現できるようになりました。
関連ドキュメント
永続的なpublicプロジェクトのデプロイ (Persistent public projects deployments)
GitLab 10.0で導入されたAuto DevOps (Beta)ではKubernetesクラスタに全自動でアプリケーションをデプロイできるようになりました。しかし、Podsを移動したりソースイメージがキャッシュに見つからなかった場合にデプロイが止まってしまう問題もありました。
GitLab 10.5では、publicプロジェクトでデプロイパイプラインが終わっても、クラスタからGitLab Container Registryにアクセスできるようになり、より安定したデプロイができるようになりました。
関連ドキュメント
Auto DevOps用インスタンスレベルドメイン (Instance level domain for Auto DevOps)
https://gitlab.com/gitlab-org/gitlab-ce/issues/38175
Auto DevOpsではKubernetesクラスタへアプリケーションのデプロイが自動化できますが、KubernetesクラスタのパブリックIPアドレスに紐付いたドメイン名を指定する必要がありました。
GitLab 10.5では、インスタンスレベルでドメインを指定できるようになり、プロジェクト側でオーバーライドしない限り、共通のドメインのKubernetesクラスタが自動で利用されることになりました。
関連ドキュメント
グループの移動 (Transfer groups)
グループやサブグループを再構成しやすくするため、グループ全体を別のグループに移動できるようになりました。
関連ドキュメント
シームレスなKubernetes上のPrometheus連携 (Seamless Prometheus integration on Kubernetes)
GitLab 10.4では1クリックで連携済みKubernetesクラスタをPrometheusにデプロイする機能を追加しました。今回の10.5ではさらに全自動でPrometheus連携をするような拡張をしています。
GitLabではKubernetes APIを使って、デプロイされたPrometheusサーバにクエリしています。
関連ドキュメント
デプロイされたIngressに対してPrometheusメトリックを設定 (Deployed Ingresses now configured for Prometheus metrics)
デプロイされたIngressに対して、Prometheusのメトリックが設定できるようになりました。これにより、簡単にレイテンシ、スループット、エラーレートなどのアプリケーションメトリックが取れるようになります。
関連ドキュメント
グローバル検索API (Global Search API)
グローバル検索APIがGitLab APIに追加されました。GitLabのWeb UIで使えていたものをAPI化したものです。このAPIにより、他システムとの連携、カスタムワークフローなどがしやすくなると思います。
関連ドキュメント
ラベルリストページの再デザイン (Labels list page redesign)
ラベルリストページのデザインを整理して、ラベルの閲覧と管理をしやすくなりました。アイコンも新しいアイコンデザインに刷新されています。ラベルからIssuesリスト、Merge Reuqestsリストへのリンクも整理されて、UXが改善したはずです。
関連ドキュメント
全サブグループのIssues/Merge Requests一覧 (View all issues of all subgroups on group issues page)
グループの全サブグループのIssues/Merge Requestsの一覧を横断して見れるようになりました。これにより、ネストされたサブグループを作っても、簡単にIssuesやMerge Requestsの一覧を見れるようになっています。
microservices化を進めているプロジェクトや階層化が細かい組織などで特に役立ちそうです。
関連ドキュメント
コミットページからMRへのナビゲーション (Navigate to related merge requests from commit page)
あるコミットページからMRへのリンクが追加されるようになりました。
関連ドキュメント
Markdown中のカラーチップ (Color chips in GitLab Flavored Markdown)
GitLab Flavored Markdown (GFM) でカラーチップ(color chips)に対応しました。
関連ドキュメント
国際化の改善 (Improved internationalization)
GitLabの国際化が強化されています。Issue/Merge Requestの一覧/詳細、レポジトリチャート、レポジトリグラフの文字列を外出ししたので、ローカリゼーション(翻訳)ができるようになったとのことです。
GitLabの日本語翻訳はGitLab.JP Slackでやっていますので、お気軽にご参加ください。
関連ドキュメント
git pushによるプロジェクト作成 (Push to create a project)
git push
によってプロジェクト作成ができるようになったらしいです。試していませんが、すごいなと思います。
関連ドキュメント
Hashedストレージがベータに (Hashed storage is now Beta)
HashedストレージはGitLab 10.0で導入されたストレージ方式です。プロジェクトURLとGitLabローカルのディレクトリ構造を揃えるのでなく、プロジェクトIDベースのハッシュをGitLabローカルディスクに保存する仕組みになっています。
これにより、グループ、ユーザ、プロジェクトのリネームが高速化しています。
関連ドキュメント
omnibusパッケージの改善 (Omnibus improvements)
- GitLab Mattermost 4.6: チャンネル表示高速化とリハビリテーション法第508条対応
- Chefの12.21.31へのアップデート
- Chef Omnibusの5.6.3へのアップデート
- SELinux ルールで高速SSH key探索の追加
関連ドキュメント
パフォーマンス改善 (Performance improvements)
GitLab 10.5での有用なパフォーマンス改善の一部は以下です:
- グローバル検索の結果を1,000件までに抑えて、データベースタイムアウトを防止
- 非常に長い行を含むコード検索結果がタイムアウトエラーになる不具合を修正
- Merge Requestウィジェットの更新高速化
- コミットAPIからコミット状態を外して、レスポンスを高速化するオプションの追加
関連ドキュメント
GitLab Runner 10.5
GitLab Runner 10.5も同時リリースされています。以下の修正がされています。
その他の修正はGitLab RunnerのCHANGELOGを見てください。
Depration: The gitlab
Helm chart
2018年3月22日にgitlab
Helm chartが廃止されます。2018年2月現在、Kubernetesへのデプロイはgitlab-omnibus
Helm chartを使うことが推奨されています。
さらに新しいcloud native GitLab chartは現在開発中です。2018年中にはgitlab-omnibus Helm chartはこちらのcloud native GitLab chartにリプレースされる見込みです。
ライセンス
- カバーイメージ: Unsplash free license
- その他: CC BY-SA 4.0