Josh
Josh is a Site Reliability Engineer working on Layered Products on top of Managed OpenShift.
He is currently leading a Site Reliability Engineering team that supports multiple managed offerings and spends a lot of time mentoring his teammates in go and kubernetes operator development.
Session
Writing controllers that manage other objects is hard. Especially if you want to do:
- server-side-apply (all the cool kids are talking about it)
- proper status reporting through generic object probes
- phased ordering of managed objects (Namespaces need to exist before resources can be put into them; CustomResourceDefinitions (CRDs) must be registered before being used; ...)
- Conflict detection (did someone else change an object under my control?)
We'd like to present to you, what we learnt about managing objects using server-side-apply while extracting some functionality of our service-delivery operator "package-operator" into the separate library "boxcutter".