Atualmente, estou executando o Puppet no modo sem mestre. Estou usando o r10k para implantação de módulos e ambientes.
Versão simplificada: O repositório de controle do r10k possui duas ramificações: testing e produção . Mudanças na produção serão distribuídas automaticamente para servidores de produção. Mudanças nos testes para alguns servidores de teste.
Agora, se eu estou mudando as coisas no teste, às vezes eu tenho que mudar o repositório de controle do r10k também. Um exemplo comum seria o Puppetfile
, que atualmente se parece com isso em produção :
forge 'forge.puppetlabs.com'
# Forge modules
mod 'puppetlabs/stdlib'
mod 'puppetlabs/concat'
mod 'saz/ssh'
# Custom modules
mod 'ownmodule1',
:git => 'https://git.example.org/configuration/ownmodule1.git',
:ref => 'production'
mod 'ownmodule2',
:git => 'https://git.example.org/configuration/ownmodule2.git',
:ref => 'production'
A configuração dos módulos personalizados pode ter esta aparência na ramificação testing :
mod 'ownmodule1',
:git => 'https://git.example.org/configuration/ownmodule1.git',
:ref => 'testing'
mod 'ownmodule2',
:git => 'https://git.example.org/configuration/ownmodule2.git',
:ref => 'testing'
Agora, um commit em testing pode ter esta aparência:
+mod 'ownmodule3,
+ :git => 'https://git.example.org/configuration/ownmodule3.git',
+ :ref => 'testing'
Se eu mesclar isso a produção , e não tiver cuidado, ownmodule3 será adicionado à produção com o teste > em> branch, o que poderia ser fatal. Isso também impede a fusão automatizada quando todos os testes forem bem-sucedidos.
Como posso modificar meus repositórios ou fluxo de trabalho para evitar a mesclagem acidental de alterações específicas de ramificações?