pipelines-feedback-core

command module
v0.0.0-...-8310f90 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 29, 2024 License: MIT Imports: 5 Imported by: 0

README

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.

Development

See development API for developing integrations or whole custom controllers

Usage

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.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
pkgs
apis/pipelinesfeedback.keskad.pl/v1alpha1
Package v1alpha1 contains PFConfig +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kube-cicd/pipelines-feedback-core/pkg/apis/pipelinesfeedback.keskad.pl +k8s:defaulter-gen=TypeMeta +groupName=pipelinesfeedback.keskad.pl
Package v1alpha1 contains PFConfig +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kube-cicd/pipelines-feedback-core/pkg/apis/pipelinesfeedback.keskad.pl +k8s:defaulter-gen=TypeMeta +groupName=pipelinesfeedback.keskad.pl
app
cli
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/pipelinesfeedback.keskad.pl/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/pipelinesfeedback.keskad.pl/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
k8s

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL