/pipelines-feedback-core

Pipelines Feedback Framework for Kubernetes-Native CI/CD systems

Primary LanguageGoMIT LicenseMIT

Pipelines Feedback Core

image chart

NOTICE: THIS IS A WORK IN PROGRESS, currently more a PoC. I try to make it working, design it well, then stabilize and release.

gitlab.png

Generic Kubernetes controller watching Jobs on your cluster and notifying external systems, mainly Github, Gitlab, but not only. There are Feedback receivers, Feedback providers and Configuration providers.

Bundled Feedback Receivers:

  • jxscm (Github, Gitea, Gitlab, Bitbucket, etc.)

Bundled Configuration Providers:

  • local (read configuration from local JSON file)
  • crd (read from Kubernetes CRD - kind: PFConfig)

Releases:

We do releases on Quay.io in order to be more compatible with RedHat stack and also to have cool download stats. Helm Charts are published as OCI images in a separate repository in the same organization.

Roadmap

First alpha release - 0.1:

  • Reference implementation implementing kind: Job support
  • Modular architecture (pluggable: config, receiver, provider, store)
  • Split on pkgs and internal to hide internally used methods
  • Configuration as CRD and as local file, inherited and merged
  • Support for administrative jobs (jobs without SCM context e.g. backup jobs, identified by group-id)
  • Add support for logs fetching
  • Configuration schema support
  • Support Redis as a cache store
  • Helm Chart
  • Getting started guide

First beta release - 0.2:

  • Support for Matrix (Federated, Secure, Slack-like Messenger)

First stable release - 1.0:

Next:

  • WebAssembly support to write Feedback receivers in language of choice

Framework

This repository acts as a core library. You can easily create a Kubernetes controller for your CI/CD of choice by just implementing a simple interface we provide. The idea of this project is to create a unified, core library that could be used with Tekton, Argo Workflows, Jenkins X, plain Kubernetes Jobs and other possible CI/CD stacks.

Implementations

batch/v1 Jobs (jobs-feedback)

This repository contains a exemplary and fully functional implementation for basic Kubernetes jobs.

See development API for developing integrations or whole custom controllers

For end users - pipelines-feedback-core is an opinionated framework, so the usage could be different depending on the controller you are going to use.

Check generic usage tips for common parts of every controller.