Este documento mostra como implementar o Spring Cloud Config num cluster do Kf.
O Spring Cloud Config oferece uma forma de desassociar o código da aplicação da respetiva configuração de tempo de execução. O servidor de configuração do Spring Cloud Config pode ler ficheiros de configuração de repositórios Git, do sistema de ficheiros local, de servidores HashiCorp Vault ou do Cloud Foundry CredHub. Depois de o servidor de configuração ler a configuração, pode formatá-la e publicá-la como YAML, Java Properties ou JSON através de HTTP.
Antes de começar
Precisa de um cluster com o Kf instalado e acesso à CLI do Kf.
Além disso, precisa do seguinte software:
git
: o Git é necessário para clonar um repositório.
Transfira o servidor de configuração do Spring Cloud Config
Para transferir a origem do servidor de configuração:
- Abra um terminal.
Clone a origem para o servidor de configuração:
git clone --depth 1 "https://github.com/google/kf"
Configure e implemente um servidor de configuração
Para atualizar as definições da instância:
Alterar diretório para
spring-cloud-config-server
:cd kf/spring-cloud-config-server
Abra o
manifest.yaml
.Altere a variável de ambiente
GIT_URI
para o URI do seu servidor de configuração do Git.Opcionalmente, altere o nome da aplicação no manifesto.
Opcionalmente, configure propriedades adicionais ou origens de propriedades alternativas editando
src/main/resources/application.properties
.Implemente o servidor de configuração sem uma rota externa. Se alterou o nome da aplicação no manifesto, atualize-o aqui:
kf push --no-route spring-cloud-config
Associe aplicações ao servidor de configuração
Pode criar um serviço fornecido pelo utilizador para associar o servidor de configuração implementado a outras aplicações Kf no mesmo cluster ou espaço de nomes.
A forma como as configura depende da biblioteca que usa:
Aplicações PCF
As aplicações PCF existentes que usam a biblioteca de cliente dos serviços Spring Cloud da Pivotal podem ser associadas através do seguinte método:
Crie um serviço fornecido pelo utilizador denominado config-server. Só tem de realizar este passo uma vez por servidor de configuração:
kf cups config-server -p '{"uri":"http://spring-cloud-config"}' -t configuration
Para cada aplicação que precise de obter credenciais, execute:
kf bind-service application-name config-server
kf restart application-name
Esta ação cria uma entrada na variável de ambiente
VCAP_SERVICES
para o servidor de configuração.
Outras aplicações
As aplicações que podem ligar-se diretamente a um servidor de configuração do Spring Cloud devem ser configuradas para aceder ao mesmo através do respetivo URI interno do cluster:
http://spring-cloud-config
- Para aplicações Spring que usam a biblioteca de cliente Spring Cloud Config, pode definir a propriedade
spring.cloud.config.uri
na localização adequada para a sua aplicação. Normalmente, trata-se de um ficheiroapplication.properties
ouapplication.yaml
. - Para outras frameworks, consulte as informações de referência da sua biblioteca.
Elimine o servidor de configuração
Para remover um servidor de configuração:
Remova todas as associações ao servidor de configuração executando os seguintes comandos para cada aplicação associada:
kf unbind-service application-name config-server
kf restart application-name
Remova a entrada de serviço para o servidor de configuração:
kf delete-service config-server
Elimine a aplicação do servidor de configuração:
kf delete spring-cloud-config
O que se segue?
- Leia mais acerca dos tipos de origens de configuração suportados pelo Spring Cloud Config.
- Saiba mais sobre a estrutura da variável de ambiente
VCAP_SERVICES
para compreender como pode ser usada para a deteção de serviços.