Kf uses a Kubernetes configmap named config-defaults in
the kf namespace to store cluster wide configuration settings.
This document explains its structure and fields.
Structure of the config-defaults configmap
The configmap contains three types of key/value pairs in the .data field:
- Comment keys prefixed by _contain examples, notes, and warnings.
- String keys contain plain text values.
- Object keys contain a JSON or YAML value that has been encoded as a string.
Example:
_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 section
The example section under the _example key contains explanations for other
fields and examples. Changes to this section have no effect.
Space container registry
The spaceContainerRegistry property is a plain text value that specifies the
default container registry each space uses to store built images.
Example:
spaceContainerRegistry: gcr.io/my-project
Space cluster domains
The spaceClusterDomains property is a string encoded YAML array of domain objects.
Each space in the cluster adds all items in the array to its list of domains that developers can bind their apps to.
| Fields | |
|---|---|
| domain | 
 The domain name to make available. May contain one of the following substitutions: 
 | 
| gatewayName | 
 (Optional) 
          Overrides the Istio gateway routes will be bound to.
          Defaults to  | 
Example:
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 lifecycle builder
The buildpacksV2LifecycleBuilder property contains the version of the Cloud Foundry
builder binary used execute buildpack v2 builds.
The value is a Git reference. To use a specific version, append an @ symbol
followed by a Git SHA to the end.
Example:
buildpacksV2LifecycleBuilder: "code.cloudfoundry.org/buildpackapplifecycle/builder@GIT_SHA"
Buildpacks V2 lifecycle launcher
The buildpacksV2LifecycleLauncher property contains the version of the Cloud Foundry
launcher binary built into every buildpack V2 application.
The value is a Git reference. To use a specific version, append an @ symbol
followed by a Git SHA to the end.
Example:
buildpacksV2LifecycleLauncher: "code.cloudfoundry.org/buildpackapplifecycle/launcher@GIT_SHA"
Buildpacks V2 list
The spaceBuildpacksV2 property is a string encoded YAML array that holds an ordered
list of default buildpacks that are used to build applications compatible with
the V2 buildpacks process.
| Fields | |
|---|---|
| name | 
 A short name developers can use to reference the buildpack by in their application manifests. | 
| url | 
 The URL used to fetch the buildpack. | 
| disabled | 
 Used to prevent this buildpack from executing. | 
Stacks V2 list
The spaceBuildpacksV2 property is a string encoded YAML array that holds an
ordered list of stacks that can be used with Cloud Foundry compatible builds.
| Fields | |
|---|---|
| name | 
 A short name developers can use to reference the stack by in their application manifests. | 
| image | 
 URL of the container image to use as the stack. For more information, see https://kubernetes.io/docs/concepts/containers/images. | 
Stacks V3 list
The spaceStacksV3 property is a string encoded YAML array that holds an ordered
list of stacks that can be used with
Cloud Native Buildpack 
builds.
| Fields | |
|---|---|
| name | 
 A short name developers can use to reference the stack by in their application manifests. | 
| description | 
 A short description of the stack shown when running  | 
| buildImage | 
 URL of the container image to use as the builder. For more information, see https://kubernetes.io/docs/concepts/containers/images. | 
| runImage | 
 URL of the container image to use as the base for all apps built with . For more information, see https://kubernetes.io/docs/concepts/containers/images. | 
| nodeSelector | 
 (Optional) A NodeSelector used to indicate which nodes applications built with this stack can run on. | 
Example:
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
Default to V3 Stack
The spaceDefaultToV3Stack property contains a quoted value true or false
indicating whether spaces should use V3 stacks if a user doesn't specify one.
Feature flags
The featureFlags property contains a string encoded YAML map of feature flags
that can enable and disable features of Kf.
Flag names that aren't supported by Kf will be ignored.
| Flag Name | Default | Purpose | 
|---|---|---|
| disable_custom_builds | false | Disable developer access to arbitrary Tekton build pipelines. | 
| enable_dockerfile_builds | true | Allow developers to build source code from dockerfiles. | 
| enable_custom_buildpacks | true | Allow developers to specify external buildpacks in their applications. | 
| enable_custom_stacks | true | Allow developers to specify custom stacks in their applications. | 
Example:
featureFlags: |
  disable_custom_builds: false
  enable_dockerfile_builds: true
  enable_some_feature: true