area(Getting Started): 📝 Added all the sections and sub sections in Getting Started 📝 (#60)
* area(Getting Started): 📝 Added all the sections and sub sections in Getting Started 📝 Signed-off-by: Sayan Mondal <sayan@chaosnative.com>
This commit is contained in:
parent
228b1b8498
commit
e4d7b07bf0
|
|
@ -55,6 +55,7 @@ ArgoCD
|
|||
argoproj
|
||||
argowf
|
||||
args
|
||||
atleast
|
||||
AUT
|
||||
auth
|
||||
AUTH
|
||||
|
|
@ -696,6 +697,7 @@ workflowtemplates
|
|||
xcvc
|
||||
wp
|
||||
yaml
|
||||
YAMLs
|
||||
yml
|
||||
zk
|
||||
Zokeeper
|
||||
|
|
@ -707,6 +709,7 @@ Worklfow
|
|||
LitmusPortal
|
||||
abc
|
||||
litmusctl
|
||||
LitmusCTL
|
||||
subcommand
|
||||
Litmusctl
|
||||
gz
|
||||
|
|
|
|||
|
|
@ -1,33 +0,0 @@
|
|||
---
|
||||
id: getstarted
|
||||
title: Getting Started with Litmus
|
||||
sidebar_label: Pre-requisites
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## Pre-requisites
|
||||
|
||||
- Kubernetes 1.15 or later.
|
||||
|
||||
- Persistent volume of 20GB
|
||||
|
||||
Recommend to have a Persistent volume(PV) of 20GB, You can start with 1GB for test purposes as well. This PV is used as persistent storage to store the chaos config and chaos-metrics in the Portal. By default, litmus install would use the default storage class to allocate the PV. Provide this value
|
||||
|
||||
- Helm3 or Kubectl
|
||||
|
||||
## Getting Started
|
||||
|
||||
Running chaos on your application involves the following steps:
|
||||
|
||||
[Install Litmus](litmus-install-cluster-mode)
|
||||
|
||||
[How to Create and Run a Workflow](create-workflow)
|
||||
|
||||
[Observe ChaosResults](observe-workflow)
|
||||
|
||||
<hr/>
|
||||
|
||||
## Join our community
|
||||
|
||||
If you have not joined our community, do join us [here](https://app.slack.com/client/T09NY5SBT/CNXNB0ZTN).
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
id: agents
|
||||
title: Agents
|
||||
sidebar_label: Agents
|
||||
---
|
||||
|
||||
An Agent in Litmus is nothing but the target cluster where Chaos would be injected via Litmus. There should always be atleast one or more than one Agents connected to the Litmus Control Plane. Each individual Agent can be chosen to be the Target Agent for Chaos Injection.
|
||||
|
||||
## Types of Agent
|
||||
|
||||
In Litmus the Agents can be classified into two types
|
||||
|
||||
- <span style={{color: '#5B44BA'}}><b>Self Agent</b></span>
|
||||
- <span style={{color: '#5B44BA'}}><b>External Agent</b></span>
|
||||
|
||||
As part of the Litmus installation, a Self Agent would be registered as a default Agent in the Control Plane. The same cluster where Litmus is installed is chosen as the Self Agent by the installer. From the Control Plane you can now induce chaos into this Self Agent and observe the results.
|
||||
|
||||
Since the Chaos Control Plane is Cross Cloud, you can connect multiple external Kubernetes agents to the same with the help of the command line utility <span style={{color: '#5B44BA'}}><b>litmusctl</b></span>. Once connected you can manage, monitor, observe and induce chaos from the Control Plane to the respective agent.
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
id: basic-requirements
|
||||
title: Prerequisites
|
||||
sidebar_label: Basic Requirements
|
||||
---
|
||||
|
||||
Before deploying LitmusChaos, make sure the following items are there
|
||||
|
||||
- Kubernetes 1.15 or later
|
||||
|
||||
- A Persistent volume of 20GB
|
||||
|
||||
>Recommend to have a Persistent volume(PV) of 20GB, You can start with 1GB for test purposes as well. This PV is used as persistent storage to store the chaos config and chaos-metrics in the Portal. By default, litmus install would use the default storage class to allocate the PV. Provide this value
|
||||
|
||||
- [Helm3](https://v3.helm.sh/) or [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
id: agent-install
|
||||
title: Agent Installation
|
||||
sidebar_label: Agent Install
|
||||
---
|
||||
|
||||
## Coming Soon
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
id: chaos-control-plane
|
||||
title: Chaos Control Plane
|
||||
sidebar_label: Chaos Control Plane
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
The <span style={{color: '#5B44BA'}}>**Chaos Control Plane**</span> is a single source of truth to control all the different Chaos Activities happening around Litmus. From the Control Plane you get the freedom to manage every single part of Litmus and shape your workflows exactly the way you want it.
|
||||
|
||||
The **Control Plane comes pre-packaged** as a part of LitmusChaos installation and can be easily accessed via <span style={{color: '#5B44BA'}}>Ingress, NodePort</span> or <span style={{color: '#5B44BA'}}>LoadBalancer</span>. Since Litmus has Cross-Cloud support, you get seamless access to the Plane irrespective of where you deploy it.
|
||||
|
||||
>[Get a broader view of which Platforms are supported by Litmus](https://github.com/litmuschaos/litmus/tree/master/litmus-portal#platforms-support)
|
||||
|
||||
The Chaos Control Plane gives you access to a plethora of features, the major ones include
|
||||
- Workflow Creation
|
||||
<span style={{color: '#909191'}}>
|
||||
<ul>
|
||||
<li>From Templates, Custom Workflows from Scratch (using ChaosHubs), From pre-created YAMLs</li>
|
||||
<li>Chaos Experiments Sequence Control (Parallel as well as Sequential steps creation)</li>
|
||||
<li>Creation of either Singular or Cron Workflows as Schedules</li>
|
||||
<li>Attaching priority to Chaos Experiments based on your use cases</li>
|
||||
</ul>
|
||||
</span>
|
||||
- Users & Teams
|
||||
<span style={{color: '#909191'}}>
|
||||
<ul>
|
||||
<li>Creation of Users with Role Based Access Control</li>
|
||||
<li>Creating a Team of multiple Users</li>
|
||||
<li>Authenticating Users</li>
|
||||
</ul>
|
||||
</span>
|
||||
- Monitoring & Observability
|
||||
<span style={{color: '#909191'}}>
|
||||
<ul>
|
||||
<li>Connect a Data Source (from any Agent) and monitor workflows</li>
|
||||
<li>Visualize workflow run statistics and aggregated schedules</li>
|
||||
<li>Compare two or more Workflows</li>
|
||||
<li>Upload shared/downloadable dashboards available in the community</li>
|
||||
<li>Edit queries, Tune dashboards to create a custom one from scratch</li>
|
||||
<li>Monitor effect of chaos in real time with interleaved events and metrics from Prometheus Datasource</li>
|
||||
</ul>
|
||||
</span>
|
||||
- Workflow Management
|
||||
<span style={{color: '#909191'}}>
|
||||
<ul>
|
||||
<li>Rolling out automated changes using GitOps</li>
|
||||
<li>Allowing image addition from custom image server (both public and private)</li>
|
||||
<li>Measure and Analyse the Resilience Score of each workflow</li>
|
||||
</ul>
|
||||
</span>
|
||||
|
|
@ -0,0 +1,166 @@
|
|||
---
|
||||
id: cluster-scope-installation
|
||||
title: Litmus Cluster Scope Installation
|
||||
sidebar_label: Cluster Scope
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before deploying LitmusChaos, make sure the [prerequisites](basic-requirements) are met.
|
||||
|
||||
## Installation
|
||||
|
||||
Installation of Litmus can be done using either of the below methods
|
||||
|
||||
- [Helm3](#install-litmus-using-helm) chart
|
||||
- [Kubectl](#install-litmus-using-kubectl) yaml spec file
|
||||
|
||||
### Install Litmus using Helm
|
||||
|
||||
The helm chart will install all the required service account configuration and chaos control plane.
|
||||
|
||||
The following steps will help you install litmus via helm.
|
||||
|
||||
#### Step-1: Add the litmus helm repository
|
||||
|
||||
```bash
|
||||
helm repo add litmuschaos https://litmuschaos.github.io/litmus-helm/
|
||||
helm repo list
|
||||
```
|
||||
|
||||
#### Step-2: Create the namespace on which you want to install Litmus
|
||||
|
||||
- The litmus infra components will be placed in this namespace.
|
||||
|
||||
> The chaos control plane can be placed in any namespace, in this case we are using `litmus` as the namespace of our choice.
|
||||
|
||||
```bash
|
||||
kubectl create ns <LITMUS_PORTAL_NAMESPACE>
|
||||
```
|
||||
|
||||
#### Step-3: Install the litmus chaos control plane
|
||||
|
||||
```bash
|
||||
helm install chaos litmuschaos/litmus-2-0-0-beta --namespace=<LITMUS_PORTAL_NAMESPACE> --devel
|
||||
```
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
||||
```
|
||||
NAME: chaos
|
||||
LAST DEPLOYED: Tue Jun 15 19:20:09 2021
|
||||
NAMESPACE: <LITMUS_PORTAL_NAMESPACE>
|
||||
STATUS: deployed
|
||||
REVISION: 1
|
||||
TEST SUITE: None
|
||||
NOTES:
|
||||
Thank you for installing litmus-2-0-0-beta 😀
|
||||
|
||||
Your release is named chaos and its installed to namespace: litmus.
|
||||
|
||||
Visit https://docs.litmuschaos.io/docs/getstarted/ to find more info.
|
||||
```
|
||||
|
||||
> **Note:** Litmus uses Kubernetes CRDs to define chaos intent. Helm3 handles CRDs better than Helm2. Before you start running a chaos experiment, verify if Litmus is installed correctly.
|
||||
|
||||
### **Install Litmus using kubectl **
|
||||
|
||||
#### **Create the namespace on which you want to install Litmus**
|
||||
|
||||
```bash
|
||||
kubectl create ns <LITMUS_PORTAL_NAMESPACE>
|
||||
```
|
||||
|
||||
#### **Install Litmus**
|
||||
|
||||
Applying the manifest file will install all the required service account configuration and chaos control plane.
|
||||
|
||||
```bash
|
||||
kubectl apply -f https://litmuschaos.github.io/litmus/2.0.0-Beta/litmus-2.0.0-Beta.yaml -n <LITMUS_PORTAL_NAMESPACE>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## **Verify your installation**
|
||||
|
||||
**Verify if the frontend, server, and database pods are running**
|
||||
|
||||
- Check the pods in the namespace where you installed Litmus:
|
||||
|
||||
```bash
|
||||
kubectl get pods -n <LITMUS_PORTAL_NAMESPACE>
|
||||
```
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
||||
```bash
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
litmusportal-frontend-97c8bf86b-mx89w 1/1 Running 2 6m24s
|
||||
litmusportal-server-5cfbfc88cc-m6c5j 2/2 Running 2 6m19s
|
||||
mongo-0 1/1 Running 0 6m16s
|
||||
```
|
||||
|
||||
- Check the services running in the namespace where you installed Litmus:
|
||||
|
||||
```bash
|
||||
kubectl get svc -n <LITMUS_PORTAL_NAMESPACE>
|
||||
```
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
||||
```bash
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
litmusportal-frontend-service NodePort 10.100.105.154 <none> 9091:30229/TCP 7m14s
|
||||
litmusportal-server-service NodePort 10.100.150.175 <none> 9002:30479/TCP,9003:31949/TCP 7m8s
|
||||
mongo-service ClusterIP 10.100.226.179 <none> 27017/TCP 7m6s
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
#### Videos
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/rOrKegj5ePI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
|
||||
#### Blogs
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="https://dev.to/litmus-chaos/getting-started-with-litmus-2-0-in-google-kubernetes-engine-4obf">
|
||||
<img width={300} src="https://res.cloudinary.com/practicaldev/image/fetch/s--zqwPPulX--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vklusi3v61g28ospmpck.png" />
|
||||
<br />
|
||||
<div style={{width: "300px"}}>
|
||||
Getting Started with Litmus 2.0 in Google Kubernetes Engine
|
||||
</div>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://dev.to/avaakash/getting-started-with-litmus-2-0-in-azure-kubernetes-service-13f3">
|
||||
<img width={300} src="https://res.cloudinary.com/practicaldev/image/fetch/s--2AubMs-V--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8c9oa4s10q3zbj9ew7eu.png" />
|
||||
<br />
|
||||
<div style={{width: "300px"}}>
|
||||
Getting Started with LitmusChaos 2.0 in Azure Kubernetes Service
|
||||
</div>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="https://blog.mayadata.io/get-started-with-litmuschaos-in-minutes">
|
||||
<img width={300} src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fmma.prnewswire.com%2Fmedia%2F736824%2FMayaData_Logo.jpg%3Fp%3Dtwitter&f=1&nofb=1" />
|
||||
<br />
|
||||
<div style={{width: "300px"}}>
|
||||
Get Started with LitmusChaos in Minutes
|
||||
</div>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## Learn More
|
||||
|
||||
- [Install Litmus in Namespace Scope](namespace-scope-installation)
|
||||
- [Setup Endpoints and Access Litmus without Ingress](setup-without-ingress)
|
||||
- [Setup Endpoints and Access Litmus with Ingress](setup-with-ingress)
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
id: learning-litmus
|
||||
title: Various Ways of Learning Litmus
|
||||
sidebar_label: Learning Litmus
|
||||
---
|
||||
|
||||
## Coming Soon
|
||||
|
|
@ -1,29 +1,20 @@
|
|||
---
|
||||
id: agent-install
|
||||
title: Litmus Chaos Agent Install
|
||||
sidebar_label: Chaos Agent
|
||||
id: litmusctl
|
||||
title: LitmusCTL
|
||||
sidebar_label: LitmusCTL
|
||||
---
|
||||
|
||||
In Litmus the Agents can be classified as two types
|
||||
|
||||
- Self Agent
|
||||
- External Agent
|
||||
|
||||
As part of Litmus installation by default, a self cluster would be registered as Agent in the Portal. From Portal you induce chaos into self cluster and observe the results from the Portal.
|
||||
|
||||
As you are aware by now, Portal is a Cross Cloud Chaos Control plane. That is you can connect multiple external kubernetes agents to this portal. Once connected you can manage the chaos from the Portal that is you can induce chaos into this agent from the Portal and observe the results from the Portal. Using the command line utility _litmusctl_ you can connect the external agents to the Portal.
|
||||
|
||||
# Litmusctl
|
||||
## Litmusctl
|
||||
|
||||
Litmusctl is a command line interface to manage LitmusPortal services.
|
||||
|
||||
## Requirements
|
||||
### Requirements
|
||||
|
||||
The litmusctl CLI requires the following things:
|
||||
|
||||
- Kubeconfig - litmusctl needs the kubeconfig of the k8s cluster where we need to connect litmus agents. The CLI currently uses the default path of kubeconfig i.e. `~/.kube/config`.
|
||||
|
||||
## Installation
|
||||
### Installation
|
||||
|
||||
To install the latest version of litmusctl follow the below steps:
|
||||
|
||||
|
|
@ -77,7 +68,7 @@ chmod +x litmusctl
|
|||
sudo mv litmusctl /usr/local/bin/litmusctl
|
||||
```
|
||||
|
||||
## Basic Commands
|
||||
### Basic Commands
|
||||
|
||||
litmusctl CLI command has the following structure:
|
||||
|
||||
|
|
@ -91,7 +82,7 @@ To get the version of the litmusctl CLI:
|
|||
litmusctl version
|
||||
```
|
||||
|
||||
### Connecting an agent
|
||||
#### Connecting an agent
|
||||
|
||||
To connect Litmus Chaos agent:
|
||||
|
||||
|
|
@ -102,9 +93,10 @@ litmusctl agent connect
|
|||
Next, you need to enter LitmusPortal details to login into your LitmusPortal account. Fields to be filled in:
|
||||
|
||||
**LitmusPortal UI URL:** Enter the URL used to access the Litmus Portal UI.
|
||||
Example, http://172.17.0.2:31696/
|
||||
|
||||
**Username:** Enter your LitmusPortal username.
|
||||
> For Example `http://172.17.0.2:31696/`
|
||||
|
||||
**Username:** Enter your LitmusPortal username.<br />
|
||||
**Password:** Enter your LitmusPortal password.
|
||||
|
||||
```bash
|
||||
|
|
@ -144,7 +136,6 @@ Next, select the installation mode. In case the selected mode was a Cluster ther
|
|||
|
||||
Next, enter the details of the new agent.
|
||||
|
||||
Fields to filled in:
|
||||
**Agent Name:** Enter the name for the new agent.
|
||||
|
||||
**Agent Description:** Fill in details about the agent.
|
||||
|
|
@ -1,29 +1,23 @@
|
|||
---
|
||||
id: litmus-install-namespace-mode
|
||||
title: Litmus Chaos Control Plane (Namespace Mode)
|
||||
sidebar_label: Control Plane (Namespace Mode)
|
||||
id: namespace-scope-installation
|
||||
title: Litmus Namespace Scope Installation
|
||||
sidebar_label: Namespace Scope
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/rOrKegj5ePI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
## Prerequisites
|
||||
|
||||
## Pre-requisites
|
||||
|
||||
- Kubernetes 1.15 or later.
|
||||
|
||||
- Recommend to have a Persistent volume(PV) of 20GB, You can start with 1GB for test purposes as well. This PV is used as persistent storage to store the chaos config and chaos-metrics in the Portal. By default, litmus would use the default storage class to allocate the PV.
|
||||
|
||||
- Helm3 or Kubectl
|
||||
Before deploying LitmusChaos, make sure the [prerequisites](basic-requirements) are met.
|
||||
|
||||
## Installation
|
||||
|
||||
Installation of Litmus can be done using either of the below methods
|
||||
|
||||
- [Helm3](#helm_install) chart or
|
||||
- [Kubectl](#kubectl_install) yaml spec file
|
||||
- [Helm3](#install-litmus-using-helm) chart
|
||||
- [Kubectl](#install-litmus-using-kubectl) yaml spec file
|
||||
|
||||
### <a name="kubectl_install"> </a>**Install Litmus using Helm **
|
||||
### **Install Litmus using Helm **
|
||||
|
||||
The helm chart will install all the required service account configuration and chaos control plane.
|
||||
|
||||
|
|
@ -36,20 +30,41 @@ helm repo add litmuschaos https://litmuschaos.github.io/litmus-helm/
|
|||
helm repo list
|
||||
```
|
||||
|
||||
#### Step-2: Create the litmus namespace
|
||||
#### Step-2: Create the namespace on which you want to install Litmus <span style={{color: '#909191'}}><b>[Required only if namespace isn't there]</b></span>
|
||||
|
||||
- The litmus infra components will be placed in this namespace.
|
||||
|
||||
**Note**: The chaos control plane can be placed in any namespace, though it is typically placed in "litmus".
|
||||
The Litmus infra components will be placed in this namespace.
|
||||
|
||||
```bash
|
||||
kubectl create ns litmus
|
||||
kubectl create ns <LITMUS_PORTAL_NAMESPACE>
|
||||
```
|
||||
|
||||
#### Step-3: Install the litmus chaos control plane
|
||||
> The chaos control plane can be placed in any namespace, though it is typically placed in `litmus`. Ignore if you already have the namespace where you want to install Litmus created.
|
||||
|
||||
#### Step-3: Install the required Litmus CRDs
|
||||
|
||||
The cluster-admin or an equivalent user with the right permissions are required to install the CRDs upfront.
|
||||
|
||||
```bash
|
||||
helm install chaos litmuschaos/litmus-2-0-0-beta --namespace=litmus --devel --set portalScope=namespace
|
||||
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/master/litmus-portal/litmus-portal-crds.yml
|
||||
```
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
||||
```bash
|
||||
customresourcedefinition.apiextensions.k8s.io/clusterworkflowtemplates.argoproj.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/cronworkflows.argoproj.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/workflows.argoproj.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/workflowtemplates.argoproj.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/chaosengines.litmuschaos.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/chaosexperiments.litmuschaos.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/chaosresults.litmuschaos.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/eventtrackerpolicies.eventtracker.litmuschaos.io created
|
||||
```
|
||||
|
||||
#### Step-4: Install the litmus chaos control plane
|
||||
|
||||
```bash
|
||||
helm install chaos litmuschaos/litmus-2-0-0-beta --namespace=<LITMUS_PORTAL_NAMESPACE> --devel --set portalScope=namespace
|
||||
```
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
|
@ -57,14 +72,14 @@ helm install chaos litmuschaos/litmus-2-0-0-beta --namespace=litmus --devel --se
|
|||
```bash
|
||||
NAME: chaos
|
||||
LAST DEPLOYED: Tue Jun 15 19:20:09 2021
|
||||
NAMESPACE: litmus
|
||||
NAMESPACE: <LITMUS_PORTAL_NAMESPACE>
|
||||
STATUS: deployed
|
||||
REVISION: 1
|
||||
TEST SUITE: None
|
||||
NOTES:
|
||||
Thank you for installing litmus-2-0-0-beta 😀
|
||||
|
||||
Your release is named chaos and its installed to namespace: litmus.
|
||||
Your release is named chaos and its installed to namespace: <LITMUS_PORTAL_NAMESPACE>.
|
||||
|
||||
Visit https://docs.litmuschaos.io/docs/getstarted/ to find more info.
|
||||
|
||||
|
|
@ -72,40 +87,27 @@ Visit https://docs.litmuschaos.io/docs/getstarted/ to find more info.
|
|||
|
||||
> **Note:** Litmus uses Kubernetes CRDs to define chaos intent. Helm3 handles CRDs better than Helm2. Before you start running a chaos experiment, verify if Litmus is installed correctly.
|
||||
|
||||
- The cluster-admin or an equivalent user with the right permissions are required to install them CRDs upfront. To apply LitmusCRDs:
|
||||
### **Install Litmus using kubectl **
|
||||
|
||||
```bash
|
||||
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/master/litmus-portal/litmus-portal-crds.yml
|
||||
```
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
||||
```bash
|
||||
customresourcedefinition.apiextensions.k8s.io/clusterworkflowtemplates.argoproj.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/cronworkflows.argoproj.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/workflows.argoproj.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/workflowtemplates.argoproj.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/chaosengines.litmuschaos.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/chaosexperiments.litmuschaos.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/chaosresults.litmuschaos.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/eventtrackerpolicies.eventtracker.litmuschaos.io created
|
||||
```
|
||||
|
||||
### <a name="kubectl_install"> </a>**Install Litmus using kubectl **
|
||||
|
||||
#### **Install Litmus**
|
||||
|
||||
- Set the namespace on which you want to install litmus.
|
||||
#### **Set the namespace on which you want to install Litmus**
|
||||
|
||||
```bash
|
||||
export LITMUS_PORTAL_NAMESPACE="<namespace>"
|
||||
kubectl get ns ${LITMUS_PORTAL_NAMESPACE}
|
||||
# If the namespace is not already present
|
||||
# then create the target namespace
|
||||
kubectl create ns ${LITMUS_PORTAL_NAMESPACE}
|
||||
```
|
||||
|
||||
- The cluster-admin or an equivalent user with the right permissions are required to install them CRDs upfront. To apply LitmusCRDs:
|
||||
> If the namespace is not already present then create the target namespace `kubectl create ns ${LITMUS_PORTAL_NAMESPACE}` or `kubectl create ns <Your Namespace>`
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
||||
```bash
|
||||
NAME STATUS AGE
|
||||
<LITMUS_PORTAL_NAMESPACE> Active 79m
|
||||
```
|
||||
|
||||
#### **Install the required Litmus CRDs**
|
||||
|
||||
The cluster-admin or an equivalent user with the right permissions are required to install the CRDs upfront.
|
||||
|
||||
```bash
|
||||
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/master/litmus-portal/litmus-portal-crds.yml
|
||||
|
|
@ -124,16 +126,19 @@ customresourcedefinition.apiextensions.k8s.io/chaosresults.litmuschaos.io create
|
|||
customresourcedefinition.apiextensions.k8s.io/eventtrackerpolicies.eventtracker.litmuschaos.io created
|
||||
```
|
||||
|
||||
- Replace namespace with the target namespace.
|
||||
#### **Install Litmus**
|
||||
|
||||
Applying the manifest file will install all the required service account configuration and chaos control plane.
|
||||
|
||||
```bash
|
||||
export LITMUS_PORTAL_NAMESPACE="<namespace>"
|
||||
curl https://raw.githubusercontent.com/litmuschaos/litmus/master/docs/2.0.0-Beta/litmus-namespaced-2.0.0-Beta.yaml --output litmus-portal-namespaced-K8s-template.yml
|
||||
envsubst < litmus-portal-namespaced-K8s-template.yml >
|
||||
${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml
|
||||
kubectl apply -f ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml -n ${LITMUS_PORTAL_NAMESPACE}
|
||||
```
|
||||
|
||||
> You need to export the namespace in order for the above step to work `export LITMUS_PORTAL_NAMESPACE="<namespace>"`. Ignore if already done in the first step.
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
||||
```bash
|
||||
|
|
@ -149,18 +154,20 @@ statefulset.apps/mongo created
|
|||
service/mongo-service created
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## **Verify your installation**
|
||||
|
||||
**Verify if the frontend, server, and database pods are running**
|
||||
|
||||
- Check the pods in litmus namespace:
|
||||
- Check the pods in the namespace where you installed Litmus:
|
||||
|
||||
```bash
|
||||
kubectl get pods -n litmus
|
||||
kubectl get pods -n <LITMUS_PORTAL_NAMESPACE>
|
||||
```
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
||||
|
||||
```bash
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
litmusportal-frontend-97c8bf86b-mx89w 1/1 Running 2 6m24s
|
||||
|
|
@ -168,10 +175,10 @@ service/mongo-service created
|
|||
mongo-0 1/1 Running 0 6m16s
|
||||
```
|
||||
|
||||
- Check the services running in litmus namespace:
|
||||
- Check the services running in the namespace where you installed Litmus:
|
||||
|
||||
```bash
|
||||
kubectl get svc -n litmus
|
||||
kubectl get svc -n <LITMUS_PORTAL_NAMESPACE>
|
||||
```
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
|
@ -183,44 +190,50 @@ service/mongo-service created
|
|||
mongo-service ClusterIP 10.100.226.179 <none> 27017/TCP 7m6s
|
||||
```
|
||||
|
||||
<br />
|
||||
## Resources
|
||||
|
||||
## **Setup the Portal**
|
||||
#### Videos
|
||||
|
||||
To setup and login to Litmus Portal expand the available services just created and copy the `PORT` of the `litmusportal-frontend-service` service
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/rOrKegj5ePI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
|
||||
```bash
|
||||
kubectl get svc -n litmus
|
||||
```
|
||||
#### Blogs
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="https://dev.to/litmus-chaos/getting-started-with-litmus-2-0-in-google-kubernetes-engine-4obf">
|
||||
<img width={300} src="https://res.cloudinary.com/practicaldev/image/fetch/s--zqwPPulX--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vklusi3v61g28ospmpck.png" />
|
||||
<br />
|
||||
<div style={{width: "300px"}}>
|
||||
Getting Started with Litmus 2.0 in Google Kubernetes Engine
|
||||
</div>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://dev.to/avaakash/getting-started-with-litmus-2-0-in-azure-kubernetes-service-13f3">
|
||||
<img width={300} src="https://res.cloudinary.com/practicaldev/image/fetch/s--2AubMs-V--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8c9oa4s10q3zbj9ew7eu.png" />
|
||||
<br />
|
||||
<div style={{width: "300px"}}>
|
||||
Getting Started with LitmusChaos 2.0 in Azure Kubernetes Service
|
||||
</div>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="https://blog.mayadata.io/get-started-with-litmuschaos-in-minutes">
|
||||
<img width={300} src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fmma.prnewswire.com%2Fmedia%2F736824%2FMayaData_Logo.jpg%3Fp%3Dtwitter&f=1&nofb=1" />
|
||||
<br />
|
||||
<div style={{width: "300px"}}>
|
||||
Get Started with LitmusChaos in Minutes
|
||||
</div>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
```bash
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
chaos-litmus-portal-mongo ClusterIP 10.104.107.117 <none> 27017/TCP 2m
|
||||
litmusportal-frontend-service NodePort 10.101.81.70 <none> 9091:30385/TCP 2m
|
||||
litmusportal-server-service NodePort 10.108.151.79 <none> 9002:32456/TCP,9003:31160/TCP 2m
|
||||
```
|
||||
## Learn More
|
||||
|
||||
> **Note**: In this case, the PORT for `litmusportal-frontend-service` is `30385`. Yours will be different.
|
||||
|
||||
### **Accessing the Portal**
|
||||
|
||||
Once you have the PORT copied in your clipboard, simply use your NodeIP and PORT in this manner `<NodeIP>:<PORT>` to access the portal.
|
||||
|
||||
For example:
|
||||
|
||||
```yaml
|
||||
http://172.17.0.3:30385/
|
||||
```
|
||||
|
||||
> Where `172.17.0.3` is my NodeIP and `30385` is the frontend service PORT. You can also use a LoadBalancer if not NodePort, the only change would be to provide a `<LoadBalancerIP>:<PORT>`
|
||||
|
||||
You should be able to see the Login Page of Litmus. The **default credentials** are
|
||||
|
||||
```yaml
|
||||
Username: admin
|
||||
Password: litmus
|
||||
```
|
||||
|
||||
<img src={require('./assets/login.png').default} width="800" />
|
||||
- [Install Litmus in Namespace Scope](namespace-scope-installation)
|
||||
- [Setup Endpoints and Access Litmus without Ingress](setup-without-ingress)
|
||||
- [Setup Endpoints and Access Litmus with Ingress](setup-with-ingress)
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
id: run-your-first-workflow
|
||||
title: Run your First Chaos Workflow in 5 minutes
|
||||
sidebar_label: Run Your First Workflow
|
||||
---
|
||||
|
||||
## Coming Soon
|
||||
|
|
@ -1,36 +1,36 @@
|
|||
---
|
||||
id: litmus-with-ingress
|
||||
id: setup-with-ingress
|
||||
title: Install LitmusPortal with Ingress
|
||||
sidebar_label: Litmus with Ingress
|
||||
sidebar_label: Setup With Ingress
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
### Install LitmusPortal with Ingress
|
||||
## Prerequisites
|
||||
|
||||
Before setting up endpoint with Ingress make sure the [Litmus Chaos Control Plane](chaos-control-plane) is installed in either one of these scopes
|
||||
|
||||
- [Cluster Scope](cluster-scope-installation)
|
||||
- [Namespace Scope](namespace-scope-installation)
|
||||
|
||||
## Install LitmusPortal with Ingress
|
||||
|
||||
With Litmus-2.0.0-Beta3, LitmusPortal can be installed with ingress.
|
||||
In the following doc, we will use the Nginx ingress controller for ingress setup.
|
||||
|
||||
1. Install the litmus chaos control plane
|
||||
1. By default, the service type is `NodePort`. For Ingress, we need to change the service type to `ClusterIP` in the following services.
|
||||
|
||||
```bash
|
||||
kubectl apply -f https://litmuschaos.github.io/litmus/2.0.0-Beta/litmus-2.0.0-Beta.yaml
|
||||
```
|
||||
- `litmusportal-frontend-service`
|
||||
- `litmusportal-server-service`
|
||||
|
||||
2. By default, the service type is NodePort. For Ingress, we need to change the service type to ClusterIP in the following services.
|
||||
* litmusportal-frontend-service
|
||||
* litmusportal-server-service
|
||||
2. Install Nginx Ingress Controller along with Kubernetes RBAC roles and bindings, please refer [here](https://kubernetes.github.io/ingress-nginx/deploy/#installation-guide)
|
||||
|
||||
> - If you're changing ingress name from **litmus-ingress** to a different name, make sure to update the **INGRESS_NAME** environment variable in the litmusportal-server deployment
|
||||
> - Set the environment variable **INGRESS** as true in the litmusportal-server deployment.
|
||||
|
||||
3. Install Nginx Ingress Controller along with Kubernetes RBAC roles and bindings, please refer [here](https://kubernetes.github.io/ingress-nginx/deploy/#installation-guide)
|
||||
### With HTTP
|
||||
|
||||
**Note:**
|
||||
* If you're changing ingress name from **litmus-ingress** to a different name, make sure to update the **INGRESS_NAME** environment variable in the litmusportal-server deployment
|
||||
* Set the environment variable **INGRESS** as true in the litmusportal-server deployment.
|
||||
|
||||
#### With HTTP
|
||||
|
||||
4. Sample litmus ingress manifest With HTTP
|
||||
Sample litmus ingress manifest With HTTP
|
||||
|
||||
```yaml
|
||||
apiVersion: extensions/v1beta1
|
||||
|
|
@ -42,7 +42,7 @@ metadata:
|
|||
name: litmus-ingress
|
||||
spec:
|
||||
rules:
|
||||
- host: "<HOST-NAME>"
|
||||
- host: '<HOST-NAME>'
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
|
|
@ -61,9 +61,9 @@ spec:
|
|||
kubectl apply -f <litmus_ingress_manifest> -n <PORTAL_NAMESPACE>
|
||||
```
|
||||
|
||||
#### With HTTPS
|
||||
### With HTTPS
|
||||
|
||||
4. Install CertManager
|
||||
1. Install CertManager
|
||||
|
||||
```bash
|
||||
kubectl create namespace cert-manager
|
||||
|
|
@ -71,7 +71,7 @@ helm repo add jetstack https://charts.jetstack.io
|
|||
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version v1.3.0 --set installCRDs=true
|
||||
```
|
||||
|
||||
5. Install LetsEncrypt Cluster Issuer
|
||||
2. Install LetsEncrypt Cluster Issuer
|
||||
|
||||
```yaml
|
||||
apiVersion: cert-manager.io/v1alpha2
|
||||
|
|
@ -90,7 +90,7 @@ spec:
|
|||
class: nginx
|
||||
```
|
||||
|
||||
6. Sample Litmus Portal Ingress Manifest with HTTPS
|
||||
3. Sample Litmus Portal Ingress Manifest with HTTPS
|
||||
|
||||
```yaml
|
||||
apiVersion: extensions/v1beta1
|
||||
|
|
@ -106,7 +106,7 @@ metadata:
|
|||
namespace: litmus
|
||||
spec:
|
||||
rules:
|
||||
- host: "<HOST-NAME>"
|
||||
- host: '<HOST-NAME>'
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
|
|
@ -121,9 +121,41 @@ spec:
|
|||
pathType: ImplementationSpecific
|
||||
tls:
|
||||
- hosts:
|
||||
- "<HOST-NAME>"
|
||||
- '<HOST-NAME>'
|
||||
secretName: litmuspreview-tls-secret
|
||||
```
|
||||
|
||||
```bash
|
||||
kubectl apply -f <litmus_ingress_manifest> -n <PORTAL_NAMESPACE>
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="https://dev.to/hjgraca/aks-ingress-with-nginx-and-key-vault-certificates-2kma">
|
||||
<img width={300} src="https://res.cloudinary.com/practicaldev/image/fetch/s--RyQOqlJg--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/i/o13zbbtdr3nen2ikv734.jpg" />
|
||||
<br />
|
||||
<div style={{width: "300px"}}>
|
||||
AKS ingress with nginx and Key Vault certificates
|
||||
</div>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://kubernetes.io/docs/concepts/services-networking/ingress/">
|
||||
<img width={300} src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.mirantis.com%2Fwp-content%2Fuploads%2F2018%2F03%2Ffirst-beta-version-of-kubernetes-1-10-is-here-your-chance-to-provide-feedback.jpg&f=1&nofb=1" />
|
||||
<br />
|
||||
<div style={{width: "300px"}}>
|
||||
Ingress
|
||||
</div>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## Learn More
|
||||
|
||||
- [Setup Endpoints and Access Litmus without Ingress](setup-without-ingress)
|
||||
- [Install Litmus in Namespace Scope](namespace-scope-installation)
|
||||
- [Install Litmus in Cluster Scope](cluster-scope-installation)
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
---
|
||||
id: setup-without-ingress
|
||||
title: Setting up Endpoints without Ingress
|
||||
sidebar_label: Setup without Ingress
|
||||
---
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before setting up endpoint with Ingress make sure the [Litmus Chaos Control Plane](chaos-control-plane) is installed in either one of these scopes
|
||||
|
||||
- [Cluster Scope](cluster-scope-installation)
|
||||
- [Namespace Scope](namespace-scope-installation)
|
||||
|
||||
## **With NodePort**
|
||||
|
||||
To setup and login to Litmus Portal expand the available services just created and copy the `PORT` of the `litmusportal-frontend-service` service
|
||||
|
||||
```bash
|
||||
kubectl get svc -n <LITMUS_PORTAL_NAMESPACE>
|
||||
```
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
||||
```bash
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
chaos-litmus-portal-mongo ClusterIP 10.104.107.117 <none> 27017/TCP 2m
|
||||
litmusportal-frontend-service NodePort 10.101.81.70 <none> 9091:30385/TCP 2m
|
||||
litmusportal-server-service NodePort 10.108.151.79 <none> 9002:32456/TCP,9003:31160/TCP 2m
|
||||
```
|
||||
|
||||
> **Note**: In this case, the PORT for `litmusportal-frontend-service` is `30385`. Yours will be different.
|
||||
|
||||
## **With LoadBalancer**
|
||||
|
||||
To setup and login to Litmus Portal with LoadBalancer, patch the Frontend Service `litmusportal-frontend-service` and expose the External IP.
|
||||
|
||||
```bash
|
||||
kubectl patch svc litmusportal-frontend-service -p '{"spec": {"type": "LoadBalancer"}}' -n <LITMUS_PORTAL_NAMESPACE>
|
||||
```
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
||||
```bash
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
chaos-litmus-portal-mongo ClusterIP 10.104.107.117 <none> 27017/TCP 2m
|
||||
litmusportal-frontend-service NodePort 10.101.81.70 <none> 9091:30385/TCP 2m
|
||||
litmusportal-server-service NodePort 10.108.151.79 <none> 9002:32456/TCP,9003:31160/TCP 2m
|
||||
```
|
||||
|
||||
## **Accessing the Portal**
|
||||
|
||||
Once you have the PORT copied in your clipboard, simply use your IP and PORT in this manner `<IP>:<PORT>` to access the portal.
|
||||
|
||||
For example:
|
||||
|
||||
```yaml
|
||||
http://172.17.0.3:30385/
|
||||
```
|
||||
|
||||
> Where `172.17.0.3` is my NodeIP and `30385` is the frontend service PORT. If using a LoadBalancer, the only change would be to provide a `<LoadBalancerIP>:<PORT>`
|
||||
|
||||
You should be able to see the Login Page of Litmus. The **default credentials** are
|
||||
|
||||
```yaml
|
||||
Username: admin
|
||||
Password: litmus
|
||||
```
|
||||
|
||||
<img src={require('./assets/login.png').default} width="800" />
|
||||
|
||||
## Resources
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="https://kubernetes.io/docs/concepts/services-networking/service/#nodeport">
|
||||
<img width={300} src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.mirantis.com%2Fwp-content%2Fuploads%2F2018%2F03%2Ffirst-beta-version-of-kubernetes-1-10-is-here-your-chance-to-provide-feedback.jpg&f=1&nofb=1" />
|
||||
<br />
|
||||
<div style={{width: "300px"}}>
|
||||
NodePort
|
||||
</div>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer">
|
||||
<img width={300} src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.mirantis.com%2Fwp-content%2Fuploads%2F2018%2F03%2Ffirst-beta-version-of-kubernetes-1-10-is-here-your-chance-to-provide-feedback.jpg&f=1&nofb=1" />
|
||||
<br />
|
||||
<div style={{width: "300px"}}>
|
||||
LoadBalancer
|
||||
</div>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="https://kubernetes.io/docs/concepts/services-networking/ingress/">
|
||||
<img width={300} src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.mirantis.com%2Fwp-content%2Fuploads%2F2018%2F03%2Ffirst-beta-version-of-kubernetes-1-10-is-here-your-chance-to-provide-feedback.jpg&f=1&nofb=1" />
|
||||
<br />
|
||||
<div style={{width: "300px"}}>
|
||||
Ingress
|
||||
</div>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## Learn More
|
||||
|
||||
- [Setup Endpoints and Access Litmus with Ingress](setup-with-ingress)
|
||||
- [Install Litmus in Namespace Scope](namespace-scope-installation)
|
||||
- [Install Litmus in Cluster Scope](cluster-scope-installation)
|
||||
|
|
@ -1,144 +0,0 @@
|
|||
---
|
||||
id: litmus-install-cluster-mode
|
||||
title: Litmus Chaos Control Plane (Cluster Mode)
|
||||
sidebar_label: Control Plane (Cluster Mode)
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/rOrKegj5ePI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
|
||||
## Pre-requisites
|
||||
|
||||
- Kubernetes 1.15 or later.
|
||||
|
||||
- Recommend to have a Persistent volume(PV) of 20GB, You can start with 1GB for test purposes as well. This PV is used as persistent storage to store the chaos config and chaos-metrics in the Portal. By default, litmus would use the default storage class to allocate the PV.
|
||||
|
||||
- Helm3 or Kubectl
|
||||
|
||||
## Installation
|
||||
|
||||
Installation of Litmus can be done using either of the below methods
|
||||
|
||||
- [Helm3](#helm_install) chart or
|
||||
- [Kubectl](#kubectl_install) yaml spec file
|
||||
|
||||
### Installation Steps
|
||||
|
||||
The helm chart will install all the required service account configuration and chaos control plane.
|
||||
|
||||
The following steps will help you install litmus via helm.
|
||||
|
||||
#### Step-1: Add the litmus helm repository
|
||||
|
||||
```bash
|
||||
helm repo add litmuschaos https://litmuschaos.github.io/litmus-helm/
|
||||
helm repo list
|
||||
```
|
||||
|
||||
#### Step-2: Create the litmus namespace
|
||||
|
||||
- The litmus infra components will be placed in this namespace.
|
||||
|
||||
**Note**: The chaos control plane can be placed in any namespace, though it is typically placed in "litmus".
|
||||
|
||||
```bash
|
||||
kubectl create ns litmus
|
||||
```
|
||||
|
||||
#### Step-3: Install the litmus chaos control plane
|
||||
|
||||
```bash
|
||||
helm install chaos litmuschaos/litmus-2-0-0-beta --namespace=litmus --devel
|
||||
```
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
||||
```
|
||||
NAME: chaos
|
||||
LAST DEPLOYED: Tue Jun 15 19:20:09 2021
|
||||
NAMESPACE: litmus
|
||||
STATUS: deployed
|
||||
REVISION: 1
|
||||
TEST SUITE: None
|
||||
NOTES:
|
||||
Thank you for installing litmus-2-0-0-beta 😀
|
||||
|
||||
Your release is named chaos and its installed to namespace: litmus.
|
||||
|
||||
Visit https://docs.litmuschaos.io/docs/getstarted/ to find more info.
|
||||
```
|
||||
|
||||
> **Note:** Litmus uses Kubernetes CRDs to define chaos intent. Helm3 handles CRDs better than Helm2. Before you start running a chaos experiment, verify if Litmus is installed correctly.
|
||||
|
||||
### <a name="kubectl_install"> </a>**Install Litmus using kubectl **
|
||||
|
||||
#### **Create a Litmus namespace in Kubernetes**
|
||||
|
||||
```bash
|
||||
kubectl create ns litmus
|
||||
```
|
||||
|
||||
#### **Install Litmus**
|
||||
|
||||
Applying the manifest file will install all the required service account configuration and chaos control plane.
|
||||
|
||||
```bash
|
||||
kubectl apply -f https://litmuschaos.github.io/litmus/2.0.0-Beta/litmus-2.0.0-Beta.yaml
|
||||
```
|
||||
|
||||
## **Verify your installation**
|
||||
|
||||
**Verify if the frontend, server, and database pod are running**
|
||||
|
||||
```bash
|
||||
kubectl get pods -n litmus
|
||||
```
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
||||
```bash
|
||||
chaos-litmus-portal-frontend-ff8b554dc-q5rl4 1/1 Running 0 2m6s
|
||||
chaos-litmus-portal-mongo-6764cfdd59-c9r56 1/1 Running 0 2m6s
|
||||
chaos-litmus-portal-server-5ffbccbfff-dknv8 2/2 Running 0 2m6s
|
||||
```
|
||||
|
||||
## **Setup the Portal**
|
||||
|
||||
To setup and login to Litmus Portal expand the available services just created and copy the `PORT` of the `litmusportal-frontend-service` service
|
||||
|
||||
```bash
|
||||
kubectl get svc -n litmus
|
||||
```
|
||||
|
||||
<span style={{color: 'green'}}><b>Expected Output</b></span>
|
||||
|
||||
```bash
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
chaos-litmus-portal-mongo ClusterIP 10.104.107.117 <none> 27017/TCP 2m
|
||||
litmusportal-frontend-service NodePort 10.101.81.70 <none> 9091:30385/TCP 2m
|
||||
litmusportal-server-service NodePort 10.108.151.79 <none> 9002:32456/TCP,9003:31160/TCP 2m
|
||||
```
|
||||
|
||||
> **Note**: In this case, the PORT for `litmusportal-frontend-service` is `30385`. Yours will be different.
|
||||
|
||||
### **Accessing the Portal**
|
||||
|
||||
Once you have the PORT copied in your clipboard, simply use your NodeIP and PORT in this manner `<NodeIP>:<PORT>` to access the portal.
|
||||
|
||||
For example:
|
||||
|
||||
```yaml
|
||||
http://172.17.0.3:30385/
|
||||
```
|
||||
|
||||
> Where `172.17.0.3` is my NodeIP and `30385` is the frontend service PORT. You can also use a LoadBalancer if not NodePort, the only change would be to provide a `<LoadBalancerIP>:<PORT>`
|
||||
|
||||
You should be able to see the Login Page of Litmus. The **default credentials** are
|
||||
|
||||
```yaml
|
||||
Username: admin
|
||||
Password: litmus
|
||||
```
|
||||
|
||||
<img src={require('./assets/login.png').default} width="800" />
|
||||
|
|
@ -8,20 +8,31 @@ module.exports = {
|
|||
// "feature-definition"
|
||||
],
|
||||
'Getting Started': [
|
||||
'getstarted',
|
||||
{
|
||||
Installation: [
|
||||
'litmus-install-cluster-mode',
|
||||
'litmus-install-namespace-mode',
|
||||
'agent-install',
|
||||
'litmus-with-ingress'
|
||||
Prerequisites: [
|
||||
'basic-requirements',
|
||||
{
|
||||
Resources: ['chaos-control-plane', 'agents']
|
||||
}
|
||||
]
|
||||
},
|
||||
'create-workflow',
|
||||
'observe-workflow',
|
||||
{
|
||||
Uninstallation: ['agent-uninstall', 'litmus-uninstall']
|
||||
}
|
||||
Installation: [
|
||||
{
|
||||
'Control Plane': [
|
||||
'cluster-scope-installation',
|
||||
'namespace-scope-installation',
|
||||
'setup-without-ingress',
|
||||
'setup-with-ingress'
|
||||
]
|
||||
},
|
||||
{
|
||||
'Chaos Plane': ['agent-install', 'litmusctl']
|
||||
}
|
||||
]
|
||||
},
|
||||
'run-your-first-workflow',
|
||||
'learning-litmus'
|
||||
],
|
||||
'User Guide': [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@ body {
|
|||
margin: 0;
|
||||
padding: 0;
|
||||
background: #f4f5f7;
|
||||
font-size: 1.05rem;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* SVGs font work differenly than normal HTML elements. So this rule is required. */
|
||||
|
|
|
|||
Loading…
Reference in New Issue