K-Mesh is an experimental Knative distribution which provides a fresh, CLI-focused, holistic user experience of running and managing Knative.

K-Mesh

K-Mesh is an experimental Knative distribution which provides a fresh, CLI-focused, holistic user experience of running and managing Knative.

NOTE: K-Mesh is an early-stage PoC project.

Demo

Prerequisites

Clone K-Mesh repo

git clone [email protected]:devguyio/kmesh.git

Change to the demo directory

cd kmesh/demo

Copy the bin/kmesh binary to your PATH or execute the kmesh commands from inside the demo directory (i.e. ./bin/kmesh).

NOTE: Currently some paths are hardcoded, so you always need to be in the demo directory (which contains the artifacts directory) when issuing kmesh commands.

Create a Kind cluster using kmesh

kmesh infra:kind

Use kmesh to install Knative. Currently this will install:

  • Knative Eventing core
  • InMemoryChannel
  • K-Mesh operator
kmesh install

Verify that the K-Mesh is now showing Not initialized when checking the status

kmesh mesh:status

Start the default K-Mesh

kmesh mesh:start

Verify that the K-Mesh is now showing Ready when checking the status

kmesh mesh:status

List available brokers. Kmesh demo comes with the mtbroker and two demo brokers under artifacts/brokers.

kmesh brokers:status

Install the mtbroker. K-Mesh uses Helm charts to manage the K-Mesh compontents.

kmesh brokers:install mtbroker

Verify that the K-Mesh is now showing Ready when checking the brokers status. You can use the top level status command to show the full K-Mesh status including brokers. Notice how the default K-Mesh is now aware of the MTChannelBasedBroker in the BROKER CLASSES column.

kmesh status

Now it's time to create some brokers and triggers. The demo directory comes with some demo manifests. Follow these steps to explore the K-Mesh features.

# Create one broker in the dev namespace 
kubectl apply -f 1-broker-dev.yaml

# Let's see if the K-Mesh sees the new ingress
kmesh status

# Create a trigger & subscriber
kubectl apply 2-trigger-dev.yaml

# Verify that the egress is listed in the status
kmesh status

# Create some extra triggers & subscripbers
kubectl apply 3-trigger-dev.yaml

# Verify that the egresses
kmesh status

# Full annihilation 
kubectl apply 4-large-demo.yaml

# Enjoy the view!
kmesh status

TODO

  • Mesh controller PoC
    • BrokerImpl -> Kmesh Classes
    • New broker -> Kmesh Ingress
    • New trigger -> Kmesh Egress
  • Kafka-Broker <-> Controller
    • Install K-Mesh dest
  • Helm chart in the broker-binding
  • Get brokerclasses from helm chart
Owner
Ahmed Abdalla Abdelrehim
Ahmed Abdalla Abdelrehim
Similar Resources

News-parser-cli - Simple CLI which allows you to receive news depending on the parameters passed to it

News-parser-cli - Simple CLI which allows you to receive news depending on the parameters passed to it

news-parser-cli Simple CLI which allows you to receive news depending on the par

Jan 4, 2022

✨ Create a new production-ready project with backend, frontend and deploy automation by running one CLI command!

✨ Create a new production-ready project with backend, frontend and deploy automation by running one CLI command!

✨ Create a new production-ready project with backend, frontend and deploy automation by running one CLI command!

Dec 31, 2022

Runc: a CLI tool for spawning and running containers on Linux according to the OCI specification

runc Introduction runc is a CLI tool for spawning and running containers on Linux according to the OCI specification. This repo contains a lightly mod

Dec 16, 2021

ghcv-cli makes it easy to view the user-created issues, pull requests, and repositories in the terminal.

ghcv-cli makes it easy to view the user-created issues, pull requests, and repositories in the terminal.

ghcv-cli ghcv-cli makes it easy to view the user-created issues, pull requests, and repositories in the terminal. About Show a list of pull requests c

Mar 13, 2022

A CLI tool for running Go commands with colorized output

A CLI tool for running Go commands with colorized output

Goli Goli is a CLI Tool for running Go commands with colorized output. Note: Goli is still a WIP. It has very basic commands and limitations. Feel fre

Nov 24, 2022

Simple CLI util for running OCR on images through PERO OCR API

pero_ocr Simple CLI util for running OCR on images through PERO OCR API Usage: Usage of batch_pero_ocr: -c string cancel request with given

Dec 1, 2021

Clirunner - Package clirunner runs a legacy shell-style CLI as if a human were running it.

clirunner Package clirunner runs a legacy shell-style command-line interpreter (CLI) as if a human were running it. A shell-style CLI offers a prompt

Jan 4, 2022

textnote is a command line tool for quickly creating and managing daily plain text notes.

textnote is a command line tool for quickly creating and managing daily plain text notes. It is designed for ease of use to encourage the practice of daily, organized note taking. textnote intentionally facilitates only the management (creation, opening, organizing, and consolidated archiving) of notes, following the philosophy that notes are best written in a text editor and not via a CLI.

Jan 2, 2023

Bucket-ssh. A fuzzy ssh manager for managing and categorizing ssh connections.

Bucket-ssh. A fuzzy ssh manager for managing and categorizing ssh connections.

Bssh is an ssh bucket for categorizing and automating ssh connections. Also, with parallel command execution and connection checks(pings) over categories (namespaces).

Oct 25, 2022
Related tags
CLI for SendGrid, which helps in managing SSO users, can install and update users from yaml config

Sendgrid API This script is needed to add new users to SendGrid as SSO teammates. Previously, all users were manually added and manually migrating the

Jul 20, 2022
Kaweezle (Alpine based WSL2 Kubernetes distribution) root filesystem

Kaweezle Root Filesystem Run Vanilla Kubernetes on Windows with WSL 2 and Alpine Linux Explore the docs » Report Bug · Request Feature Table of Conten

Jan 23, 2022
this service provides an API for publishing and managing your articles

REST API Для Публикации и Работы с Articles на Go В работе применены следующие концепции: Разработка Веб-Приложений на Go, следуя дизайну REST API. Ра

Jul 25, 2022
A simple go program which checks if your websites are running and runs forever (stop it with ctrl+c). It takes two optional arguments, comma separated string with urls and an interval.

uptime A simple go program which checks if your websites are running and runs forever (stop it with ctrl+c). It takes two optional arguments: -interva

Dec 15, 2022
PingMe is a CLI tool which provides the ability to send messages or alerts to multiple messaging platforms & email.
PingMe is a CLI tool which provides the ability to send messages or alerts to multiple messaging platforms & email.

PingMe is a personal project to satisfy my needs of having alerts, most major platforms have integration to send alerts but its not always useful, either you are stuck with one particular platform, or you have to do alot of integrations. I needed a small app which i can just call from my backup scripts, cron jobs, CI/CD pipelines or from anywhere to send a message with particular information. And i can ship it everywhere with ease. Hence, the birth of PingMe.

Dec 28, 2022
Experimental go cli tool to track your open issues and PRs.
Experimental go cli tool to track your open issues and PRs.

git-sum cli tool See open issue and pull request counts for each repository of the user. Installation go install github.com/suadev/git-sum@latest Usa

Jan 21, 2022
Dapper is a CLI toolkit for compiling, deploying, and managing Algorand applications

??️ Dapper Decentralized Application Manager for the Algorand Blockchain Dappman is a Golang CLI toolkit for compiling, deploying, and managing Algora

Feb 11, 2022
A tiny Nano wallet, focused on ease of use through simplicity

atto is a tiny Nano wallet, which focuses on ease of use through simplicity. Disclaimer: I am no cryptographer and atto has not been audited. I cannot

Nov 14, 2022
Nebula Diagnosis CLI Tool is an information diagnosis cli tool for the nebula service and the node to which the service belongs.

Nebula Diagnosis CLI Tool is an information diagnosis cli tool for the nebula service and the node to which the service belongs.

Jan 12, 2022
Vaku is a CLI and API for running path- and folder-based operations on the Vault Key/Value secrets engine.
Vaku is a CLI and API for running path- and folder-based operations on the Vault Key/Value secrets engine.

Vaku Vaku is a CLI and API for running path- and folder-based operations on the Vault Key/Value secrets engine. Vaku extends the existing Vault CLI an

Nov 28, 2022