Cluster Configuration
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
ProgressDeadlineSeconds
ProgressDeadlineSeconds
contains a configurable quoted integer indicating the maximum allowed time between state transition and reaching a stable state before provisioning or deprovisioning when pushing an application. The default value is 600
seconds.
TerminationGracePeriodSeconds
The TerminationGracePeriodSeconds
contains a configurable quoted integer indicating the time between when the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. The default value is 30
seconds.