Red Hat, a Big Data Stack Partner, are organising the session titled ("K8s controller and CRD patterns in Python - kuryr-kubernetes case study") at the Open Infrastructure Summit that will be held virtually on October 19 - 23, 2020.
The Summit is focused on open infrastructure integration, and has evolved over the years to cover more than 30 different open source projects, including Airship, Ansible, Docker, Kata Containers, Kubernetes, OpenShift, OpenStack, StarlingX, Zuul and many more.
The Open Infrastructure Summit is structured around relevant use cases, trainings and complementary open source projects. Collaborate with people from more than 30 open source communities and meet the users, developers and vendors who are building and operating open infrastructure.
K8s controller and CRD patterns in Python - kuryr-kubernetes case study
Kuryr-Kubernetes is an OpenStack project aiming at providing Neutron networking for K8s pods. In contrast to regular OpenStack projects like Nova or Cinder, Kuryr-Kubernetes behavior is driven by events happening in Kubernetes (e.g. Pod or Service being created) and not by user calling OpenStack REST API. A pattern when application acts upon events received from K8s API and adjusts environment state accordingly is called "controller" in K8s world. Moreover Kuryr does not use any database, but saves state of the environment in K8s itself using "custom resources" (sometimes called CRDs).
There are golang libraries making implementing those patterns easier, but Kuryr is (mainly) written in Python, meaning that we needed to reinvent the wheel a bit. In this presentation we'll tell you how to implement the controller pattern, what Python gotchas are there waiting for unsuspecting developer and what are the best practices.
The attendees will learn the basic rules of K8s controller pattern, custom resource definitions and how it can be implemented in Python.