Knative Controller which emits cloud events when Knative Resources change state

Knative Sample Controller

GoDoc Go Report Card

Knative sample-controller defines a few simple resources that are validated by webhook and managed by a controller to demonstrate the canonical style in which Knative writes controllers.

To learn more about Knative, please visit our Knative docs repository.

If you are interested in contributing, see CONTRIBUTING.md and DEVELOPMENT.md.

Owner
salaboy
Staff Engineer @VMware For @KnativeProject Cloud-Native & Business Automation. ex- (@redhat / @jboss)
salaboy
Similar Resources

The k8s-generic-webhook is a library to simplify the implementation of webhooks for arbitrary customer resources (CR) in the operator-sdk or controller-runtime.

k8s-generic-webhook The k8s-generic-webhook is a library to simplify the implementation of webhooks for arbitrary customer resources (CR) in the opera

Nov 24, 2022

Open Source runtime tool which help to detect malware code execution and run time mis-configuration change on a kubernetes cluster

Open Source runtime tool which help to detect malware code execution and run time mis-configuration change on a kubernetes cluster

Kube-Knark Project Trace your kubernetes runtime !! Kube-Knark is an open source tracer uses pcap & ebpf technology to perform runtime tracing on a de

Sep 19, 2022

Cloud-Z gathers information and perform benchmarks on cloud instances in multiple cloud providers.

Cloud-Z Cloud-Z gathers information and perform benchmarks on cloud instances in multiple cloud providers. Cloud type, instance id, and type CPU infor

Jun 8, 2022

TriggerMesh open source event-driven integration platform powered by Kubernetes and Knative.

TriggerMesh open source event-driven integration platform powered by Kubernetes and Knative. TriggerMesh allows you to declaratively define event flows between sources and targets as well as add even filter, splitting and processing using functions.

Dec 30, 2022

Knative function anonymousface for golang

Knative function anonymousface for golang

knative-function-anonymousface Usage $ curl -s -X POST -F [email protected] http://anonymousface.default.127.0.0.1.nip.io:8080 out.jpg Installation

Nov 23, 2021

K8s controller implementing Multi-Cluster Services API based on AWS Cloud Map.

AWS Cloud Map MCS Controller for K8s Introduction AWS Cloud Map multi-cluster service discovery for Kubernetes (K8s) is a controller that implements e

Dec 17, 2022

A kubernetes plugin which enables dynamically add or remove GPU resources for a running Pod

A kubernetes plugin which enables dynamically add or remove GPU resources for a running Pod

GPU Mounter GPU Mounter is a kubernetes plugin which enables add or remove GPU resources for running Pods. This Introduction(In Chinese) is recommende

Jan 5, 2023

Krateo Platformops: Run your Resources on Every Cloud

Krateo Platformops: Run your Resources on Every Cloud

Krateo Platformops is an open source tool, based on CNCF projects such as Kubern

Dec 26, 2022
Comments
  • Create a Knative Service Controller

    Create a Knative Service Controller

    Based on #1 Let's create a simple controller inside this project that watch Knative Services and emit a CloudEvent when a new Knative Service is created:

    You can follow the following examples inside the tekton controller which creates a "Controller" and a "Reconciler"

    https://github.com/tektoncd/experimental/blob/main/cloudevents/pkg/reconciler/pipelinerun/controller.go#L39

    https://github.com/tektoncd/experimental/blob/main/cloudevents/pkg/reconciler/pipelinerun/reconciler.go#L75

    The reconciler emits the event in the linked line.

    The controller register the watches for the resources that we are interested.

  • Knative Serving CloudEvents Controller Proposal

    Knative Serving CloudEvents Controller Proposal

    The main objective of this controller for Knative Serving is to externalize the state of the Knative Service resources so other tools can react to these events. One of the main objectives of this controller is to enable interoperability with other tools outside the Knative ecosystem, hence this proposal relies on the http://cd.foundation sig-events working group definitions for events. This is achieved by using the CDE library to emit events defined in this common and shared vocabulary.

    Goals

    If this controller is present on a Knative Serving installation, this controller should:

    • Watch Knative Service resources and emit CD events (CDE) for the following scenarios
      • A new service is registered
      • A service change its state from not ready to ready
      • A service point to a new revision
      • A service is deleted
      • A service is scaled down or scaled up
    • This controller shouldn't have any dependency on Knative Eventing

    This controller should follow the same approach as the Tekton cloud events controller: https://github.com/tektoncd/experimental/tree/main/cloudevents

    This controller doesn't define any new CRD

    This controller needs to use events defined here: https://github.com/tektoncd/experimental/blob/main/cloudevents/go.mod#L6

    If there is an event that we need to emit that is currently not defined we need to submit a PR to: https://github.com/cdfoundation/sig-events/tree/main/cde/sdk/go

    After milestone 1 we need to create a proposal to add this project to the knative-sandbox org and advertise for other developers to help us improve the code.

Knative Sample Controller

Knative Sample Controller Knative sample-controller defines a few simple resources that are validated by webhook and managed by a controller to demons

Jan 21, 2022
Oc-clusteroperator - OpenShift CLI plugin to change the state of ClusterOperators from managed to unmanaged and back again

oc-clusteroperator OpenShift CLI plugin to change the state of ClusterOperators

Feb 15, 2022
cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resource objects related of Kubernetes Cluster API.

Overview cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resou

Oct 27, 2022
provide api for cloud service like aliyun, aws, google cloud, tencent cloud, huawei cloud and so on

cloud-fitter 云适配 Communicate with public and private clouds conveniently by a set of apis. 用一套接口,便捷地访问各类公有云和私有云 对接计划 内部筹备中,后续开放,有需求欢迎联系。 开发者社区 开发者社区文档

Dec 20, 2022
Kubernetes Admission Controller Demo: Validating Webhook for Namespace lifecycle events

Kubernetes Admission Controller Based on How to build a Kubernetes Webhook | Admission controllers Local Kuberbetes cluster # create kubernetes cluste

Feb 27, 2022
Enables a FaaS experience for Knative / Cloud Native Runtimes.

Function Buildpacks for Knative Enables a FaaS experience for Knative / Cloud Native Runtimes. Will soon extend func to create deployable functions vi

Nov 2, 2022
Cloud Native Electronic Trading System built on Kubernetes and Knative Eventing

Ingenium -- Still heavily in prototyping stage -- Ingenium is a cloud native electronic trading system built on top of Kubernetes and Knative Eventing

Aug 29, 2022
Image clone controller is a kubernetes controller to safe guard against the risk of container images disappearing

Image clone controller image clone controller is a kubernetes controller to safe guard against the risk of container images disappearing from public r

Oct 10, 2021
Simple tool to move Azure resources based on Terraform state

aztfmove Simple tool to move Azure resources based on Terraform state Goal It is sometimes inevitable to move Azure resources to a new subscription or

Dec 29, 2022
Annotated and kubez-autoscaler-controller will maintain the HPA automatically for kubernetes resources.

Kubez-autoscaler Overview kubez-autoscaler 通过为 deployment / statefulset 添加 annotations 的方式,自动维护对应 HorizontalPodAutoscaler 的生命周期. Prerequisites 在 kuber

Jan 2, 2023