Tool Migration

From Puppet to Mgmt and back

CfgMgmtCamp 2019, Gent

Felix Frank, Systems Architect
The unbelievable Machine Company GmbH

I'm back

Felix (@felis_rex - there's and egg squatting @ffrank)

  • ops professional for longer than
    he's comfortable admitting
  • recovering Open Source addict
  • has the last affordable flat in Berlin

Now what

Puppet support in mgmt has evolved another level

you should really see it for yourself

let's also talk about how you can help

Let's review the old stuff

Demo I

Problems with this

  • stuck with Puppet on the agent
  • cooler features only via mcl
  • performance of translated graphs

We are actually quite sure
that users will
want to switch to mcl.

But switching is not fun

  • rewrites are scary
  • latent errors in infra code can ruin your day
  • fear of switch-over day

What can we do about that?

Enable baby-steps approach

  1. replace agent software only
  2. rewrite one Puppet module
  3. go back to 2 until you run out of modules
  4. remove Puppet from the setup

How do we enable this?

Demo II

What about order
and dependencies?

Demo III

Missing: Ability to express
"external" edges
in both
Puppet and mgmt

Relating nodes between graphs

In code

# in Puppet
File["/etc"] -> Class["mgmt_handover"]
					
# in mcl
Noop["puppet_handover"] -> File["/etc/ntpd.conf"]
					
  • selected by prefix mgmt_ and puppet_
  • matched by suffix (here: "handover")

Let's see it in practice

Demo IV

In summary

  1. Remove code from manifest and

  2. add proxy classes for relationships

  3. Ensure proxy noops in mcl code

What's next?

Improving the translator

  • community input appreciated
  • will involve adding features to mgmt resources

Enhancing performance
for resources that
get run through Puppet

Want to get involved?

  • #mgmtconfig on Freenode
  • mgmt and translator feature requests
  • add mgmt to your home Puppet setup

Thanks for listening

Come to the hackday

also

My employer's hiring