クラスタ構成

Kf は、kf Namespace で config-defaults という名前の Kubernetes configmap を使用して、クラスタ全体の構成設定を保存します。このドキュメントでは、その構造とフィールドについて説明します。

config-defaults configmap の構造

configmap では、.data フィールドに次の 3 種類の Key-Value ペアが含まれます。

  • 先頭に _ が付いたコメントキーには、サンプル、メモ、警告が含まれます。
  • 文字列キーには書式なしテキスト値が含まれます。
  • オブジェクト キーには、文字列としてエンコードされた JSON 値または YAML 値が含まれます。

例:

_note: "This is some note"
stringKey: "This is a string key that's not encoded as JSON or YAML."
objectKey: |
  - "These keys contain nested YAML or JSON."
  - true
  - 123.45

セクションの例

_example キーの下のセクションの例には、他のフィールドと例の説明が含まれます。このセクションに変更を加えても、影響はありません。

スペース コンテナ レジストリ

spaceContainerRegistry プロパティは書式なしテキスト値で、各スペースがビルドされたイメージを保存するために使用するデフォルトのコンテナ レジストリを指定します。

例:

spaceContainerRegistry: gcr.io/my-project

スペース クラスタ ドメイン

spaceClusterDomains プロパティは、ドメイン オブジェクトの文字列エンコードの YAML 配列です。

クラスタ内の各スペースは、配列内のすべてのアイテムを、デベロッパーがアプリをバインドできるドメインのリストに追加します。

フィールド
domain

string

使用可能にするドメイン名。次のいずれかの置換を含むことができます。

  • $(SPACE_NAME) - 各スペースでスペースの名前に置き換えられます。
  • $(CLUSTER_INGRESS_IP) - クラスタの上り(内向き)ゲートウェイの IP アドレス。
gatewayName

string

(省略可)

バインドされる Istio ゲートウェイ ルートをオーバーライドします。デフォルトは kf/external-gateway ですが、kf 名前空間内の他のゲートウェイも使用できます。

例:

spaceClusterDomains: |
  # Support canonical and vanity domains
  - domain: $(SPACE_NAME).prod.example.com
  - domain: $(SPACE_NAME).kf.us-east1.prod.example.com

  # Using a dynamic DNS resolver
  - domain: $(SPACE_NAME).$(CLUSTER_INGRESS_IP).nip.io

  # Creating an internal domain only visible within the cluster
  - domain: $(SPACE_NAME)-apps.internal
    gatewayName: kf/internal-gateway

Buildpacks V2 ライフサイクル ビルダー

buildpacksV2LifecycleBuilder プロパティには、Buildpack v2 ビルドを実行するために使用される Cloud Foundry builder バイナリのバージョンが含まれます。

値は Git リファレンスです。特定のバージョンを使用するには、末尾に @ 記号を付けてその後ろに Git SHA を追加します。

例:

buildpacksV2LifecycleBuilder: "code.cloudfoundry.org/buildpackapplifecycle/builder@GIT_SHA"

Buildpacks V2 ライフサイクル ランチャー

buildpacksV2LifecycleLauncher プロパティには、すべての buildpack V2 アプリケーションにビルドされた Cloud Foundry launcher バイナリのバージョンが含まれます。

値は Git リファレンスです。特定のバージョンを使用するには、末尾に @ 記号を付けてその後ろに Git SHA を追加します。

例:

buildpacksV2LifecycleLauncher: "code.cloudfoundry.org/buildpackapplifecycle/launcher@GIT_SHA"

Buildpacks V2 リスト

spaceBuildpacksV2 プロパティは、V2 Buildpack プロセスと互換性のあるアプリケーションをビルドするために使用される、デフォルトの Buildpack の順序付きリストを保持する文字列エンコードされた YAML 配列です。

フィールド
name

string

デベロッパーがアプリ マニフェスト内で Buildpack を参照するために使用できる短い名前。

url

string

Buildpack を取得する際に使用する URL。

disabled

boolean

このビルドパックが実行されないようにするために使用されます。

スタック V2 リスト

spaceBuildpacksV2 プロパティは、Cloud Foundry 互換ビルドに使用できるスタックの順序付きリストを保持する文字列エンコードされた YAML 配列です。

フィールド
name

string

デベロッパーがアプリ マニフェスト内でスタックを参照するために使用できる短い名前。

image

string

スタックとして使用するコンテナ イメージの URL。詳細については、https://kubernetes.io/docs/concepts/containers/images をご覧ください。

スタック V3 リスト

spaceStacksV3 プロパティは、Cloud Native Buildpack ビルドに使用できるスタックの順序付きリストを保持する文字列エンコードされた YAML 配列です。

フィールド
name

string

デベロッパーがアプリ マニフェスト内でスタックを参照するために使用できる短い名前。

description

string

kf stacks の実行時に表示されるスタックの簡単な説明。

buildImage

string

ビルダーとして使用するコンテナ イメージの URL。詳細については、https://kubernetes.io/docs/concepts/containers/images をご覧ください。

runImage

string

ビルドされたすべてのアプリのベースとして使用するコンテナ イメージの URL。詳細については、https://kubernetes.io/docs/concepts/containers/images をご覧ください。

nodeSelector

map (key: string, value: string)

(省略可)

このスタックでビルドされたアプリケーションを実行できるノードを示すために使用される NodeSelector。

例:

spaceStacksV3: |
  - name: heroku-18
    description: The official Heroku stack based on Ubuntu 18.04
    buildImage: heroku/pack:18-build
    runImage: heroku/pack:18
    nodeSelector:
       kubernetes.io/os: windows

デフォルトは V3 スタック

spaceDefaultToV3Stack プロパティには、ユーザーが V3 スタックを指定しない場合に、スペースで V3 スタックを使用するかどうかを示す引用符付きの値 true または false が含まれます。

フィーチャー トグル

featureFlags プロパティには、Kf 機能の有効 / 無効を設定できる機能フラグの文字列エンコードされた YAML 配列が含まれます。

Kf でサポートされていないフラグ名は無視されます。

フラグ名 デフォルト 目的
disable_custom_builds false 任意の Tekton ビルド パイプラインに対するデベロッパーのアクセス権を無効にします。
enable_dockerfile_builds true デベロッパーが Dockerfile からソースコードを作成できるようにします。
enable_custom_buildpacks true デベロッパーがアプリケーションで外部 Buildpack を指定できるようにします。
enable_custom_stacks true デベロッパーがアプリ内でカスタム スタックを指定できるようにします。

例:

featureFlags: |
  disable_custom_builds: false
  enable_dockerfile_builds: true
  enable_some_feature: true