Entity Custom Resource Definitions for Keptn GitOps



Keptn

Entity Custom Resource Definitions for Keptn GitOps

This project implements the remaining Keptn entities as Kubernetes Custom Resource Definitions to shift more of Keptn’s components towards a GitOps workflow. As a result, users will be able to configure these entities via PRs to a configuration repository or manage them directly using the Kubernetes APIs.

Project team

  • Contributor: Eric Y. Kim - GitHub | LinkedIn

  • Mentors: Thomas Schuetz, Suraj Banakar, Afzal Ansari

Contacts

Details

There has been significant progress towards a fully GitOps approach for Keptn through the implementation of the Keptn Gitops Operator Prototype. In fact, it is already possible to configure Keptn by merging pull requests to a configuration repository and by application of the following Kubernetes Custom Resources (CRs):

  • KeptnInstance
  • KeptnProject
  • KeptnService
  • KeptnSequence
  • KeptnStage
  • KeptnServiceDeployment

Along with this progress, there are additional possible enhancements discussed in discussions/5296 to achieve a Keptn workflow that includes configuration via the Kubernetes API and less frequent communication with the Keptn upstream repository. Specifically, this project will implement the outstanding Keptn entity CRs not currently included in the prototype:

  • SLI configs
  • SLO configs
  • Remediation configs
  • Webhook configs

As a result, in addition to bringing Keptn closer to achieving a GitOps workflow, users will benefit as a result of:

  • Improved performance due to less frequent communication with the Keptn Git repository (as already mentioned)
  • Added ability to manage Keptn entities directly using kubectl

References