×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Higher-Order Deployments Reducing Boilerplate With Kubernetes Custom Resource Definitions @jrbowes May 3, 2018
Slide 2
Slide 2 text
https://www.manifold.co YES, WE ARE HIRING SIGN UP TODAY
Slide 3
Slide 3 text
Photo by Caleb Jones on Unsplash
Slide 4
Slide 4 text
Photo by Tyler Milligan on Unsplash
Slide 5
Slide 5 text
Photo by Connor Betts on Unsplash @jrbowes
Slide 6
Slide 6 text
Photo by Connor Betts on Unsplash @jrbowes
Slide 7
Slide 7 text
Photo by chuttersnap on Unsplash @jrbowes
Slide 8
Slide 8 text
Photo by Etienne Pauthenet on Unsplash
Slide 9
Slide 9 text
By Frank Vincentz (Own work) GFDL via Wikimedia Commons
Slide 10
Slide 10 text
Photo by Lauren Lester on Unsplash apiVersion: extensions/v1beta1 kind: Deployment metadata: name: worker spec: replicas: 2 strategy: Photo by Lauren Lester on Unsplash
Slide 11
Slide 11 text
Y Photo by Mariam Soliman on Unsplash @jrbowes
Slide 12
Slide 12 text
Photo by Alexandru Tugui on Unsplash @jrbowes
Slide 13
Slide 13 text
Photo by Alexandru Tugui on Unsplash @jrbowes
Slide 14
Slide 14 text
@jrbowes
Slide 15
Slide 15 text
@jrbowes
Slide 16
Slide 16 text
@jrbowes
Slide 17
Slide 17 text
Kubernetes is Composition @jrbowes
Slide 18
Slide 18 text
Kubernetes is a Database @jrbowes
Slide 19
Slide 19 text
Photo by Wine Dharma on Unsplash ● 1 Custom Resource Definition ● 1 Controller ● Admission Controllers to taste @jrbowes
Slide 20
Slide 20 text
apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: applications.manifold.co spec: group: stable.manifold.co version: v1 scope: Namespaced names: plural: applications singular: application kind: Application @jrbowes
Slide 21
Slide 21 text
validation: openAPIV3Schema: properties: spec: properties: replicas: type: integer minimum: 2 image: type: string @jrbowes
Slide 22
Slide 22 text
@jrbowes
Slide 23
Slide 23 text
Start with Metacontroller @jrbowes
Slide 24
Slide 24 text
@jrbowes
Slide 25
Slide 25 text
Why?
Slide 26
Slide 26 text
@jrbowes
Slide 27
Slide 27 text
@jrbowes
Slide 28
Slide 28 text
@jrbowes
Slide 29
Slide 29 text
- name: Create my app's deployment k8s_raw: state: present definition: apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-app spec: replicas: 2 @jrbowes
Slide 30
Slide 30 text
- name: Create all of my app k8s_raw: state: present definition: apiVersion: manifold.co/v1 kind: Application metadata: name: my-app spec: external: true @jrbowes
Slide 31
Slide 31 text
Build your own Operators
Slide 32
Slide 32 text
Photo by Matthew Hamilton on Unsplash CRDs are new & incomplete No multi-version support yet @jrbowes
Slide 33
Slide 33 text
Photo by Matthew Hamilton on Unsplash Many moving parts Definition, controller, webhooks @jrbowes
Slide 34
Slide 34 text
Photo by Matthew Hamilton on Unsplash Attempts to simplify are still early ● Metacontroller ● Kubekit ● operator-sdk ● Your cool project? @jrbowes
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
Thank you! @jrbowes April 18, 2018