Implemente o Spring Cloud Config

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:

  1. Abra um terminal.
  2. 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:

  1. Alterar diretório para spring-cloud-config-server:

    cd kf/spring-cloud-config-server
  2. Abra o manifest.yaml.

  3. Altere a variável de ambiente GIT_URI para o URI do seu servidor de configuração do Git.

  4. Opcionalmente, altere o nome da aplicação no manifesto.

  5. Opcionalmente, configure propriedades adicionais ou origens de propriedades alternativas editando src/main/resources/application.properties.

  6. 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:

  1. 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
  2. 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 ficheiro application.properties ou application.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:

  1. 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
  2. Remova a entrada de serviço para o servidor de configuração:

    kf delete-service config-server
  3. Elimine a aplicação do servidor de configuração:

    kf delete spring-cloud-config

O que se segue?