3 min read

Knative OSS diaries – week #12

Another week went by and it has been busy over here in the Knative Project. This past week DevOps World happened and it was packed full of interesting presentations from a very vibrant community.

I had the pleasure to present with Andrea Frittoli from IBM about the work that we did with the CD Foundation Events SIG (Special Interest Group) in a presentation called Using CloudEvents to Create an Interoperable CI/CD Ecosystem . I personally believe that the demo shows the potential that a standard vocabulary to express Continuous Delivery concepts based on CloudEvents will lead us to a more open and interoperable ecosystem, where teams can choose the tools that they most like and combine them in any way they need. If we are talking about Events, routing events and building Event Driven architectures, of course that the demo had Knative Eventing in it. The following diagram shows all the components that the demo used to connect Tekton Pipelines with Keptn by just using the CDE SDK and Knative Eventing for connecting things together.

If you want to run this demo in your own environment check out the poc directory in the sig-events repository for instructions.

The Demo shows how you can integrate Tekton Pipelines with Keptn orchestration events to drive an end to end process, from building a service to deploying it into a Kubernetes Cluster where Keptn will monitor how the new version is doing and possible trigger remediation flows when things go wrong. The Demo also shows manual intervention to decide when to promote the new version to a live environment, which in this case help us to separate the stages of the Keptn Sequence and the responsibility of each section (developers will create new versions of the services, operations teams will validate, run tests and then decide when to promote those new versions to live environments). You can find the slides from the presentation here:

[slideshare id=250001325&doc=keptn-meetup-interoperablecicdecosystem-210818090347]

As a long overdue side project, this week I've created a proposal for a new controller for Knative Serving that you can find here: https://github.com/salaboy/knative-cloudevehttps://github.com/salaboy/knative-cloudevents-controller/issues/1nts-controller/issues/1 . I find this project pretty simple and interesting to get started building Knative style controllers. It also help me to do some hacking with my new co-worker Carlisia which brings a lot of experience from the Velero team, another tools that I love. If you are interested in trying this new controller and help us building it, get in touch!

Changing topics, but still related with Events, the Knative Eventing Working Group has been busy find out missing bits and rough edges to be able to go GA. This is quite a big effort and if you are using Knative Eventing in your applications this is a perfect time to get involved and provide feedback that will directly contribute to the first Knative GA release.

One issue that I worked on this week which if find really interested is related with how event producers and the "infrastructure" (in this case Knative Channels and Brokers) can "hint" consumers about how they will deal with replies. The whole discussion about how to do this in a way that is clear for consumers can be found here, and because this behaviour is described in the Knative Eventing spec the reference implementations needs to follow this approach. To summarise, a new header (Prefer: reply) is added to the requests going out from Channels and Brokers, with this consumers can check if the header is present and then send a reply with confidence that the infrastructure will deal with routing for that reply to arrive safe to its destination.

Finally, and because I don't want to make this post too long, I spent some time looking at Kapp, which is a package manager for Kubernetes applications. My first reaction was, this is basically doing the same as Helm, without the templating stuff, but then digging deeper I can see a lot of interesting stuff going on. More of this will come in future posts, because Kapp solves some very common problems of packaging and distributing packages that can be easily installed in Kubernetes Clusters (one of my favourite things to do over the weekends 🤓 )

Stay safe, don't forget to checkout my Continuous Delivery for Kubernetes book and see you all next week!