Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into aabidsofi/k8s-swi…
Browse files Browse the repository at this point in the history
…tcher

Signed-off-by: Pranav Singh <pranavsingh02@hotmail.com>
  • Loading branch information
theBeginner86 committed Sep 7, 2023
2 parents b430bbc + 1acbf0e commit 485c67f
Show file tree
Hide file tree
Showing 33 changed files with 1,178 additions and 625 deletions.
19 changes: 13 additions & 6 deletions docs/_data/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
- title: 🧠 Concepts
url: concepts
links:
- title: Architecture
- title: Architectural
url: concepts/architecture
children:
- title: Adapters
Expand All @@ -76,11 +76,18 @@
url: concepts/architecture/meshsync
- title: Operator
url: concepts/architecture/operator
- title: Catalog ↆ
url: concepts/catalog
children:
- title: Envoy WASM Filters
url: tasks/filter-management
- title: Conceptual ↆ
url: concepts/logical
children:
- title: Designs
url: concepts/designs
- title: Environments
url: concepts/environments
- title: MeshModel
url: concepts/meshmodel
- title: Workspaces
url: concepts/workspaces

- title: ⚙️ Tasks (all)
url: tasks
links:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ layout: default
title: Architecture
permalink: concepts/architecture
redirect_from: architecture
type: concepts
type: components
abstract: overview of different individual components of Meshery architecture and how they interact as a system.
language: en
list: include
Expand Down
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
---
layout: default
title: Broker
permalink: concepts/architecture/broker
type: concepts
redirect_from: architecture/broker
abstract: "Meshery broker component facilitates data streaming between kubernetes cluster components and outside world."
language: en
list: include
---

Broker is a custom Kubernetes controller that provides data streaming across independent components of Meshery whether those components are running inside or outside of the Kubernetes cluster.

### Broker FAQs

#### How many Brokers can run?
It is recommended to run one broker instance for each kubernetes cluster, However the instance itself can be scaled up based on the incoming data volume in each of the cluster. The scaling is independent of the number of instances running.

#### What does an HA configuration look like?
We leverage on the kubernetes functionality in terms of the High-Availability behaviour. Meaning, the broker instance gets instantiated/restarted on its own when an issue occurs. In part, Meshery-Operator is also responsible for keeping the broker functional.

#### What stateful characteristics does the Broker have?
All the messages that are published to the broker is persisted in-memory within the broker instance until it get consumed. Persistent-volume/Disk-space is not currently being used by the Broker.

#### How do I know if the Broker is working? How do I troubleshoot the Broker?
The Broker instance is deployed inside the kubernetes cluster as a `Statefulset`. In the case where the broker doesn't seem to work, here are a few steps to troubleshoot the instance:

- Make sure the pods corresponding to the `Statefulset` is up and running.
- Make sure the kubernetes cluster has support for kubernetes `Service` type `LoadBalancer` or `NodePort`.
- Ensure connectivity between the Meshery-Server and the Broker service endpoint.
---
layout: default
title: Broker
permalink: concepts/architecture/broker
type: components
redirect_from: architecture/broker
abstract: "Meshery broker component facilitates data streaming between kubernetes cluster components and outside world."
language: en
list: include
---

Broker is a custom Kubernetes controller that provides data streaming across independent components of Meshery whether those components are running inside or outside of the Kubernetes cluster.

### Broker FAQs

#### How many Brokers can run?
It is recommended to run one broker instance for each kubernetes cluster, However the instance itself can be scaled up based on the incoming data volume in each of the cluster. The scaling is independent of the number of instances running.

#### What does an HA configuration look like?
We leverage on the kubernetes functionality in terms of the High-Availability behaviour. Meaning, the broker instance gets instantiated/restarted on its own when an issue occurs. In part, Meshery-Operator is also responsible for keeping the broker functional.

#### What stateful characteristics does the Broker have?
All the messages that are published to the broker is persisted in-memory within the broker instance until it get consumed. Persistent-volume/Disk-space is not currently being used by the Broker.

#### How do I know if the Broker is working? How do I troubleshoot the Broker?
The Broker instance is deployed inside the kubernetes cluster as a `Statefulset`. In the case where the broker doesn't seem to work, here are a few steps to troubleshoot the instance:

- Make sure the pods corresponding to the `Statefulset` is up and running.
- Make sure the kubernetes cluster has support for kubernetes `Service` type `LoadBalancer` or `NodePort`.
- Ensure connectivity between the Meshery-Server and the Broker service endpoint.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ layout: default
title: Catalog
permalink: concepts/catalog
redirect_from: catalog
type: concepts
type: components
abstract: Browsing and using cloud native patterns
language: en
list: include
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
layout: default
title: Database
permalink: concepts/architecture/database
type: concepts
type: components
redirect_from: architecture/database
abstract: "Meshery offers support for internal caching with the help of file databases. This has been implemented with several libraries that supports different kinds of data formats."
language: en
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
layout: default
title: MeshSync
permalink: concepts/architecture/meshsync
type: concepts
type: components
redirect_from: architecture/meshsync
abstract: "Meshery offers support for Kubernetes cluster and cloud state synchronization with the help of MeshSync."
language: en
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
layout: default
title: Operator
permalink: concepts/architecture/operator
type: concepts
type: components
redirect_from: architecture/operator
abstract: "Meshery Operator controls and manages the lifecycle of components deployed inside a kubernetes cluster"
language: en
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
layout: default
title: Adapters
permalink: concepts/architecture/adapters
type: concepts
type: components
redirect_from: architecture/adapters
abstract: "Meshery offers support for more adapters than any other project or product in the world. Meshery uses adapters for managing the various cloud native infrastructure."
language: en
Expand Down
15 changes: 14 additions & 1 deletion docs/pages/concepts/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ Concepts for understanding Meshery's various features and components.

{% assign sorted_pages = site.pages | sort: "name" %}

<h2>Architectural Components</h2>
<ul>
{% for item in sorted_pages %}
{% if item.type=="concepts" and item.language=="en" -%}
{% if item.type=="components" and item.language=="en" -%}
<li><a href="{{ site.baseurl }}{{ item.url }}">{{ item.title }}</a>
{% if item.abstract != " " %}
- {{ item.abstract }}
Expand All @@ -23,3 +24,15 @@ Concepts for understanding Meshery's various features and components.
{% endfor %}
</ul>

<h2>Logical Concepts</h2>
<ul>
{% for item in sorted_pages %}
{% if item.type=="concepts" and item.language=="en" -%}
<li><a href="{{ site.baseurl }}{{ item.url }}">{{ item.title }}</a>
{% if item.abstract != " " %}
- {{ item.abstract }}
{% endif %}
</li>
{% endif %}
{% endfor %}
</ul>
25 changes: 25 additions & 0 deletions docs/pages/concepts/logical/designs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
layout: default
title: Designs
permalink: concepts/designs
type: concepts
abstract: "Meshery Designs are descriptive, declarative characterizations of how your Kubernetes infrastructure should be configured."
language: en
list: include
---


## Designs
Like a Google Doc, Designs are your primary tool for collaborative authorship of your infrastructure and services.

### Using Designs


### Design Relationships and Restrictions
- Access to Designs may be granted to one or more users.

### Controlling Access to Designs
When creating a new design by default it's visibility level will be set to __public__ unless you are an active Lara, five subscriber, in which case you can change this default to __private__.



19 changes: 19 additions & 0 deletions docs/pages/concepts/logical/environments.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
layout: default
title: Environments
permalink: concepts/environments
type: concepts
abstract: "Meshery offers support for Kubernetes cluster and cloud state synchronization with the help of MeshSync."
language: en
list: include
---


## Environments

Environments represent a collection of resources in the form of Connections - both of managed and unmanaged Connections. Environment resources are comprised of Connections (and implicitly those Connections' Credentials), which can be assigned and unassigned by Workspace Managers.

### Environment Relationships and Restrictions

- Environments can be assigned to zero or more Workspaces.
- Connections can be assigned to zero or more Environments.
28 changes: 28 additions & 0 deletions docs/pages/concepts/logical/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
layout: default
title: Concepts
permalink: concepts/logical
language: en
list: exclude
---

Concepts for understanding Meshery's various features and components.

{% assign sorted_pages = site.pages | sort: "name" %}

<h2>Logical Concepts</h2>
<ul>
{% for item in sorted_pages %}
{% if item.type=="concepts" and item.language=="en" -%}
<li><a href="{{ site.baseurl }}{{ item.url }}">{{ item.title }}</a>
{% if item.abstract != " " %}
- {{ item.abstract }}
{% endif %}
</li>
{% endif %}
{% endfor %}
</ul>

[![Meshery Extension Points]({{site.baseurl}}/assets/img/architecture/meshery_extension_points.svg)]({{site.baseurl}}/assets/img/architecture/meshery_extension_points.svg)

_Figure: Extension points available throughout Meshery_
File renamed without changes.
21 changes: 21 additions & 0 deletions docs/pages/concepts/logical/workspaces.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
layout: default
title: Workspaces
permalink: concepts/workspaces
type: concepts
abstract: "Meshery Workspaces act as central collaboration points for teams and their project work."
language: en
list: include
---

## Workspaces

Workspaces act as central collaboration points for teams and their project work. Often, users create a Workspace for each project or for each team as a way of organizing domains of project work to facilitate collaboration and provide access control over resources with a project. Workspaces are sometimes likened to the concept of a project - a collection of individuals responsible for the development and operation of an application or service.

### Using Workspaces
After creating a Workspace, of your next steps is to resource that Workspace. Like a shared drive (or or shared collection of files). Workspaces are your Google Drive, while Meshery Designs are your Google Docs.


### Workspace Relationships and Restrictions
- Access to Workspaces may be granted to one or more teams.
- As a point of collaboration to facilitate work, Workspaces may have zero or more Environments associated.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ require (
github.com/cockroachdb/apd/v2 v2.0.2 // indirect
github.com/containerd/cgroups v1.1.0 // indirect
github.com/containerd/containerd v1.6.19 // indirect
github.com/cyphar/filepath-securejoin v0.2.3 // indirect
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/deckarep/golang-set v1.8.0 // indirect
github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect
Expand Down
3 changes: 2 additions & 1 deletion go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -938,8 +938,9 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4=
github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI=
github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ=
github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s=
github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8=
Expand Down
26 changes: 26 additions & 0 deletions ui/assets/icons/coulmn.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import React from "react";
import { makeStyles } from "@material-ui/core/styles";


const useStyles = makeStyles((theme) => ({
icon : {
fill : theme.palette.secondary.iconMain
},
}));
const ColumnIcon = (props) => {
const classes = useStyles();
return (
<svg
className={classes.icon}
xmlns="http://www.w3.org/2000/svg"
height="24"
viewBox="0 -960 960 960"
width="24"
fill={props.fill}
>
<path d="M120-200v-560h213v560H120Zm253 0v-560h213v560H373Zm253 0v-560h213v560H626Z" />
</svg>
);
};

export default ColumnIcon;
19 changes: 19 additions & 0 deletions ui/assets/styles/general/tool.styles.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { makeStyles } from "@material-ui/core/styles";

const useStyles = makeStyles((theme) => ({
toolWrapper : {
marginBottom : "3rem",
display : "flex",
justifyContent : "space-between",
backgroundColor : theme.palette.type === 'dark' ? theme.palette.secondary.toolbarBg2 : theme.palette.secondary.toolbarBg1,
boxShadow : " 0px 2px 4px -1px rgba(0,0,0,0.2)",
height : "4rem",
padding : "0.68rem",
borderRadius : "0.5rem",
position : "relative",
zIndex : "1",
},
// Define other styles as needed
}));

export default useStyles;
5 changes: 3 additions & 2 deletions ui/components/CatalogFilter.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ function CatalogFilter({ catalogVisibility, handleCatalogVisibility, hideCatalog
{ !hideCatalog && // In application we don't have catalog, hence this check
<Button
style={{
marginBottom : '0.2rem',
alignItems : 'center'
// marginBottom : '0.2rem',
alignItems : 'center',
marginLeft : "-0.6rem"
}}
size="large"
onClick = {handleCatalogVisibility} variant="contained" color="primary">
Expand Down
Loading

0 comments on commit 485c67f

Please sign in to comment.