From bb64ac452996cb4edcb6ed350579d5e006935833 Mon Sep 17 00:00:00 2001 From: Shea Stewart Date: Mon, 22 Jul 2024 07:06:36 -0400 Subject: [PATCH] Update/registry-readme (#404) * update readme * change layout * update text --- .github/workflows/generate-index.yml | 4 +- README.md | 107 ++------------------------- readme_header.md | 43 ----------- 3 files changed, 8 insertions(+), 146 deletions(-) delete mode 100644 readme_header.md diff --git a/.github/workflows/generate-index.yml b/.github/workflows/generate-index.yml index fb0c02e1..cef7f9fa 100644 --- a/.github/workflows/generate-index.yml +++ b/.github/workflows/generate-index.yml @@ -33,8 +33,8 @@ jobs: # Run the index update script pip install robotframework==6.0.2 - python3 .github/scripts/index.py .github/scripts/index-config.yaml - git add README.md + # python3 .github/scripts/index.py .github/scripts/index-config.yaml + # git add README.md # Run the metadata generation script python3 .github/scripts/meta.py codebundles/ diff --git a/README.md b/README.md index 1032d9fa..f48838a4 100644 --- a/README.md +++ b/README.md @@ -1,113 +1,18 @@ -Troubleshooting Tasks in Codecollection: **190** -Codebundles in Codecollection: **70** - -![](docs/GitHub_Banner.jpg)

- - Join Discord -
Join Slack

-Open in GitHub Codespaces - -# RunWhen Public Codecollection -This repository is a codecollection that is to be used within the RunWhen platform. It contains codebundles that can be used in SLIs, and TaskSets. - -Please see the **[contributing](CONTRIBUTING.md)** and **[code of conduct](CODE_OF_CONDUCT.md)** for details on adding your contributions to this project. -Documentation for each codebundle is maintained in the README.md alongside the robot code and is published at [https://docs.runwhen.com/public/v/codebundles/](https://docs.runwhen.com/public/v/codebundles/). Please see the [readme howto](README_HOWTO.md) for details on crafting a codebundle readme that can be indexed. +# CodeCollection Registry +To explore all CodeCollections and tasks, please visit the [CodeCollection Registry](https://registry.runwhen.com/). -## Getting Started -Head on over to our centralized documentation [here](https://docs.runwhen.com/public/v/runwhen-authors/codecollection-development/getting-started/running-your-first-codebundle) for detailed information on getting started. +[![Explore CodeCollection Registry](https://storage.googleapis.com/runwhen-nonprod-shared-images/screenshots/registry.png)](https://registry.runwhen.com) -File Structure overview of devcontainer: -``` --/app/ - |- auth/ # store secrets here, it should already be properly gitignored for you - |- codecollection/ - | |- codebundles/ # stores codebundles that can be run during development - | |- libraries/ # stores python keyword libraries used by codebundles - |- dev_facade/ # provides interfaces equivalent to those used on the platform, but just dry runs the keywords to assist with development - ... -``` +## RunWhen CLI Codecollection +This repository is **one of many** CodeCollections that is used with the [RunWhen Platform](https://www.runwhen.com) and [RunWhen Local](https://docs.runwhen.com/public/v/runwhen-local). It contains CodeBundles that are maintained by the RunWhen team and perform health, operational, and troubleshooting tasks. -The included script `ro` wraps the `robot` RobotFramework binary, and includes some extra functionality to write files to a consistent location for viewing in a HTTP server at http://localhost:3000/ that is always running as part of the devcontainer. - -### Quickstart - -Navigate to the codebundle directory -`cd codecollection/codebundles/curl-http-ok/` - -Run the codebundle -`ro runbook.robot` - -## Codebundle Index -| Name | Supported Integrations | Tasks | Documentation | -|---|---|---|---| -| [AWS CloudWatch Overutlized EC2 Inspection](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/aws-cloudwatch-overused-ec2/runbook.robot) | `AWS`, `CloudWatch` | `Check For Overutilized Ec2 Instances` | Queries AWS CloudWatch for a list of EC2 instances with a high amount of resource utilization, raising issues when overutilized instances are found. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/aws-cloudwatch-overused-ec2) | -| [AWS EKS Cluster Health](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/aws-eks-health/runbook.robot) | `AWS`, `EKS`, `Fargate` | `Check EKS Fargate Cluster Health Status`, `Check EKS Cluster Health Status`, `List EKS Cluster Metrics` | Checks the health status of EKS and/or Fargate clusters in the given AWS region. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/aws-eks-health) | -| [AWS EKS Health Scan](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/aws-eks-health/sli.robot) | `AWS`, `EKS`, `Fargate` | `Check EKS Cluster Health Status` | Monitors the status of EKS / Fargate in the given AWS region. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/aws-eks-health) | -| [AWS EKS Nodegroup Status Check](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/aws-eks-node-reboot/runbook.robot) | `AWS`, `EKS` | `Check EKS Nodegroup Status` | Queries a node group within a EKS cluster to check if the nodegroup has degraded service, indicating ongoing reboots or other issues. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/aws-eks-node-reboot) | -| [AWS ElastiCache Health Check](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/aws-elasticache-redis-health/runbook.robot) | `AWS Elasticache Redis` | `Scan AWS Elasticache Redis Status` | Checks the health status of Elasticache redis in the given region. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/aws-elasticache-redis-health) | -| [AWS ElastiCache Health Monitor](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/aws-elasticache-redis-health/sli.robot) | `AWS Elasticache Redis` | `Scan ElastiCaches` | Monitors the health status of elasticache redis in the AWS region. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/aws-elasticache-redis-health) | -| [AWS Lambda Health Check](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/aws-lambda-health/runbook.robot) | `AWS`, `Lambda` | `List Lambda Versions and Runtimes`, `Analyze AWS Lambda Invocation Errors`, `Monitor AWS Lambda Performance Metrics` | Scans for AWS Lambda invocation errors [Docs](https://docs.runwhen.com/public/v/cli-codecollection/aws-lambda-health) | -| [AWS Lambda Health Monitor](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/aws-lambda-health/sli.robot) | `AWS`, `Lambda` | `Analyze AWS Lambda Invocation Errors` | Monitor AWS Lambda Invocation Errors [Docs](https://docs.runwhen.com/public/v/cli-codecollection/aws-lambda-health) | -| [AWS S3 Bucket Info Report](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/aws-s3-bucket-storage-report/runbook.robot) | `AWS`, `S3` | `Check AWS S3 Bucket Storage Utilization` | Generates a report for S3 buckets in a AWS region [Docs](https://docs.runwhen.com/public/v/cli-codecollection/aws-s3-bucket-storage-report) | -| [Azure Internal LoadBalancer Triage](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/azure-loadbalancer-triage/runbook.robot) | `Kubernetes`, `AKS`, `Azure` | `Check Activity Logs for Azure Load Balancer `${AZ_LB_NAME}`` | Triages issues related to a Azure Loadbalancers and its activity logs. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/azure-loadbalancer-triage) | -| [Azure Monitor Activity Log SLI](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/azure-monitor-event-triage/sli.robot) | `Kubernetes`, `AKS`, `Azure` | `Run Azure Monitor Activity Log Triage` | Measures the count of error activity log entries as a SLI metric for the Azure tenancy. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/azure-monitor-event-triage) | -| [Azure Monitor Event Triage](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/azure-monitor-event-triage/runbook.robot) | `Kubernetes`, `AKS`, `Azure` | `Run Azure Monitor Activity Log Triage` | Triages issues related to a Azure Loadbalancers, Kubernetes ingress objects and services. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/azure-monitor-event-triage) | -| [GCP Cloud Function Health](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/gcp-cloud-function-health/runbook.robot) | `GCP`, `Cloud Functions` | `List Unhealhy Cloud Functions in GCP Project `${GCP_PROJECT_ID}``, `Get Error Logs for Unhealthy Cloud Functions in GCP Project `${GCP_PROJECT_ID}`` | Identify problems related to GCP Cloud Function deployments [Docs](https://docs.runwhen.com/public/v/cli-codecollection/gcp-cloud-function-health) | -| [GCP Gcloud Log Inspection](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/gcloud-log-inspection/runbook.robot) | `GCP`, `Gcloud`, `Google Monitoring` | `Inspect GCP Logs For Common Errors` | Fetches logs from a GCP using a configurable query and raises an issue with details on the most common issues. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/gcloud-log-inspection) | -| [GCP Node Prempt List](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/gcloud-node-preempt/runbook.robot) | `GCP`, `GKE` | `List all nodes in an active prempt operation for GCP Project `${GCP_PROJECT_ID}`` | List all GCP nodes that have been preempted in the previous time interval. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/gcloud-node-preempt) | -| [GCP Storage Bucket Health](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/gcp-bucket-health/runbook.robot) | `GCP`, `GCS` | `Fetch GCP Bucket Storage Utilization for `${PROJECT_IDS}``, `Add GCP Bucket Storage Configuration for `${PROJECT_IDS}` to Report`, `Check GCP Bucket Security Configuration for `${PROJECT_IDS}``, `Fetch GCP Bucket Storage Operations Rate for `${PROJECT_IDS}`` | Inspect GCP Storage bucket usage and configuration. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/gcp-bucket-health) | -| [GKE Kong Ingress Host Triage](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/curl-gmp-kong-ingress-inspection/runbook.robot) | `GCP`, `GMP`, `Ingress`, `Kong`, `Metrics` | `Check If Kong Ingress HTTP Error Rate Violates HTTP Error Threshold`, `Check If Kong Ingress HTTP Request Latency Violates Threshold`, `Check If Kong Ingress Controller Reports Upstream Errors` | Collects Kong ingress host metrics from GMP on GCP and inspects the results for ingress with a HTTP error code rate greater than zero over a configurable duration and raises issues based on the number of ingress with error codes. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/curl-gmp-kong-ingress-inspection) | -| [GKE Nginx Ingress Host Triage](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/curl-gmp-nginx-ingress-inspection/runbook.robot) | `GCP`, `GMP`, `Ingress`, `Nginx`, `Metrics` | `Fetch Nginx HTTP Errors From GMP for Ingress `${INGRESS_OBJECT_NAME}``, `Find Owner and Service Health for Ingress `${INGRESS_OBJECT_NAME}`` | Collects Nginx ingress host controller metrics from GMP on GCP and inspects the results for ingress with a HTTP error code rate greater than zero over a configurable duration and raises issues based on the number of ingress with error codes. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/curl-gmp-nginx-ingress-inspection) | -| [K8s Jaeger Query](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-jaeger-http-query/runbook.robot) | `GKE EKS AKS Kubernetes HTTP` | `Query Traces in Jaeger for Unhealthy HTTP Response Codes in Namespace `${NAMESPACE}`` | This taskset queries Jaeger API directly for trace details and parses the results [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-jaeger-http-query) | -| [Kubeprometheus Operator Troubleshoot](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-prometheus-healthcheck/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift`, `Prometheus` | `Check Prometheus Service Monitors`, `Check For Successful Rule Setup`, `Verify Prometheus RBAC Can Access ServiceMonitors`, `Identify Endpoint Scraping Errors`, `Check Prometheus API Healthy` | This taskset investigates the logs, state and health of Kubernetes Prometheus operator. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-prometheus-healthcheck) | -| [Kubernetes Application Monitor](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-app-troubleshoot/sli.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Measure Application Exceptions` | Measures the number of exception stacktraces present in an application's logs over a time period. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-app-troubleshoot) | -| [Kubernetes Application Troubleshoot](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-app-troubleshoot/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Get `${CONTAINER_NAME}` Application Logs`, `Scan `${CONTAINER_NAME}` Application For Misconfigured Environment`, `Tail `${CONTAINER_NAME}` Application Logs For Stacktraces` | Performs application-level troubleshooting by inspecting the logs of a workload for parsable exceptions, and attempts to determine next steps. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-app-troubleshoot) | -| [Kubernetes ArgoCD Application Health & Troubleshoot](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-argocd-application-health/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift`, `ArgoCD` | `Fetch ArgoCD Application Sync Status & Health for `${APPLICATION}``, `Fetch ArgoCD Application Last Sync Operation Details for `${APPLICATION}``, `Fetch Unhealthy ArgoCD Application Resources for `${APPLICATION}``, `Scan For Errors in Pod Logs Related to ArgoCD Application `${APPLICATION}``, `Fully Describe ArgoCD Application `${APPLICATION}`` | This taskset collects information and runs general troubleshooting checks against argocd application objects within a namespace. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-argocd-application-health) | -| [Kubernetes ArgoCD HelmRelease TaskSet](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-argocd-helm-health/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift`, `ArgoCD` | `Fetch all available ArgoCD Helm releases in namespace `${NAMESPACE}``, `Fetch Installed ArgoCD Helm release versions in namespace `${NAMESPACE}`` | This codebundle runs a series of tasks to identify potential helm release issues related to ArgoCD managed Helm objects. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-argocd-helm-health) | -| [Kubernetes Artifactory Triage](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-artifactory-health/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift`, `Artifactory` | `Check Artifactory Liveness and Readiness Endpoints` | Performs a triage on the Open Source version of Artifactory in a Kubernetes cluster. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-artifactory-health) | -| [Kubernetes Cluster Resource Health](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-cluster-resource-health/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Identify High Utilization Nodes for Cluster `${CONTEXT}``, `Identify Pods Causing High Node Utilization in Cluster `${CONTEXT}`` | Identify resource constraints or issues in a cluster. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-cluster-resource-health) | -| [Kubernetes Daemonset Triage](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-daemonset-healthcheck/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Get DaemonSet Log Details For Report`, `Get Related Daemonset Events`, `Check Daemonset Replicas` | Triages issues related to a Daemonset and its available replicas. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-daemonset-healthcheck) | -| [Kubernetes Deployment Triage](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-deployment-healthcheck/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Check Deployment Log For Issues with `${DEPLOYMENT_NAME}``, `Check Liveness Probe Configuration for Deployment `${DEPLOYMENT_NAME}``, `Check Readiness Probe Configuration for Deployment `${DEPLOYMENT_NAME}``, `Inspect Container Restarts for Deployment `${DEPLOYMENT_NAME}` Namespace `${NAMESPACE}``, `Inspect Deployment Warning Events for `${DEPLOYMENT_NAME}``, `Get Deployment Workload Details For `${DEPLOYMENT_NAME}` and Add to Report`, `Inspect Deployment Replicas for `${DEPLOYMENT_NAME}``, `Check Deployment Event Anomalies for `${DEPLOYMENT_NAME}``, `Check ReplicaSet Health for Deployment `${DEPLOYMENT_NAME}`` | Triages issues related to a deployment and its replicas. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-deployment-healthcheck) | -| [Kubernetes Flux Choas Testing](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-chaos-flux/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Suspend the Flux Resource Reconciliation`, `Find Random FluxCD Workload as Chaos Target`, `Execute Chaos Command`, `Execute Additional Chaos Command`, `Resume Flux Resource Reconciliation` | This taskset is used to suspend a flux resource for the purposes of executing chaos tasks. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-chaos-flux) | -| [Kubernetes Flux Suspend Namespace](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-flux-suspend-namespace/runbook.robot) | `Kubernetes Flux Chaos Engineering Namespace` | `Flux Suspend Namespace ${NAMESPACE}`, `Unsuspend Flux for Namespace ${NAMESPACE}` | Suspends the flux reconciliation being applied to a given namespace. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-flux-suspend-namespace) | -| [Kubernetes FluxCD HelmRelease TaskSet](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-fluxcd-helm-health/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift`, `FluxCD` | `List all available FluxCD Helmreleases in Namespace `${NAMESPACE}``, `Fetch Installed FluxCD Helmrelease Versions in Namespace `${NAMESPACE}``, `Fetch Mismatched FluxCD HelmRelease Version in Namespace `${NAMESPACE}``, `Fetch FluxCD HelmRelease Error Messages in Namespace `${NAMESPACE}``, `Check for Available Helm Chart Updates in Namespace `${NAMESPACE}`` | This codebundle runs a series of tasks to identify potential helm release issues related to Flux managed Helm objects. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-fluxcd-helm-health) | -| [Kubernetes FluxCD Kustomization TaskSet](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-fluxcd-kustomization-health/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift`, `FluxCD` | `List all available Kustomization objects in Namespace `${NAMESPACE}``, `Get details for unready Kustomizations in Namespace `${NAMESPACE}`` | This codebundle runs a series of tasks to identify potential Kustomization issues related to Flux managed Kustomization objects. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-fluxcd-kustomization-health) | -| [Kubernetes Fluxcd Reconciliation Monitor](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-fluxcd-reconcile/sli.robot) | `Kubernetes Fluxcd` | `Health Check Flux Reconciliation` | Measures failing reconciliations for fluxcd [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-fluxcd-reconcile) | -| [Kubernetes Fluxcd Reconciliation Report](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-fluxcd-reconcile/runbook.robot) | `Kubernetes Fluxcd` | `Health Check Flux Reconciliation` | Generates a report of the reconciliation errors for fluxcd in your cluster. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-fluxcd-reconcile) | -| [Kubernetes GitOps GitHub Remediation](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-gitops-gh-remediate/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift`, `FluxCD`, `ArgoCD`, `GitHub` | `Remediate Readiness and Liveness Probe GitOps Manifests in Namespace `${NAMESPACE}``, `Increase ResourceQuota for Namespace `${NAMESPACE}``, `Adjust Pod Resources to Match VPA Recommendation in `${NAMESPACE}``, `Expand Persistent Volume Claims in Namespace `${NAMESPACE}`` | Provides a list of tasks that can remediate configuraiton issues with manifests in GitHub based GitOps repositories. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-gitops-gh-remediate) | -| [Kubernetes Grafana Loki Health Check](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-loki-healthcheck/runbook.robot) | `k8s` | `Check Loki Ring API`, `Check Loki API Ready` | This taskset checks the health of Grafana Loki and its hash ring. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-loki-healthcheck) | -| [Kubernetes Image Check](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-image-check/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Check Image Rollover Times for Namespace `${NAMESPACE}``, `List Images and Tags for Every Container in Running Pods for Namespace `${NAMESPACE}``, `List Images and Tags for Every Container in Failed Pods for Namespace `${NAMESPACE}``, `List ImagePullBackOff Events and Test Path and Tags for Namespace `${NAMESPACE}`` | This taskset provides detailed information about the images used in a Kubernetes namespace. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-image-check) | -| [Kubernetes Ingress GCE & GCP HTTP Load Balancer Healthcheck](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-ingress-gce-healthcheck/runbook.robot) | `Kubernetes`, `GKE`, `GCE`, `GCP` | `Search For GCE Ingress Warnings in GKE`, `Identify Unhealthy GCE HTTP Ingress Backends`, `Validate GCP HTTP Load Balancer Configurations`, `Fetch Network Error Logs from GCP Operations Manager for Ingress Backends`, `Review GCP Operations Logging Dashboard` | Troubleshoot GCE Ingress Resources related to GCP HTTP Load Balancer in GKE [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-ingress-gce-healthcheck) | -| [Kubernetes Ingress Healthcheck](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-ingress-healthcheck/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Fetch Ingress Object Health in Namespace `${NAMESPACE}``, `Check for Ingress and Service Conflicts in Namespace `${NAMESPACE}`` | Triages issues related to a ingress objects and services. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-ingress-healthcheck) | -| [Kubernetes Jenkins Healthcheck](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-jenkins-healthcheck/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift`, `Jenkins` | `Query The Jenkins Kubernetes Workload HTTP Endpoint`, `Query For Stuck Jenkins Jobs` | This taskset collects information about perstistent volumes and persistent volume claims to validate health or help troubleshoot potential issues. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-jenkins-healthcheck) | -| [Kubernetes Labeled Pod Count](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-labeledpods-healthcheck/sli.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Measure Number of Running Pods with Label` | This codebundle fetches the number of running pods with the set of provided labels, letting you measure the number of running pods. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-labeledpods-healthcheck) | -| [Kubernetes Namespace Chaos Engineering](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-chaos-namespace/runbook.robot) | `Kubernetes Chaos Engineering Namespace` | `Kill Random Pods In Namespace `${NAMESPACE}``, `OOMKill Pods In Namespace `${NAMESPACE}``, `Mangle Service Selector In Namespace `${NAMESPACE}``, `Mangle Service Port In Namespace `${NAMESPACE}``, `Fill Random Pod Tmp Directory In Namespace `${NAMESPACE}`` | Provides chaos injection tasks for Kubernetes namespaces. These are destructive tasks and the expectation is that you can heal these changes by enabling your GitOps reconciliation. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-chaos-namespace) | -| [Kubernetes Namespace Healthcheck](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-namespace-healthcheck/sli.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Get Event Count and Score`, `Get Container Restarts and Score`, `Get NotReady Pods`, `Generate Namspace Score` | This SLI uses kubectl to score namespace health. Produces a value between 0 (completely failing thet test) and 1 (fully passing the test). Looks for container restarts, events, and pods not ready. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-namespace-healthcheck) | -| [Kubernetes Namespace Inspection](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-namespace-healthcheck/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Inspect Warning Events in Namespace `${NAMESPACE}``, `Inspect Container Restarts In Namespace `${NAMESPACE}``, `Inspect Pending Pods In Namespace `${NAMESPACE}``, `Inspect Failed Pods In Namespace `${NAMESPACE}``, `Inspect Workload Status Conditions In Namespace `${NAMESPACE}``, `Get Listing Of Resources In Namespace `${NAMESPACE}``, `Check Event Anomalies in Namespace `${NAMESPACE}``, `Check Missing or Risky PodDisruptionBudget Policies in Namepace `${NAMESPACE}``, `Check Resource Quota Utilization in Namespace `${NAMESPACE}`` | This taskset runs general troubleshooting checks against all applicable objects in a namespace. Looks for warning events, odd or frequent normal events, restarting containers and failed or pending pods. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-namespace-healthcheck) | -| [Kubernetes Persistent Volume Healthcheck](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-pvc-healthcheck/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Fetch Events for Unhealthy Kubernetes PersistentVolumeClaims in Namespace `${NAMESPACE}``, `List PersistentVolumeClaims in Terminating State in Namespace `${NAMESPACE}``, `List PersistentVolumes in Terminating State in Namespace `${NAMESPACE}``, `List Pods with Attached Volumes and Related PersistentVolume Details in Namespace `${NAMESPACE}``, `Fetch the Storage Utilization for PVC Mounts in Namespace `${NAMESPACE}``, `Check for RWO Persistent Volume Node Attachment Issues in Namespace `${NAMESPACE}`` | This taskset collects information about storage such as PersistentVolumes and PersistentVolumeClaims to validate health or help troubleshoot potential storage issues. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-pvc-healthcheck) | -| [Kubernetes Pod Resources Health](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-podresources-health/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Show Pods Without Resource Limit or Resource Requests Set in Namespace `${NAMESPACE}``, `Get Pod Resource Utilization with Top in Namespace `${NAMESPACE}``, `Identify VPA Pod Resource Recommendations in Namespace `${NAMESPACE}``, `Identify Resource Constrained Pods In Namespace `${NAMESPACE}`` | Inspects the resources provisioned for a given set of pods and raises issues or recommendations as necessary. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-podresources-health) | -| [Kubernetes Postgres Healthcheck](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-postgres-healthcheck/runbook.robot) | `AKS`, `EKS`, `GKE`, `Kubernetes`, `Patroni`, `Postgres`, `Crunchy`, `Zalando` | `List Resources Related to Postgres Cluster `${OBJECT_NAME}` in Namespace `${NAMESPACE}``, `Get Postgres Pod Logs & Events for Cluster `${OBJECT_NAME}` in Namespace `${NAMESPACE}``, `Get Postgres Pod Resource Utilization for Cluster `${OBJECT_NAME}` in Namespace `${NAMESPACE}``, `Get Running Postgres Configuration for Cluster `${OBJECT_NAME}` in Namespace `${NAMESPACE}``, `Get Patroni Output and Add to Report for Cluster `${OBJECT_NAME}` in Namespace `${NAMESPACE}``, `Fetch Patroni Database Lag for Cluster `${OBJECT_NAME}` in Namespace `${NAMESPACE}``, `Check Database Backup Status for Cluster `${OBJECT_NAME}` in Namespace `${NAMESPACE}``, `Run DB Queries for Cluster `${OBJECT_NAME}` in Namespace `${NAMESPACE}`` | Runs a series of tasks to check the overall health of a postgres cluster and to provide detailed information useful for debugging or reviewing configurations. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-postgres-healthcheck) | -| [Kubernetes Redis Healthcheck](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-redis-healthcheck/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift`, `Redis` | `Ping `${DEPLOYMENT_NAME}` Redis Workload`, `Verify `${DEPLOYMENT_NAME}` Redis Read Write Operation` | This taskset collects information on your redis workload in your Kubernetes cluster and raises issues if any health checks fail. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-redis-healthcheck) | -| [Kubernetes Restart resource](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-restart-resource/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Get Current Resource State with Labels `${LABELS}``, `Get Resource Logs with Labels `${LABELS}``, `Restart Resource with Labels `${LABELS}`` | This taskset restarts a resource with a given set of labels, typically used with other tasksets. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-restart-resource) | -| [Kubernetes Service Account Check](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-serviceaccount-check/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Test Service Account Access to Kubernetes API Server in Namespace `${NAMESPACE}`` | This taskset provides tasks to troubleshoot service accounts in a Kubernetes namespace. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-serviceaccount-check) | -| [Kubernetes StatefulSet Triage](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-statefulset-healthcheck/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift` | `Check Readiness Probe Configuration for StatefulSet `${STATEFULSET_NAME}``, `Check Liveness Probe Configuration for StatefulSet `${STATEFULSET_NAME}``, `Troubleshoot StatefulSet Warning Events for `${STATEFULSET_NAME}``, `Check StatefulSet Event Anomalies for `${STATEFULSET_NAME}``, `Fetch StatefulSet Logs for `${STATEFULSET_NAME}``, `Get Related StatefulSet `${STATEFULSET_NAME}` Events`, `Fetch Manifest Details for StatefulSet `${STATEFULSET_NAME}``, `List StatefulSets with Unhealthy Replica Counts In Namespace `${NAMESPACE}`` | Triages issues related to a StatefulSet and its replicas. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-statefulset-healthcheck) | -| [Kubernetes Tail Application Logs](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-tail-logs-dynamic/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift`, `GoLang`, `Json`, `Python`, `CSharp`, `Django`, `Node`, `Java`, `FastAPI` | `Get `${CONTAINER_NAME}` Application Logs`, `Tail `${CONTAINER_NAME}` Application Logs For Stacktraces` | Performs application-level troubleshooting by inspecting the logs of a workload for parsable exceptions, and attempts to determine next steps. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-tail-logs-dynamic) | -| [Kubernetes Vault Triage](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-vault-healthcheck/runbook.robot) | `AKS`, `EKS`, `GKE`, `Kubernetes`, `Vault` | `Fetch Vault CSI Driver Logs`, `Get Vault CSI Driver Warning Events`, `Check Vault CSI Driver Replicas`, `Fetch Vault Logs`, `Get Related Vault Events`, `Fetch Vault StatefulSet Manifest Details`, `Fetch Vault DaemonSet Manifest Details`, `Verify Vault Availability`, `Check Vault StatefulSet Replicas` | A suite of tasks that can be used to triage potential issues in your vault namespace. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-vault-healthcheck) | -| [Kubernetes Workload Chaos Engineering](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-chaos-workload/runbook.robot) | `Kubernetes Chaos Engineering Workload Application Deployments StatefulSet` | `Test `${WORKLOAD_NAME}` High Availability`, `OOMKill `${WORKLOAD_NAME}` Pod`, `Mangle Service Selector For `${WORKLOAD_NAME}``, `Mangle Service Port For `${WORKLOAD_NAME}``, `Fill Tmp Directory Of Pod From `${WORKLOAD_NAME}`` | Provides chaos injection tasks for specific workloads like your apps in a Kubernetes namespace. These are destructive tasks and the expectation is that you can heal these changes by enabling your GitOps reconciliation. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-chaos-workload) | -| [Kubernetes cert-manager Healthcheck](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-certmanager-healthcheck/runbook.robot) | `Kubernetes`, `AKS`, `EKS`, `GKE`, `OpenShift`, `cert-manager` | `Get Namespace Certificate Summary for Namespace `${NAMESPACE}``, `Find Unhealthy Certificates in Namespace `${NAMESPACE}``, `Find Failed Certificate Requests and Identify Issues for Namespace `${NAMESPACE}`` | Checks the overall health of certificates in a namespace that are managed by cert-manager. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-certmanager-healthcheck) | -| [Terraform Cloud Workspace Lock Check](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/terraform-cloud-workspace-lock-check/runbook.robot) | `Terraform Cloud` | `Checking whether the Terraform Cloud Workspace is in a locked state` | Check whether the Terraform Cloud Workspace is in a locked state. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/terraform-cloud-workspace-lock-check) | -| [Test Issues](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/test-issue/runbook.robot) | `Test` | `Raise Full Issue` | A codebundle for testing the issues feature. Purely for testing flow. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/test-issue) | -| [cURL HTTP OK](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/curl-http-ok/runbook.robot) | `Linux macOS Windows HTTP` | `Checking HTTP URL Is Available And Timely` | This taskset uses curl to validate the response code of the endpoint and provides the total time of the request. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/curl-http-ok) | -| [cli-test-taskset](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/cli-test/runbook.robot) | `cli` | `Run CLI and Parse Output For Issues`, `Exec Test`, `Local Process Test` | This taskset smoketests the CLI codebundle setup and run process [Docs](https://docs.runwhen.com/public/v/cli-codecollection/cli-test) | -| [cmd-test-taskset](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/cmd-test/runbook.robot) | `cmd` | `Run CLI Command`, `Run Bash File`, `Log Suggestion` | This taskset smoketests the CLI codebundle setup and run process by running a bare command [Docs](https://docs.runwhen.com/public/v/cli-codecollection/cmd-test) | -| [k8s-kubectl-cmd-sli](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-kubectl-cmd/sli.robot) | `k8s` | `Run User Provided Kubectl Command` | This taskset runs a user provided kubectl command and pushes the metric. The supplied command must result in distinct single metric. Command line tools like jq are available. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-kubectl-cmd) | -| [k8s-kubectl-cmd-taskset](https://github.com/runwhen-contrib/rw-cli-codecollection/blob/main/codebundles/k8s-kubectl-cmd/runbook.robot) | `k8s` | `Run User Provided Kubectl Command` | This taskset runs a user provided kubectl command andadds the output to the report. Command line tools like jq are available. [Docs](https://docs.runwhen.com/public/v/cli-codecollection/k8s-kubectl-cmd) | +Please see the **[contributing](CONTRIBUTING.md)** and **[code of conduct](CODE_OF_CONDUCT.md)** for details on adding your contributions to this project. diff --git a/readme_header.md b/readme_header.md deleted file mode 100644 index 085ccc4e..00000000 --- a/readme_header.md +++ /dev/null @@ -1,43 +0,0 @@ -![](docs/GitHub_Banner.jpg) - -

- - Join Discord - -
- - Join Slack - -

-Open in GitHub Codespaces - -# RunWhen Public Codecollection -This repository is a codecollection that is to be used within the RunWhen platform. It contains codebundles that can be used in SLIs, and TaskSets. - -Please see the **[contributing](CONTRIBUTING.md)** and **[code of conduct](CODE_OF_CONDUCT.md)** for details on adding your contributions to this project. - -Documentation for each codebundle is maintained in the README.md alongside the robot code and is published at [https://docs.runwhen.com/public/v/codebundles/](https://docs.runwhen.com/public/v/codebundles/). Please see the [readme howto](README_HOWTO.md) for details on crafting a codebundle readme that can be indexed. - -## Getting Started -Head on over to our centralized documentation [here](https://docs.runwhen.com/public/v/runwhen-authors/codecollection-development/getting-started/running-your-first-codebundle) for detailed information on getting started. - -File Structure overview of devcontainer: -``` --/app/ - |- auth/ # store secrets here, it should already be properly gitignored for you - |- codecollection/ - | |- codebundles/ # stores codebundles that can be run during development - | |- libraries/ # stores python keyword libraries used by codebundles - |- dev_facade/ # provides interfaces equivalent to those used on the platform, but just dry runs the keywords to assist with development - ... -``` - -The included script `ro` wraps the `robot` RobotFramework binary, and includes some extra functionality to write files to a consistent location for viewing in a HTTP server at http://localhost:3000/ that is always running as part of the devcontainer. - -### Quickstart - -Navigate to the codebundle directory -`cd codecollection/codebundles/curl-http-ok/` - -Run the codebundle -`ro runbook.robot`