Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kube-cicd/pipelines-feedback-core
Pipelines Feedback Framework for Kubernetes-Native CI/CD systems
https://github.com/kube-cicd/pipelines-feedback-core
argo-workflows batchjobs cd ci cicd cloud-native feedback-controller jenkins jenkins-x jobs k8s kubernetes kubernetes-controller kubernetes-native pipelines pipelines-as-code scm tekton
Last synced: 2 months ago
JSON representation
Pipelines Feedback Framework for Kubernetes-Native CI/CD systems
- Host: GitHub
- URL: https://github.com/kube-cicd/pipelines-feedback-core
- Owner: kube-cicd
- License: mit
- Created: 2023-01-13T16:07:18.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-24T11:50:49.000Z (5 months ago)
- Last Synced: 2024-09-28T21:04:02.588Z (3 months ago)
- Topics: argo-workflows, batchjobs, cd, ci, cicd, cloud-native, feedback-controller, jenkins, jenkins-x, jobs, k8s, kubernetes, kubernetes-controller, kubernetes-native, pipelines, pipelines-as-code, scm, tekton
- Language: Go
- Homepage:
- Size: 431 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Pipelines Feedback Core
=======================![[image](https://quay.io/repository/pipelines-feedback/batchv1?tab=tags)](https://img.shields.io/badge/container-quay.io-green.svg)
![[chart](https://quay.io/repository/pipelines-feedback/batchv1-chart?tab=tags)](https://img.shields.io/badge/chart-quay.io-green.svg)> 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](docs/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](https://github.com/jenkins-x/go-scm) (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.
- [Check Quay.io releases page](https://quay.io/organization/pipelines-feedback)
Roadmap
-------**First alpha release - 0.1:**
- [x] Reference implementation implementing `kind: Job` support
- [x] Modular architecture (pluggable: `config`, `receiver`, `provider`, `store`)
- [x] Split on `pkgs` and `internal` to hide internally used methods
- [x] Configuration as CRD and as local file, inherited and merged
- [x] Support for administrative jobs (jobs without SCM context e.g. backup jobs, identified by group-id)
- [x] Add support for logs fetching
- [x] Configuration schema support
- [x] 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:**
- [ ] Support for optional arguments in API for easier future interface extension (https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis)
- [ ] Freeze the API (in the code as well as in CRD)
- [ ] Document the API**Next:**
- [ ] WebAssembly support to write Feedback receivers in language of choiceFramework
---------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
---------------- [Kubernetes batch/v1 Jobs: Reference implementation](./pkgs/implementation)
batch/v1 Jobs (jobs-feedback)
-----------------------------This repository contains a exemplary and fully functional implementation for basic Kubernetes jobs.
[Development](./DEVELOPMENT.md)
-----------[See development API for developing integrations or whole custom controllers](./DEVELOPMENT.md)
[Usage](./USAGE.md)
-------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](./USAGE.md) tips for common parts of every controller.