Configuração do cluster

O Kf usa um configmap do Kubernetes denominado config-defaults no espaço de nomes kf para armazenar definições de configuração ao nível do cluster. Este documento explica a respetiva estrutura e campos.

Estrutura do configmap config-defaults

O configmap contém três tipos de pares de chave/valor no campo .data:

  • As chaves de comentários com o prefixo _ contêm exemplos, notas e avisos.
  • As chaves de string contêm valores de texto simples.
  • As chaves de objetos contêm um valor JSON ou YAML que foi codificado como uma string.

Exemplo:

_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

Secção de exemplo

A secção de exemplo na chave _example contém explicações para outros campos e exemplos. As alterações a esta secção não têm efeito.

Space container registry

A propriedade spaceContainerRegistry é um valor de texto simples que especifica o registo de contentores predefinido que cada espaço usa para armazenar imagens criadas.

Exemplo:

spaceContainerRegistry: gcr.io/my-project

Domínios de cluster de espaços

A propriedade spaceClusterDomains é uma string codificada em YAML de objetos de domínio.

Cada espaço no cluster adiciona todos os itens na matriz à respetiva lista de domínios aos quais os programadores podem associar as respetivas apps.

Campos
domain

string

O nome do domínio a disponibilizar. Pode conter uma das seguintes substituições:

  • $(SPACE_NAME): substituído em cada espaço pelo nome do espaço.
  • $(CLUSTER_INGRESS_IP) - O endereço IP do gateway de entrada do cluster.
gatewayName

string

(Opcional)

Substitui os trajetos do gateway do Istio aos quais o serviço vai estar associado. A predefinição é kf/external-gateway, mas pode usar qualquer outro gateway no espaço de nomes kf.

Exemplo:

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

A propriedade buildpacksV2LifecycleBuilder contém a versão do binário do Cloud Foundry builder usado para executar compilações do buildpack v2.

O valor é uma referência Git. Para usar uma versão específica, acrescente um símbolo @ seguido de um SHA do Git no final.

Exemplo:

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

Launcher do ciclo de vida dos buildpacks V2

A propriedade buildpacksV2LifecycleLauncher contém a versão do binário do Cloud Foundry launcher incorporado em todas as aplicações do buildpack V2.

O valor é uma referência Git. Para usar uma versão específica, acrescente um símbolo @ seguido de um SHA do Git no final.

Exemplo:

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

Lista de buildpacks V2

A propriedade spaceBuildpacksV2 é uma matriz YAML codificada em string que contém uma lista ordenada de buildpacks predefinidos que são usados para criar aplicações compatíveis com o processo de buildpacks V2.

Campos
name

string

Um nome abreviado que os programadores podem usar para fazer referência ao buildpack nos manifestos das respetivas aplicações.

url

string

O URL usado para obter o buildpack.

disabled

boolean

Usado para impedir a execução deste buildpack.

Lista de camadas V2

A propriedade spaceBuildpacksV2 é uma matriz YAML codificada em string que contém uma lista ordenada de stacks que podem ser usadas com compilações compatíveis com o Cloud Foundry.

Campos
name

string

Um nome abreviado que os programadores podem usar para fazer referência à pilha nos respetivos manifestos de aplicações.

image

string

URL da imagem do contentor a usar como a pilha. Para mais informações, consulte https://kubernetes.io/docs/concepts/containers/images.

Lista de camadas V3

A propriedade spaceStacksV3 é uma matriz YAML codificada em string que contém uma lista ordenada de stacks que podem ser usadas com compilações do Cloud Native Buildpack.

Campos
name

string

Um nome abreviado que os programadores podem usar para fazer referência à pilha nos respetivos manifestos de aplicações.

description

string

Uma breve descrição da pilha apresentada quando executa kf stacks.

buildImage

string

URL da imagem do contentor a usar como criador. Para mais informações, consulte https://kubernetes.io/docs/concepts/containers/images.

runImage

string

URL da imagem do contentor a usar como base para todas as apps criadas com . Para mais informações, consulte https://kubernetes.io/docs/concepts/containers/images.

nodeSelector

map (key: string, value: string)

(Opcional)

Um NodeSelector usado para indicar em que nós as aplicações criadas com esta pilha podem ser executadas.

Exemplo:

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

Predefinição para a pilha V3

A propriedade spaceDefaultToV3Stack contém um valor entre aspas true ou false que indica se os espaços devem usar conjuntos V3 se um utilizador não especificar um.

Sinalizações de funcionalidades

A propriedade featureFlags contém um mapa YAML codificado em string de flags de funcionalidades que podem ativar e desativar funcionalidades do Kf.

Os nomes de flags que não são suportados pelo Kf são ignorados.

Nome do sinalizador Predefinição Finalidade
disable_custom_builds false Desativar o acesso de programadores a pipelines de compilação do Tekton arbitrários.
enable_dockerfile_builds true Permitir que os programadores criem código-fonte a partir de ficheiros Dockerfile.
enable_custom_buildpacks true Permitir que os programadores especifiquem buildpacks externos nas respetivas aplicações.
enable_custom_stacks true Permitir que os programadores especifiquem stacks personalizadas nas respetivas aplicações.

Exemplo:

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