# Episode 40 : Kubebuilder
- Hosted by @kris-nova
- Recording date: 2018-06-22
<!--- Thumbnailed embed of the video, n8Xo_ghCIOSY is the video id from the youtube url
Note the 0.jpg for the thumbnail --->
<a href="http://www.youtube.com/watch?feature=player_embedded&v=N-lTSk1bGAg
" target="_blank"><img src="http://img.youtube.com/vi/N-lTSk1bGAg/0.jpg"
alt="Episode 40 - Kubebuilder" width="640" height="360" border="10" /></a>
## Table of Contents
- 00:00:00 - Welcome to TGIK!
- 00:00:00 - Week in Review
- 00:00:00 - Kubebuilder
- 00:00:00 - Installing Kubebuilder
- 00:00:00 - Running Kubebuilder
- 00:00:00 - Our first `kubebuilder init`
- 00:00:00 - Creating our first API
- 00:00:00 - Looking at the files Kubebuilder just created (IDE time)
- 00:00:00 - Why do Kubernetes projects have these hack directories?
- 00:00:00 - Adding a Schema and Business Logic
- 00:00:00 - Publishing
Timestamps will be filled out a working day after the broadcast as we have to wait for YouTube to render the stream. Timestamps will also be published to the YouTube video description.
## Show Notes
### Welcome to TGIK!
This week Kris will be looking at Kubebuilder, a framework for building Kubernetes APIs using [custom resource definitions (CRDs)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/).
### The Week in Review
- Clusterctl [release](https://github.com/kubernetes-sigs/cluster-api) - part of SIG Cluster Lifecycle. Example of how folks are thinking of deploying clusters in a standardized way.
- https://github.com/kubernetes-sigs/cluster-api/issues/383
- [GPUs go GA on GKE](https://cloudplatform.googleblog.com/2018/06/GPUs-as-a-service-with-Kubernetes-Engine-are-now-generally-available.html)
- Check out Kris' talk with Dave Aronchik showing off [Kubeflow](https://www.youtube.com/watch?v=givpqZ2IchI)
- The [History of Kubernetes](https://blog.risingstack.com/the-history-of-kubernetes/)
- [Scaling Kubernetes to 25m users](https://medium.com/@brendanrius/scaling-kubernetes-for-25m-users-a7937e3536a0)
- [AWS Cost Savings by Utilizing Kubernetes Ingress with Classic ELB](https://akomljen.com/aws-cost-savings-by-utilizing-kubernetes-ingress-with-classic-elb/)
- [KubeIP](https://kubeip.com/)
## Kubebuilder
Part of SIG Cluster lifecycle / Cluster API.
Starting with [main.go](https://github.com/kubernetes-sigs/kubebuilder/blob/master/cmd/kubebuilder/main.go).
### Installing Kubebuilder
Do not use `go get`, grab the tarball for your system.
- There's a [book](http://book.kubebuilder.io) with getting started documentation. We're following the quickstart section.
- You'll end up with it in `/usr/local/kubebuilder/bin`
- Using GOOS and GOARCH (@kris-nova mentions a video from Rob Pike on this, anyone have a link?)
## Reference Links
- https://github.com/kubernetes-sigs/kubebuilder
- GitHub Repo: [kubernetes-sigs/kubebuilder](https://github.com/kubernetes-sigs/kubebuilder)
- Slack channel: [#kubebuilder](http://slack.k8s.io/#kubebuilder)
- Google Group: [kubebuilder@googlegroups.com](https://groups.google.com/forum/#!forum/kubebuilder)
- Planned Work: [Sprint Dashboard](https://github.com/kubernetes-sigs/kubebuilder/projects/1)
- https://www.reddit.com/r/kubernetes/comments/8ien90/if_i_were_to_build_an_operator_what_should_i_use/
- https://itnext.io/under-the-hood-of-kubebuilder-framework-ff6b38c10796
## Documentation Used in this Episode
- GitBook: [book.kubebuilder.com](http://book.kubebuilder.io)