├── .gitignore ├── babel.config.json ├── .DS_Store ├── client ├── .DS_Store ├── src │ ├── .DS_Store │ ├── assets │ │ ├── arrow.png │ │ ├── ClickPod.gif │ │ ├── favicon.ico │ │ ├── k8sicon.png │ │ ├── Github_icon.png │ │ ├── hughcircle.png │ │ ├── headshots │ │ │ ├── cam.png │ │ │ ├── hugh.png │ │ │ ├── john.png │ │ │ ├── kola.png │ │ │ └── nick.png │ │ ├── AsclepiusLogoOld.png │ │ ├── populatedNodes.png │ │ ├── LinkedIn_icon.svg.png │ │ ├── connectionflowONLY.gif │ │ ├── password-visible-1.png │ │ └── FullhorizontalAsclepius.png │ ├── containers │ │ ├── .DS_Store │ │ ├── AsclepiusLogo.png │ │ ├── SideBarContainer.jsx │ │ ├── NodeMapContainer.jsx │ │ └── HeaderContainer.jsx │ ├── components │ │ ├── Cost.jsx │ │ ├── Prompt.jsx │ │ ├── prompt │ │ │ ├── KubectlInst.jsx │ │ │ ├── AzCLIInst.jsx │ │ │ ├── AwsCLIInst.jsx │ │ │ ├── LocalInst.jsx │ │ │ ├── AwsForm.jsx │ │ │ └── ConnnectCluster.jsx │ │ ├── Sidebarsection.jsx │ │ ├── Chart.jsx │ │ └── NodeMap.jsx │ ├── redux │ │ ├── store.js │ │ └── slices │ │ │ ├── nodeSlice.js │ │ │ └── userSlice.js │ └── App.jsx ├── index.js ├── index.html └── styles.scss ├── jest.config.js ├── dist ├── 2a3905e4d4786d742b06b9cfba58a3a9.png ├── index.html └── bundle.js.LICENSE.txt ├── server ├── types.ts ├── routes │ ├── awsRouter.ts │ ├── dataRouter.ts │ └── azRouter.ts ├── controllers │ ├── dataControllerNew.ts │ ├── awsController.ts │ ├── azController.ts │ └── dataController.ts └── server.ts ├── tsconfig.json ├── .github └── workflows │ └── testing.yml ├── LICENSE ├── __testing__ ├── backend.test.js └── frontend.test.js ├── webpack.config.js ├── package.json └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | package-lock.json 2 | node_modules -------------------------------------------------------------------------------- /babel.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-env"] 3 | } -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/.DS_Store -------------------------------------------------------------------------------- /client/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/.DS_Store -------------------------------------------------------------------------------- /client/src/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/.DS_Store -------------------------------------------------------------------------------- /client/src/assets/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/arrow.png -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | // module.exports = { 2 | // testEnvironment: 'node', 3 | // forceExit: true, 4 | // } 5 | -------------------------------------------------------------------------------- /client/src/assets/ClickPod.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/ClickPod.gif -------------------------------------------------------------------------------- /client/src/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/favicon.ico -------------------------------------------------------------------------------- /client/src/assets/k8sicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/k8sicon.png -------------------------------------------------------------------------------- /client/src/assets/Github_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/Github_icon.png -------------------------------------------------------------------------------- /client/src/assets/hughcircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/hughcircle.png -------------------------------------------------------------------------------- /client/src/containers/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/containers/.DS_Store -------------------------------------------------------------------------------- /client/src/assets/headshots/cam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/headshots/cam.png -------------------------------------------------------------------------------- /client/src/assets/AsclepiusLogoOld.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/AsclepiusLogoOld.png -------------------------------------------------------------------------------- /client/src/assets/headshots/hugh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/headshots/hugh.png -------------------------------------------------------------------------------- /client/src/assets/headshots/john.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/headshots/john.png -------------------------------------------------------------------------------- /client/src/assets/headshots/kola.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/headshots/kola.png -------------------------------------------------------------------------------- /client/src/assets/headshots/nick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/headshots/nick.png -------------------------------------------------------------------------------- /client/src/assets/populatedNodes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/populatedNodes.png -------------------------------------------------------------------------------- /client/src/assets/LinkedIn_icon.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/LinkedIn_icon.svg.png -------------------------------------------------------------------------------- /client/src/assets/connectionflowONLY.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/connectionflowONLY.gif -------------------------------------------------------------------------------- /client/src/assets/password-visible-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/password-visible-1.png -------------------------------------------------------------------------------- /client/src/containers/AsclepiusLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/containers/AsclepiusLogo.png -------------------------------------------------------------------------------- /dist/2a3905e4d4786d742b06b9cfba58a3a9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/dist/2a3905e4d4786d742b06b9cfba58a3a9.png -------------------------------------------------------------------------------- /client/src/assets/FullhorizontalAsclepius.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/Asclepius/HEAD/client/src/assets/FullhorizontalAsclepius.png -------------------------------------------------------------------------------- /client/src/components/Cost.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { useSelector } from "react-redux"; 3 | 4 | 5 | const Cost = () => { 6 | 7 | 8 | return ( 9 |
11 | To begin, install the Kubernetes command-line tool, kubectl, using one of the following methods: 12 |
13 |
14 |
15 | Linux:
16 | sudo apt-get update && sudo apt-get install -y kubectl
17 |
18 | MacOS:
19 | brew install kubectl
20 |
21 | Windows:
22 | Download the kubectl executable from here and add it to your system's PATH.
23 | Once you've installed kubectl, please click Reconnect Cluster.
24 |
25 |
26 |
29 |
15 |
16 | curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
17 |
18 |
19 |
23 |
24 | brew update && brew install azure-cli
25 |
26 |
27 |
31 |
32 | Download the MSI installer from{' '}
33 | here and follow the installation wizard.
34 |
35 |
36 |
11 |
12 | curl
13 | "https://d1vvhvl2y92vvt.cloudfront.net/awscli-exe-linux-x86_64.zip"
14 | -o "awscliv2.zip" && unzip awscliv2.zip && sudo ./aws/install
15 |
16 |
17 |
21 |
22 | curl "https://d1vvhvl2y92vvt.cloudfront.net/awscli-exe-macos.zip"
23 | -o "awscliv2.zip" && unzip awscliv2.zip && sudo ./aws/install
24 |
25 |
26 |
30 |
31 | Download the MSI installer from{" "}
32 | here and follow the
33 | installation wizard.
34 |
35 |
36 | 11 | Follow the steps below to set up a local Kubernetes cluster and 12 | configure the kubeconfig file: 13 |
14 |{/* Instructions for installing a local cluster */}
18 | {/* Instructions for starting the local cluster */}
22 |
26 |
27 | {/* Set kubectl context */}
28 | kubectl config set-context <context-name>
29 | --cluster=<cluster-name> --user=<user-name> kubectl
30 | config use-context <context-name>
31 |
32 |
33 | 36 | Adjust the context name, cluster name, and user name according to your 37 | local cluster configuration. These instructions assume you've already 38 | installed kubectl. 39 |
40 | 48 || Node Name: | 22 |23 | | 24 | {nodeName ? nodeName[3] : null} 25 | | 26 |
|---|
| CPU: | 36 |37 | | 38 | {' '} 39 | {data ? data.cpuPercentage : null} 40 | | 41 |
|---|
| CPU Cores: | 50 |51 | | 52 | {data ? data.cpuCores : null} 53 | | 54 |
|---|
| Memory: | 65 |66 | | 67 | {data ? data.memPercentage : null} 68 | | 69 |
|---|
| Memory Bytes: | 78 |79 | | 80 | {data ? data.memBytes : null} 81 | | 82 |
|---|
{message}
} 169 |
7 |
8 |
9 |
10 |
11 | Asclepius is an open-source K8s node health monitoring service for local or cloud-deployed K8s clusters. Asclepius delivers a simplified dashboard of each K8s node’s health at a glance, with the option to select nodes and display the contained pod list with kubelet supplied data metrics. The Asclepius dashboard updates in near real time to ensure that as soon as any nodes show signs of going down, you and your team can respond accordingly.
35 |To get started with Asclepius, clone it onto your machine. After you've cloned the repository into the folder of your choice run:
38 |npm install
39 | After installing the required dependencies, you should be able to run the command:
40 |npm start
41 | This command will spin up the app and open a new page in your default browser; accessing "localhost:8080", where you should now see the Asclepius home page!
42 |Once Asclepius is running in your browser, you have access to a button: "Render Node Map". From here, Asclepius makes it easy to connect either your local or cloud hosted cluster. Please follow the prompts and Asclepius will properly install required CLIs and apply any necessary configurations for you. 43 |
44 |
45 |
46 | Asclepius was created to make the user experience of visualizing node health as seamless and abstracted as possible. We accomplish this by guiding you through a series of prompts designed to successfully add a Kubernetes config file to your local machine. Asclepius currently supports local and cloud-hosted Kubernetes deployments. If you are using a cloud platform not supported by Asclepius, please research the necessary steps to get a config file on your system. After this is accomplished, you should also be able to visualize your cluster health using the "Render Node Map" button.
49 |Asclepius interacts with your local terminal through a Node.js method called "spawnSync". As the user works through the series of prompts and checks on the client side, we call spawnSync for a variety of functionality including: version checks, login authentication, configuration and kubectl metric retrieval queries.
51 | 52 |56 |
Asclepius was created by a development team under the OS-Labs open source tech accelerator.
65 |
69 |
77 |
80 |
88 |
90 |
98 |
102 |
110 |
112 |
120 |