CircleCI Server v3.x の新機能

CircleCI Server 3.x の一般公開が開始されました。 この最新バージョンの CircleCI Server では、ワークロードの増大に合わせてお客様専用の Kubernetes クラスタと社内ネットワーク内でスケーリングを行えるようになりました。 クラウド版 CircleCI のすべての機能はそのままご利用いただけます。

CircleCI Server 3.x では、CircleCI Orb、ワークフローのスケジュール実行、マトリックス ジョブをはじめ、CircleCI の最新機能をご利用いただけます。 既存の CircleCI Server 2.19 から 3.x への移行をご希望のお客様は、担当のカスタマー サクセス マネージャーにお問い合わせください。 CircleCI Server 3.x では、月次パッチ リリースと四半期ごとの機能リリースを予定しています。

リリース 3.2.0

アップグレードに関する注意事項

KOTS 管理者コンソール ダッシュボードのメニューバーで [Version History (バージョン履歴)] を選択し、CircleCI Server v3.2.0 の [Deploy (デプロイ)] をクリックします。

サーバー 3.1.x から 3.2 へのアップグレード時には、PostgreSQL ポッドの変更のためにダウンタイムが発生します。 このアップデートにより 2つの問題が発生する可能性があり、ここではその問題について説明します。

PostgreSQL ポッドが `[Pending(保留)]`のまま

アップグレード後に PostgreSQL ポッドが [Pending(保留)] 状態のままである場合、ポッドを以下の手順で 0 にスケールダウンしてから、再度スケールアップしてください。

以下により、PostgreSQL ポッドが `[Pending(保留)]`状態かどうかを確認することができます。

$ kubectl get pod -l app.kubernetes.io/name=postgresql
NAME           READY   STATUS    RESTARTS   AGE
postgresql-0   1/1     Pending   0          3m

以下のコマンドにより、データを損失することなくポッドを 0 にスケールダウンし、アプリケーションポッドを終了することができます。

kubectl scale deployment -l layer=application --replicas 0

すべてのアプリケーション層のポッドが終了したら、以下の*いずれか*を実行します。

  • KOTS 管理者コンソールからアップデートを再デプロイする*か*、

  • または、以下の 2 つのコマンドを実行して、ポッドを再デプロイし、サーバーを機能的な状態に戻します。

    kubectl scale deployment -l layer=application --replicas 1

    その後、次のコマンドで output-processor をスケールアップします。

    kubectl scale deployment output-processor --replicas 2

Traefikのポッドが指定通りに実行されない

アップグレード後に Traefik ポッドが 2 つあることに気付いた場合、新しいポッドが指定通りに実行されるように、古いポッドを見つけて削除する必要があります。

以下により、Traefik ポッドの状態を確認することができます。

$ kubectl get pod -l app=traefik
NAME                                      READY   STATUS    RESTARTS   AGE
circleci-server-traefik-9d6b86fd8-f7n2x   1/1     Running   0          24d
circleci-server-traefik-cf7d4d7f6-6mb5g   1/1     Error     0          3m

以下のコマンドで古い Traefik ポッドを削除します。

kubectl delete pod circleci-server-traefik-<older pod hash>

これにより、新しい Traefik ポッドが指定通りに実行されるようになります。

新機能

修正点

既知の問題

リリース 3.1.0

アップグレードに関する注意事項

本リリースでは、frontend-external ロード バランサーが廃止されました。 今後、受信トラフィックはすべて、traefik ロード バランサーにより処理されます。 過去の 3.x バージョンからアップデートする場合、frontend-external ロード バランサーを参照する DNS レコードを、circleci-server-traefik ロード バランサーを参照するように更新する必要があります。 Traefik ロードバランサーの外部 IP アドレスやDNS 名は、クラスタへのアクセスが可能な端末から kubectl get svc/circleci-server-traefik を実行することで取得できます。

DNS レコードを更新して既存の CircleCI Server をアップグレードするには、次の手順を実施してください。

  1. Retrieve the external IP or DNS name for the traefik load balancer as described or by looking the DNS A record for app.<your domain name>` - this should already point to your traefik load balancer.

  2. 既存の CircleCI Server のドメイン名を参照している DNS A レコードを見つけます (アプリ のサブドメインを参照しているものではありません)。

  3. アプリのサブドメインのレコードと同じ様に Traefik ロード バランサーを参照するように A レコードを変更します。 DNSサービスによっては、変更が反映されるまでに数分かかる場合があります。

次に、KOTS 管理者コンソール ダッシュボードのメニューバーで [Version History (バージョン履歴)] を選択し、CircleCI Server v3.1.0 の [Deploy (デプロイ)] をクリックします。

新機能

  • Telegraf プラグインを CircleCI Server に追加できるようになりました。 このプラグインは、サードパーティの監視ソリューション (Datadog など) を使用するようにカスタマイズできます。 詳細については、https://circleci.com/docs/2.0/server-3-operator-metrics-and-monitoring/[ [Metrics and Monitoring (メトリクスと監視)]]に関するページを参照してください。

  • 完全にプライベートな環境にインストールしたいお客様のために、プライベートロードバランサーのみを使用するオプションが導入されました。 詳細については、https://circleci.com/docs/2.0/server-3-operator-load-balancers/[[Load Balancers (ロード バランサー)]]ガイドを参照してください。

  • CircleCI Server 3.x では、オブジェクト ストレージにビルド アーティファクト、テスト結果、その他の状態をホストします。 すべての S3 互換ストレージと Google Cloud Storage をサポートしています。 詳細については、https://circleci.com/docs/2.0/server-3-install/[[Installation guide (インストール ガイド)]]を参照してください。

  • CircleCI Server でセットアップ ワークフローによるダイナミック コンフィグが利用できるようになりました。 詳細については、https://circleci.com/blog/introducing-dynamic-config-via-setup-workflows/[[blog post (ブログ記事)]]およびhttps://circleci.com/docs/2.0/dynamic-config/[[Dynamic Congiguration (ダイナミック コンフィグ)]]を参照してください。

  • CircleCI Server でランナーを利用できるようになりました。 インストール手順を含む詳細については、https://circleci.com/docs/2.0/runner-overview/?section=executors-and-images[[Runner docs (ランナーに関するページ)]]を参照してください。 ランナーを使うことで、CircleCI Server 環境で macOS Executor を使用できるほか、プライベート データ センターに CircleCI Server をインストールしている場合も VM サービス機能を使用することができるようになります。

  • v3.0 よりフロントエンド ロード バランサーが廃止され、Ingress リソースと Traefik Ingress コントローラーに置き換えられました。 この変更に伴い、既存の DNS の再設定が必要になります。 詳細と手順については、<a data-type="default" href="What’s New (新機能に関するページ)を参照してください。

  • 次のサービスを外部化できるようになりました。 設定方法については、<a data-type="default" href="Server v3.x installation guide (CircleCI Server v3.x のインストールガイド)を参照してください。

    • Postgres

    • MongoDB

    • Vault

  • バックアップと復元機能が利用できるようになりました。 詳細については、https://circleci.com/docs/2.0/server-3-operator-backup-and-restore/[[Backup and Restore (バックアップと復元)]]ガイドを参照してください。

  • クラスタのヘルス状態と使用状況のモニタリングのため、Prometheus がデフォルトで CircleCI Server と共にデプロイされるようになりました。 Prometheus の管理と構成は KOTS 管理 UI で行えます。 詳細については、https://circleci.com/docs/2.0/server-3-operator-metrics-and-monitoring/[[Metrics and Monitoring (メトリクスと監視)]]に関するページを参照してください。

  • 2 X-large リソース クラスがサポートされるようになりました。 大きいリソース クラスを使用する場合、Nomad クラスタもそれに合わせて十分なサイズにする必要があります。

  • ビルドしたアーティファクトとテスト結果のライフサイクルをKOTS 管理者コンソールの「Storage Object Expiry」で設定できるようになりました。 また、期限を無効にしてアーティファクトとテスト結果を無期限で保持するオプションも追加されました。

修正点

  • CircleCI サポート バンドルにシークレットが含まれる原因となる、一連のバグを修正しました。

  • サードパーティのバグなどが原因で、シークレットの一部が誤って改変されていました。

  • PostgresDB から STDOUT に秘密情報が出力されていました。

  • 一部の CircleCI サービスでシークレットが記録されていました。

  • Nomad Terraform モジュールのネットワーク セキュリティが強化されました。

  • Terraform v0.15.0 以上がサポートされるようになりました。

  • 最新バージョンのTerraformでサポートされている機能を使用するようにインストールスクリプトを更新しました。

  • 大規模なビルドが誤ったマシンタイプで実行される原因となっていたバグを修正しました。 大規模なビルドでは、4 つの vCPUと16 GB の RAM が正しく使用されるようになりました。

  • Vaultクライアントトークンの有効期限が切れると、コンテクストサービスが失敗するというバグを修正しました。

  • 準備完了前に legacy-notifier から準備完了と報告されるバグを修正しました。

  • すべてのサービスで、JVM ヒープ サイズに関するパラメーターが削除されました。 ヒープ サイズはメモリ上限の半分に設定されます。

  • ネットワーク設定と証明書に対する変更が、Traefik で自動的に検出されるようになりました。 これまでは、変更後に再起動が必要でした。

  • CPU とメモリの最小要件が変更されました。 新しい値については、https://circleci.com/docs/2.0/server-3-install-prerequisites/[[Installation Prerequisites (インストールの前提条件)]]のページをご参照ください。

既知の問題

  • 現在、同一の CircleCI サーバ アカウントで複数の組織が同じ名前のコンテキストを作ることが可能な状態です。 これは、エラーや予期せぬ動作を引き起こす可能性があるため、お控えください。

  • CircleCI 1.0 のビルドはサポートされていません。 1.0ビルドを実行しようとした場合、問題の原因を示すようなアプリケーションからのフィードバックはありません。 お使いの環境でビルドを実行しても、アプリ画面にビルドが表示されない場合は、https://circleci.com/docs/2.0/local-cli/[[CircleCI CLI] ]を使用してプロジェクトの設定を検証し、問題の原因を調査することをおすすめします。

リリース 3.0.2

  • アーティファクトが作成から 30 日後に表示されなくなるバグを修正しました。 アーティファクトの保持期間のデフォルト設定は無期限に変更されました。 また、KOTS 管理者コンソールでこの保持期間を設定できるようになりました。

  • Traefik ポッドを手動で再起動しない限り、TLS 証明書の更新が Traefik で認識されないバグを修正しました。 今後、最初の KOTS デプロイ後に TLS 証明書が更新されると、Traefik ポッドは自動的に再起動されます。

  • ポッドがメモリ不足になりクラッシュする builds-service のバグを修正しました。

リリース 3.0.1

  • 以前のバージョンは脆弱性のある PsExec を使用していたため、build_agent version のバージョンが更新されました。

  • GitHub でのチェックが重複する問題を受け、output-processor の環境変数が変更されました。

  • Flyway で管理される順不同のデータベース移行に対応するため、vm-service のデプロイ構成が変更されました。

次に読む

CircleCl Server v3.x の詳しい情報については、以下をご覧ください。



ドキュメントの改善にご協力ください

このガイドは、CircleCI の他のドキュメントと同様にオープンソースで、GitHub で使用できます。 ご協力いただき、ありがとうございます。


クリエイティブ・コモンズ・ライセンス
CircleCICircleCI ドキュメントは、クリエイティブ・コモンズの表示--非営利-継承 4.0 国際ライセンス に基づいてライセンス供与されています。