Skip to content

An experimental Knative distribution which provides a fresh, CLI-focused, holistic user experience of running and managing Knative.

License

Notifications You must be signed in to change notification settings

devguyio/k-mesh

Repository files navigation

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 git@github.com: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

About

An experimental Knative distribution which provides a fresh, CLI-focused, holistic user experience of running and managing Knative.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published