Quando você estiver usando o Rancher, a maneira mais fácil seria registrar o Catálogo Rancher personalizado e criar um item para cada pilha / serviço que você deseja implantar.

Rancher Catalog é um repositório Git com a seguinte estrutura

Em Jenkins, você pode criar um trabalho que chamaria a API REST do Rancher para implantar / atualizar a pilha / serviço.

Por sua vez, o Rancher obteria a versão mais recente da imagem do Docker para este serviço e a implantaria correspondente ao arquivo Docker Compose do catálogo.

Prós:
- abordagem genérica que pode ser usada para quase todos os aplicativos
- O próprio Jenkins pode ser implantado no ambiente Rancher, os agentes podem ser criados no cluster Kubernetes
Contras:
- A equipe de desenvolvimento deve seguir uma sólida estratégia de lançamento para poder usar builds genéricos
- drivers de armazenamento ainda estão sob a questão na versão alfa do Rancher 2.0