contentTags | ||||
---|---|---|---|---|
|
前提条件のインストールとオブジェクトストレージの構成が完了したら、エアギャップ環境内の Kubernetes クラスタに Helm デプロイ版の CircleCI Server をインストールできます。
通常版インストールガイドの「Helm 値を作成します」に従って、CircleCI Server をインストールするための values.yaml
を用意する必要があります。 このファイルを用意できたら、以下の手順に従ってエアギャップ環境へのインストール用にフィールドを変更してください。
Note
|
エアギャップ環境用の values.yaml ファイルのサンプルについては、「values.yaml のサンプル」をご覧ください。
|
values.yaml
ファイルの global.container
セクションを以下のように変更します。
-
domainName
の値をインストール環境の内部ドメイン名に設定する -
container.org
の値をcircleci
に設定する -
container.registry
の値をインスタンスの内部レジストリのホスト名に設定する (デフォルトと異なるポートを使用する場合はポートも設定する)
global:
...
domainName: "server.internal.example.com"
container:
registry: "docker.internal.example.com:5000"
org: "<image-registry-org>"
Note
|
TLS なしでローカル Docker レジストリを構成する場合は、TLS なしで Docker を構成する場合の注意事項を参照してください。 |
values.yaml
ファイルの github
セクションで、使用する GitHub Enterprise インスタンスにあわせて設定を変更します。
hostname
値は GitHub Enterprise インスタンスの内部ホスト名に設定します。 enterprise
値は true に設定します。
GitHub Enterprise インスタンスで TLS および自己署名証明書を使用しない場合は、unsafeDisableWebhookSSLVerification: true
と selfSignedCert: true
を設定してください。
また、GitHub Enterprise で OAuth アプリケーションとパーソナルアクセストークンを設定し、下図で示した値を変更してください。 このプロセスの詳細については、GitHub OAuth アプリケーションの作成手順に関するページを参照してください。
# GitHub Enterprise
github:
hostname: "github.internal.example.com"
unsafeDisableWebhookSSLVerification: true # If using self-signed certificates
enterprise: true
selfSignedCert: true # If using self-signed certificates
# These must be generated and added manually from GitHub Enterprise
clientId: "<<github-enterprise-oauth-app-client-id>>"
clientSecret: "<<github-enterprise-oauth-app-client-secret>>"
defaultToken: "<<github-enterprise-personal-application-token>>"
values.yaml
ファイルの object_storage
セクションに以下の設定を追加し、必要に応じてポート番号を変更します。
object_storage:
bucketName: circleci-data
expireAfter: 0
s3:
enabled: true
endpoint: http://<minio-internal-hostname>:9000
accessKey: <minio-root-user>
secretKey: <minio-root-password>
Note
|
エンドポイントのプロトコルには、お使いの MinIO に応じて http または https を設定してください。
|
values.yaml
ファイルの distributor セクションで、agent_base_url
と launch_agent_base_url
の値を、MinIO 内で作成した circleci-data
バケットに設定します。
distributor:
agent_base_url: http://<minio-internal-hostname>:9000/circleci-data/
launch_agent_base_url: http://<minio-internal-hostname>:9000/circleci-data/
Note
|
ここでは、MinIO のデフォルトであるポート 9000 を使用しています。 お使いの MinIO インスタンスの設定が異なる場合は、ポート番号を適宜変更してください。 |
Note
|
プロトコルには、お使いの MinIO に応じて http または https を設定してください。
|
フェーズ 1 でコピーしたレジストリ内の Nomad ビルドエージェントイメージの場所を指定し、必要に応じてポート番号を変更します。
nomad:
...
buildAgentImage: "<your-internal-registry-hostname>:5000/circleci/picard"
Note
|
必要に応じて Docker レジストリのホスト名のポートを変更してください。 |
Note
|
TLS なしでローカル Docker レジストリを構成する場合は、TLS なしで Docker を構成する場合の注意事項を参照してください。 |
values.yaml
ファイルの vm_service
セクションで、enabled
の値を false
に設定してこのサービスを無効化します。 この機能を使用するには、クラウドへの接続が必要です。
# VM Service Disabled - Requires cloud connectivity
vm_service:
enabled: false
インストール環境に応じて、ロードバランサーをプロビジョニングするための NGINX アノテーションを追加します。 この例では、MetalLB を使用します。 詳細については、「その他の検討事項」の「K3s の LoadBalancer タイプの Service」セクションを参照してください。
# Additional nginx annotations
nginx:
annotations:
# This example uses MetalLB as a k3s load balancer
metallb.universe.tf/allow-shared-ip: default
values.yaml
ファイルと Helm チャートの用意が完了したら、エアギャップ環境で Helm の install コマンドを実行して CircleCI Server をインストールします。
推奨手順は、初めに名前空間 (circleci-server
) を作成してから、この名前空間にチャートをデプロイすることです。
helm install circleci-server ./circleci-server/ -n <kubernetes-namespace> --version 4.1.1 -f <path-to-values.yaml>
Helm によるデプロイ後、環境によっては (MetalLB を使用する場合など)、LoadBalancer タイプの circleci-proxy Service に手動でパッチを適用する必要があります。 詳細については、「その他の検討事項」の「K3s の LoadBalancer タイプの Service」セクションを参照してください。
本ページの手順を完了したら、「フェーズ 4 - Nomad クライアントの構成」に進んでください。