Workshop: Kubernetes Operator Framework
This is an entry-level workshop for both application developers and system administrators interested in building and managing Operators for Kubernetes environments. It is designed for those who have a basic knowledge of Kubernetes and want to learn how to apply domain or application-specific knowledge to automate common operational tasks. Attendees will understand the past difficulties with building Operators with existing client-libraries and discover how the Operator Framework can ease development workflow. Attendees will also receive step-by-step guidance on the process of creating real-world Operators with Go, Ansible, and Helm charts while mastering methodologies, design patterns, and strategies that can assist in avoiding common pitfalls. After your Operator has been created, learn how to utilize the Operator Lifecycle Manager (OLM) to define, install, and upgrade your Operator and record cluster usage with the Operator Metering project.
All Operator Framework components are part of GitHub organization called “Operator Framework” located here: https://github.com/operator-framework under Apache License 2.0
Course Outline:
• Introducing Kubernetes Operators
• Exploring the Operator Framework
• Understanding Kubernetes Resources and Controller Patterns
• Defining Custom Resource Definitions
• Demonstrating the Etcd-Operator
• Using the Operator SDK to build Operators with Go, Ansible, and Helm charts.
• Defining, installing, and upgrading Operators and their dependencies with the Operator-Lifecycle-Manager
• Recording historical cluster usage and generating reports with Operator-Metering.
Pre-Workshop Requirements
• Bring your own laptop
• minishift: https://docs.okd.io/latest/minishift/getting-started/installing.html
• minishift instance should be set to OpenShift version 3.10 and allocated a minimum of 2GB memory and 1 VCPU
• oc (included with minishift): https://github.com/openshift/origin/releases/tag/v3.10.0
• oc client version should be on minimum of 3.10. Confirm with ‘oc version’.
• kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/
• kubectl client version should be on minimum of v1.10.0. Confirm with ‘kubectl version’.
• curl or similar tool.
• jq or similar tool.
• An Integrated Development Environment of your choice. Suggestions include Atom, Visual Studio Code, or Sublime. Please also install a Golang extension/plugin. For Atom: go-plus. For Visual Studio Code: ms-vscode