Skip to content
Permalink
Browse files

master version

  • Loading branch information...
Edward Roh Edward Roh
Edward Roh authored and Edward Roh committed Dec 6, 2018
2 parents 57fee5f + 8d2952f commit 060e3d4b26e1a1ffee487b6564826444d065aa37
Showing with 181 additions and 142 deletions.
  1. BIN .DS_Store
  2. +10 −0 .dockerignore
  3. +1 −1 Dockerfile
  4. +62 −0 README.md
  5. +0 −1 cypress.json
  6. +0 −5 cypress/fixtures/example.json
  7. +0 −16 cypress/integration/spekt8.js
  8. +0 −17 cypress/plugins/index.js
  9. +0 −25 cypress/support/commands.js
  10. +0 −20 cypress/support/index.js
  11. BIN dist/.DS_Store
  12. +0 −1 dist/_ionicons_svg_md-cog.svg
  13. +0 −1 dist/_ionicons_svg_md-construct.svg
  14. +0 −1 dist/_ionicons_svg_md-crop.svg
  15. +0 −1 dist/_ionicons_svg_md-git-network.svg
  16. +0 −14 dist/_ionicons_svg_md-git-network2.svg
  17. +0 −1 dist/dist/_ionicons_svg_md-wifi-f7019f64.svg
  18. 0 dist/{dist → images/src/client/images}/_ionicons_svg_logo-codepen-35e62a98.svg
  19. 0 ...nicons_svg_logo-codepen2.svg → images/src/client/images/_ionicons_svg_logo-codepen2-93a7134b.svg}
  20. 0 dist/{dist → images/src/client/images}/_ionicons_svg_md-aperture-a57edc94.svg
  21. 0 ...ionicons_svg_md-aperture2.svg → images/src/client/images/_ionicons_svg_md-aperture2-ee95b4e2.svg}
  22. 0 dist/{_ionicons_svg_md-crop2.svg → images/src/client/images/_ionicons_svg_md-crop2-2e9ba144.svg}
  23. 0 dist/{dist → images/src/client/images}/_ionicons_svg_md-wifi-7a488fed.svg
  24. 0 dist/{_ionicons_svg_md-wifi2.svg → images/src/client/images/_ionicons_svg_md-wifi2-725ba848.svg}
  25. BIN dist/images/{ → src/client/images}/k8slogo-fafac11f.png
  26. BIN dist/images/src/client/images/spekt8-logo-ecbc06d5.png
  27. +20 −20 dist/main.js
  28. BIN dist/src/client/images/k8slogo-fafac11f.png
  29. +0 −2 package.json
  30. 0 readme.md
  31. BIN spekt8-preview.gif
  32. +4 −0 src/client/app.js
  33. +5 −1 src/client/components/leftPanel.js
  34. +3 −3 src/client/components/legend.js
  35. 0 {dist → src/client/images}/_ionicons_svg_logo-codepen.svg
  36. +32 −0 src/client/images/_ionicons_svg_logo-codepen2.svg
  37. 0 {dist → src/client/images}/_ionicons_svg_md-aperture.svg
  38. +3 −3 dist/dist/_ionicons_svg_md-aperture-edc149be.svg → src/client/images/_ionicons_svg_md-aperture2.svg
  39. +10 −0 src/client/images/_ionicons_svg_md-crop2.svg
  40. 0 {dist → src/client/images}/_ionicons_svg_md-wifi.svg
  41. +15 −0 src/client/images/_ionicons_svg_md-wifi2.svg
  42. BIN src/client/images/spekt8-logo.png
  43. +13 −8 src/client/supplement/graphOptions.js
  44. +2 −0 src/server/express-app.js
  45. +1 −1 webpack.config.js
BIN +0 Bytes (100%) .DS_Store
Binary file not shown.
@@ -0,0 +1,10 @@
.gitignore
README.md
.DS_Store
k8sed
k8sgrider
Dockerfile
package-lock.json
node_modules
.dockerignore
LICENSE
@@ -7,7 +7,7 @@ WORKDIR /usr/src/app

# install app dependencies
COPY package*.json ./
RUN npm run build

RUN npm install

# bundle app source
@@ -0,0 +1,62 @@
# SPEKT<img width="30" alt="portfolio_view" src="https://github.com/spekt8/spekt8/blob/master/dist/images/src/client/images/spekt8-logo-ecbc06d5.png">

SPEKT8 is a new visualization tool for your Kubernetes clusters. It automatically builds logical topologies of your application and infrastructure, which enable your SRE and Ops team to intuitively understand, monitor, and control your containerized, microservices based application. Simply deploy our containerized application directly into your Kubernetes cluster.

<img src="https://github.com/spekt8/spekt8/blob/master/spekt8-preview.gif" width="600" height="300" />

When your app is running in Kubernetes, our visualization tool will display all the Pods, Services, and Ingresses that allow you to drill down on Kubernetes clusters. The information provided to you includes but is not limited to the following:
* Indicates the status of pods (blue for running, yellow for pending)
* Lists the specific container images running within pods
* Provides information on ingresses and services (Nodeport, load balancer, cluster-ip, persistent volume claims, persistent volumes, etc.)

While the current app does not directly visualize any controllers (such as Deployments, Daemon Sets, Replication Controllers) it does indirectly visualize them through their pods. We are continuously building more support for additional Kubernetes objects.

In addition to these views, nodes can be presented either in graphical or in table mode. The graphical mode is practical for obtaining a quick visual overview of your app, and its infrastructure and connections between all of the nodes. And when you switch to table mode, nodes are presented in a convenient list that displays the resources being consumed by processes, containers, and hosts.

## Deployment
These instructions presume you have a Kubernetes cluster already running.

An image of the application has been pushed to [Docker Hub](https://hub.docker.com/r/elliotxkim/spekt8/tags/) for those who would like to build the image directly from the public repository.

We are also providing a deployment file that you can apply directly to your Kubernetes cluster using the command line.

* kubectl apply -f [spekt8-deployment.yaml](https://raw.githubusercontent.com/spekt8/spekt8/master/spekt8-deployment.yaml)
* kubectl port-forward deployment/spekt8 3000:3000

Then, open your web browser to [http://localhost:3000](http://localhost:3000).

In addition, in order to allow reading resources of the API, you must configure a set of permissions. We have set up a YAML file using RBAC authorization which you can apply directly to your Kubernetes cluster using the command line:
* kubectl apply -f [fabric8-rbac.yaml](https://raw.githubusercontent.com/spekt8/spekt8/master/fabric8-rbac.yaml).

## How to Use

**Navigation**
* Use arrow keys for movement
* Use the ‘-’ or ‘+’ for zoom

**Legend**
* Use the switch icons next to the legend to filter based on Object Types

**Graph**
* Click on Pods/Services/Ingresses to see more detailed information about the selected Object

**View**
* Use the View dropdown to toggle between Graph and Table Views

## Built With
* [React](https://github.com/facebook/react)
* [Redux](https://github.com/reduxjs/redux)
* [React-Graph-Vis](https://github.com/crubier/react-graph-vis)
* [Jest](https://github.com/facebook/jest/)


## Authors
* **[Elliot Kim](https://www.linkedin.com/in/elliotjykim/)** - [@elliotxkim](https://github.com/elliotxkim)
* **[Edward Roh](https://www/linkedin.com/in/edwardroh)** - [@the3ddy](https://github.com/the3ddy)
* **[Camille Lambert](https://www.linkedin.com/in/camillelambert/)** - [@syntheticproduct](https://github.com/syntheticproduct)
* **[Miles Cole](https://www.linkedin.com/in/colemiles/)** - [@milescole](https://github.com/milescole)


## License

This project is licensed under the MIT License - see the [LICENSE.md](https://github.com/spekt8/spekt8/blob/master/LICENSE) file for details

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

BIN -6 KB dist/.DS_Store
Binary file not shown.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

File renamed without changes.
Binary file not shown.

Large diffs are not rendered by default.

Binary file not shown.
@@ -7,7 +7,6 @@
"start": "webpack-dev-server --mode development --open",
"build": "webpack --mode production",
"test": "jest --verbose --coverage --coverageReporters=text-summary",
"cypress": "cypress open",
"server": "nodemon src/server/server.js"
},
"author": "",
@@ -63,7 +62,6 @@
"babel-preset-react": "^6.24.1",
"chai": "^4.2.0",
"css-loader": "^1.0.0",
"cypress": "^3.1.1",
"enzyme": "^3.7.0",
"enzyme-adapter-react-16": "^1.7.0",
"enzyme-to-json": "^3.3.4",
No changes.
BIN +703 KB spekt8-preview.gif
Binary file not shown.
@@ -1,3 +1,7 @@
/**
* @description main app page
*/

import React from 'react';
import Graph from 'react-graph-vis';
import Modal from 'react-modal';
@@ -12,6 +12,9 @@ import ChevronLeftIcon from '@material-ui/icons/ChevronLeft';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
import Divider from '@material-ui/core/Divider';

// import image
import spekt8logo from '../images/spekt8-logo.png';

const LeftPanel = (props) => {
return (
<Drawer
@@ -24,7 +27,8 @@ const LeftPanel = (props) => {
>
<div className='leftheader'>
<div className={props.classes.drawerHeader}>
<div id="leftheadertitle" >S P E K T 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
<div id="leftheadertitle" >S P E K T &nbsp;</div>
<img src={spekt8logo} style={{ "height": "20px", "width": "20px"}} />
<IconButton id="handledrawerbutton" onClick={props.handleDrawerClose}>
{props.theme.direction === 'rtl' ? <ChevronRightIcon /> : <ChevronLeftIcon />}
</IconButton>
@@ -13,9 +13,9 @@ import purple from '@material-ui/core/colors/purple';


// image imports
import PodIcon from '../../../dist/_ionicons_svg_logo-codepen.svg';
import ServiceIcon from '../../../dist/_ionicons_svg_md-wifi.svg';
import IngressIcon from '../../../dist/_ionicons_svg_md-aperture.svg';
import PodIcon from '../images/_ionicons_svg_logo-codepen.svg';
import ServiceIcon from '../images/_ionicons_svg_md-wifi.svg';
import IngressIcon from '../images/_ionicons_svg_md-aperture.svg';

// redux
import { connect } from 'react-redux';
File renamed without changes.
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="1049.949px" height="1049.949px" viewBox="477.615 -22.385 1049.949 1049.949"
enable-background="new 477.615 -22.385 1049.949 1049.949" xml:space="preserve">
<g id="Layer_2">
<g id="Layer_3">
<rect x="702.5" y="204.5" fill="#FFFFFF" width="624.454" height="586.204"/>
</g>
</g>
<g id="Layer_1_1_">
<path d="M971.17,593.625c-29.926-20.229-60.043-40.174-89.965-60.41c-3.965-2.682-6.699-2.875-10.746-0.057l-75.92,51.082
c60.863,40.574,182.023,121.457,182.023,121.457V600.646C976.539,598.256,973.529,595.217,971.17,593.625L971.17,593.625z
M881.039,470.051c30.184-19.844,60.256-39.86,90.057-60.272c2.902-1.988,5.42-6.854,5.467-10.418V298.371
c0,0-121.157,80.32-182.151,120.979c26.758,17.89,52.092,34.986,77.709,51.646C874.111,472.291,878.752,471.553,881.039,470.051z
M1027.027,408.895c30.876,20.909,61.884,41.622,93.021,62.14c1.789,1.18,5.703,1.176,7.498,0l77.64-51.693l-181.748-121.52V402.02
C1023.457,404.365,1025.01,407.529,1027.027,408.895L1027.027,408.895z M1004.119,449.939c-2.363-1.566-7.053-1.031-9.264,0.327
c-9.408,5.785-18.482,12.115-27.664,18.271c-16.109,10.801-49.523,33.248-49.523,33.248l75.863,50.518
c3.414,2.261,8.664,2.384,12.227,0.218l76.199-50.769C1081.959,501.754,1015.396,457.416,1004.119,449.939L1004.119,449.939z
M775.391,463.117v77.361l57.855-38.746L775.391,463.117z"/>
<path d="M1000,62.5c-241.625,0-437.5,195.875-437.5,437.5S758.375,937.5,1000,937.5s437.5-195.875,437.5-437.5
S1241.625,62.5,1000,62.5z M1271.484,580.09c0,11.299-5.181,19.273-14.67,25.574c-80.368,53.352-160.634,106.86-240.793,160.523
c-11.435,7.651-21.824,7.331-33.173-0.269c-79.653-53.348-159.606-106.535-239.502-159.522
c-9.979-6.619-14.832-14.761-14.832-26.816V423.859c0-11.994,4.925-20.181,14.892-26.789
c79.895-52.988,160.037-106.178,239.695-159.523c11.362-7.609,21.668-7.826,33.081-0.186
c80.151,53.657,160.4,107.168,240.744,160.538c9.138,6.065,14.558,13.561,14.558,24.727V580.09z"/>
<path d="M1117.67,533.66c-29.407,19.958-58.956,39.706-88.645,59.242c-4.711,3.102-5.642,6.479-5.588,12.088v100.285
l181.717-121.103l-75.248-50.551C1125.326,530.49,1122.23,530.562,1117.67,533.66L1117.67,533.66z M1222.656,540.383v-77.375
l-57.793,38.814L1222.656,540.383z"/>
</g>
</svg>
File renamed without changes.
@@ -2,12 +2,12 @@
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="875px" height="875px" viewBox="562.5 62.5 875 875" enable-background="new 562.5 62.5 875 875" xml:space="preserve">
<path d="M1000,62.5c-241.625,0-437.5,195.875-437.5,437.5S758.375,937.5,1000,937.5s437.5-195.875,437.5-437.5
width="2000px" height="1000px" viewBox="0 0 2000 1000" enable-background="new 0 0 2000 1000" xml:space="preserve">
<path fill="#FFFFFF" d="M1000,62.5c-241.625,0-437.5,195.875-437.5,437.5S758.375,937.5,1000,937.5s437.5-195.875,437.5-437.5
S1241.625,62.5,1000,62.5z M1265.166,765.166C1194.336,835.992,1100.166,875,1000,875s-194.336-39.008-265.166-109.834
C664.008,694.336,625,600.166,625,500s39.008-194.336,109.834-265.166C805.664,164.008,899.834,125,1000,125
s194.336,39.008,265.166,109.834C1335.992,305.664,1375,399.834,1375,500S1335.992,694.336,1265.166,765.166z"/>
<path d="M890.709,207.162C811.352,236.793,747.283,297.752,713.527,375H1000L890.709,207.162z M1306.244,562.5
<path fill="#FFFFFF" d="M890.709,207.162C811.352,236.793,747.283,297.752,713.527,375H1000L890.709,207.162z M1306.244,562.5
c4.17-20.572,6.266-41.51,6.256-62.5c0-71.531-24.051-137.436-64.484-190.105L1107.422,562.5H1306.244z M1203.072,262.49
c-54.621-46.746-125.545-74.99-203.072-74.99c-15.559,0-30.848,1.154-45.797,3.35l152.93,246.65L1203.072,262.49z M693.758,437.5
c-4.171,20.571-6.268,41.51-6.258,62.5c0,71.561,24.07,137.488,64.533,190.168L892.578,437.5H693.758z M1109.295,792.836
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="812.5px" height="812.5px" viewBox="593.75 93.75 812.5 812.5" enable-background="new 593.75 93.75 812.5 812.5"
xml:space="preserve">
<path fill="#FFFFFF" d="M1187.5,610.742h73.828V312.5c0-40.625-33.203-73.828-73.828-73.828H889.258V312.5H1187.5V610.742z
M812.5,676.172V93.75h-73.828v144.922H593.75V312.5h144.922v363.672c0,40.625,33.203,73.828,73.828,73.828h375v156.25h73.828V750
h144.922v-73.828H812.5z"/>
</svg>
File renamed without changes.

0 comments on commit 060e3d4

Please sign in to comment.
You can’t perform that action at this time.