Open Infrastructure Summit 2020

Monday, October 19, 2020 - 12:15
Virtual

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.

What can I expect to learn?

The attendees will learn the basic rules of K8s controller pattern, custom resource definitions and how it can be implemented in Python.

 

Register Now

 

 


Privacy Overview


Cookies consist of portions of code installed in the browser that assist the owner in providing the service based on the purposes described. Some of the purposes of installing cookies may also require the consent of the user. When the installation of cookies takes place on the basis of consent, this consent can be revoked freely at any time following the instructions contained in this document.

Please read the privacy policy

Strictly Necessary Cookies

These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.

3rd Parties Cookies

These cookies enable the website to provide enhanced functionality and personalisation. They may be set by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly. We'd like also to set Google Analytics cookies to help us to improve our website by collecting and reporting information on how you use it. The cookies collect information in a way that does not directly identify anyone. Under current GDPR, the installation of these third-party cookies requires your prior consent. For more information on how these cookies work, please see our 'Cookies policy'.