litmus/litmus-portal
Saswata Mukherjee ba3ad3dca0
chore(litmus-portal): Integrate kubera-ui theme provider (#2395)
* Integrate kubera-ui theme provider
* Upgrade kubera-ui to 0.3.4

Signed-off-by: Saswata Mukherjee <saswataminsta@yahoo.com>
2021-01-12 17:19:41 +05:30
..
authentication Adding non-root user to dockerfiles of litmus portal (#2380) 2020-12-15 22:32:08 +05:30
cluster-agents Adding non-root user to dockerfiles of litmus portal (#2380) 2020-12-15 22:32:08 +05:30
frontend chore(litmus-portal): Integrate kubera-ui theme provider (#2395) 2021-01-12 17:19:41 +05:30
graphql-server directory re-structuring of subscriber's manifest and changing it's respective code (#2391) 2021-01-11 19:42:26 +05:30
platforms/okteto Upgrading litmus portal to v1.11.0 (#2381) 2020-12-16 00:06:27 +05:30
Makefile Removing self-deployer code and its dependencies (#2330) 2020-11-08 16:40:39 +05:30
README.md Upgrading litmus portal to v1.11.0 (#2381) 2020-12-16 00:06:27 +05:30
cluster-k8s-manifest.yml Upgrading litmus portal to v1.11.0 (#2381) 2020-12-16 00:06:27 +05:30
litmus-portal-crds.yml Upgrading litmus portal to v1.11.0 (#2381) 2020-12-16 00:06:27 +05:30
namespaced-K8s-template.yml Upgrading litmus portal to v1.11.0 (#2381) 2020-12-16 00:06:27 +05:30
run.sh Adding DB credentials to run.sh (#2366) 2020-11-30 11:04:01 +05:30

README.md

Litmus Portal

Litmus-Portal provides console and UI experience for managing, monitoring, and events around chaos workflows. Chaos workflows consist of a sequence of experiments run together to achieve the objective of introducing some kind of fault into an application or the Kubernetes platform.

Platforms Support

  • Minikube
  • GKE
  • KIND
  • EKS
  • Okteto Cloud

Pre-requisites

  • Kubernetes 1.11 or later.

Installation

Applying k8s manifest

Beta 0 (Stable)

kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/v1.11.x/litmus-portal/cluster-k8s-manifest.yml

Or

Master (Latest) Cluster scope. Install in litmus namespace by default.

kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/master/litmus-portal/cluster-k8s-manifest.yml

Or

Master (Latest) Namespaced scope. Replace <namespace> with the desired namespace.

export LITMUS_PORTAL_NAMESPACE="<namespace>"
kubectl create ns ${LITMUS_PORTAL_NAMESPACE}
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/master/litmus-portal/litmus-portal-crds.yml
curl https://raw.githubusercontent.com/litmuschaos/litmus/master/litmus-portal/namespaced-K8s-template.yml --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}
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/master/litmus-portal/platforms/okteto/hello-world-AUT.yml -n ${LITMUS_PORTAL_NAMESPACE}

Configuration Options for Cluster scope.

  • litmus-portal-operations-config configmap.

    AgentNamespace: litmus

  • All environment variables.

Configuration Options for Namespace scope.

  • litmus-portal-operations-config configmap.

    AgentNamespace: ${LITMUS_PORTAL_NAMESPACE}

  • All environment variables.

Retrieving external url to access the litmus portal

export NODE_NAME=$(kubectl get pod -n litmus -l "component=litmusportal-frontend" -o=jsonpath='{.items[*].spec.nodeName}')
export EXTERNAL_IP=$(kubectl get nodes $NODE_NAME -o jsonpath='{.status.addresses[?(@.type=="ExternalIP")].address}')
export NODE_PORT=$(kubectl get -o jsonpath="{.spec.ports[0].nodePort}" services litmusportal-frontend-service -n litmus)
echo "URL: http://$EXTERNAL_IP:$NODE_PORT"

Note: Default username: admin and password: litmus

User Guide for Litmus Portal

Litmus-Portal provides console or UI experience for managing, monitoring, and events round chaos workflows. Chaos workflows consist of a sequence of experiments run together to achieve the objective of introducing some kind of fault into an application or the Kubernetes platform.

View the User Guide here

Uninstallation

Beta 0 (Stable)

kubectl delete -f https://raw.githubusercontent.com/litmuschaos/litmus/v1.11.x/litmus-portal/cluster-k8s-manifest.yml

Or

Master (Latest) Cluster scope. Uninstall in litmus namespace by default.

kubectl delete -f https://raw.githubusercontent.com/litmuschaos/litmus/master/litmus-portal/cluster-k8s-manifest.yml

Or

Master (Latest) Namespaced scope. Replace <namespace> with the desired namespace.

export LITMUS_PORTAL_NAMESPACE="<namespace>"
kubectl delete -f https://raw.githubusercontent.com/litmuschaos/litmus/master/litmus-portal/litmus-portal-crds.yml
kubectl delete -f ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml -n ${LITMUS_PORTAL_NAMESPACE}
kubectl delete -f https://raw.githubusercontent.com/litmuschaos/litmus/master/litmus-portal/platforms/okteto/hello-world-AUT.yml -n ${LITMUS_PORTAL_NAMESPACE}

Tech Stack

  • Frontend
    • TypeScript
    • JavaScript
    • ReactJS
    • Apollo GraphQL client
    • MaterialUI
  • Backend
    • GoLang
    • GQLGEN GraphQL Server
  • Database
    • MongoDB
Additional information