gopaddle User Guide
  • 👋Welcome to gopaddle
  • Overview
    • 💡Getting Started
    • Register a Cluster
      • Register Rancher Prime - RKE2
      • Register K3S
      • Register MicroK8s
      • Register Kind
      • Register minikube
      • Register Kubeadm Cluster
      • Register AWS EKS Cluster
        • EKS Cluster with public or public/private access point
        • EKS Cluster with private access endpoint and a bastion host
        • Validate Cluster Connectivity
      • Register Azure AKS Cluster
      • Register Google GKE Cluster
      • Register Huawei Cloud Container Engine
    • Register GitHub Account
    • Register Jira Account
    • Register ChatGPT Assistant
    • 💻Kubernetes IDE
      • Filters
      • Editor
      • Flat vs Tree View
      • Developer Tools
    • 🙋AI Assistant
      • Chat with AI
      • Raise a Jira Ticket from Chat Window
      • Create Runbook from Chat Window
    • 📖Runbook Hub
      • Create Runbook Hub
      • Attach Runbook Hub to Cluster
      • Enhancing contents of Runbooks with AI
      • Detach Runbook Hub from Cluster
      • Syncing Runbook Hub with GitHub
      • Delete Runbook / Runbook Hub
    • ⏱️Installing Community Edition
      • MicroK8s Addon
        • On Ubuntu
        • On MacOS
      • Docker Desktop
      • SUSE Rancher Prime
      • Digital Ocean
      • Akamai Linode
      • Kind Cluster
      • Helm
      • Docker Compose
      • Accessing gopaddle UI
    • 📈Improving performance of resource discovery
    • Provision new Cluster
      • Register Cloud Account
        • AWS
          • Quickstart AWS Setup
          • IAM Access Policies
          • AWS Setup Script
        • Azure
          • Create Azure Application
          • Register Azure Cloud Authenticator
          • Register Azure Account
        • Google
      • Provision Clusters on Cloud
        • AWS EKS
          • AWS EKS Reference Architecture
          • Adding an AWS IAM Role (EKS Master / Node Pool)
          • Public EKS Cluster
          • All Private EKS Cluster (beta)
          • Creating a Node Pool
        • Azure AKS
          • Creating a Node Pool
          • Enable Public IP Node Access for Azure Deployments
          • VMSS Autoscaling Rules
        • Google GKE
          • Creating a Node Pool
  • 🔎Troubleshooting
    • Cluster Resource View Issues
      • Network Error ! ServerError: Response not successful: Received status code 503
      • Network Error ! TypeError: Failed to fetch
      • Network Error ! ServerParseError: Unexpected token 'j', "json: erro"... is not valid JSON
      • Updating Labels and Annotations does not get reflected in resources list
      • Filtered resources are not fully listed
    • Runbook Issues
      • Deleting a runbook from .gp.yaml does not detach annotation in resources
      • Deleting a Code Account from gopaddle UI does not detach annotation in resources
    • Jira Issues
      • Creating, Updating or Appending a Jira issue fails with error INVALID_INPUT
    • EKS Issues
    • Deployment Issues
    • Node Issues
    • Huawei Issues
Powered by GitBook
On this page
  1. Overview

Runbook Hub

PreviousCreate Runbook from Chat WindowNextCreate Runbook Hub

Last updated 1 year ago

Runbook Hub acts as a central repository within GitHub for organizing and storing runbook definitions, essential for automated troubleshooting and documentation in IT and development operations. A .gp.yaml file at the root of the repository specifies the hub and its runbooks, detailing their purpose, associated selectors for identifying relevant resources or events, and documentation paths. Users can create this file directly on GitHub or via the gopaddle UI, though the latter requires a linked GitHub account. Each runbook, identified by a unique name, links to specific resources or events through JSONPath or Label selectors, guiding towards relevant troubleshooting documentation stored as Markdown files within the repository.

Runbook Hub

A hub is a GitHub repository that holds one or more runbook definitions. A .gp.yaml file in the root directory of the repository in the default branch (Eg. main) defines a runbook hub. Format of the .gp.yaml definition looks like below:

{
   "name":"Runbook Hub for BackOff failures",
   "desc":"Runbooks for container backoff related issues",
   "runbooks":[
      {
         "name":"Pod-Pending",
         "desc":"Runbook for Pod level CrashLoopBackOff and ImagePullBackOff",
         "selectors":[
            {
               "type":"labelSelector",
               "selector":"app=image-pull-failure-pod"
            },
            {
               "type":"jsonPathSelector",
               "selector":"{.status.phase}=Pending"
            }
         ],
         "doc":"backoff/pod-crash-runbook.md"
      },
      {
         "name":"Event-Pulling",
         "desc":"Runbook for ImagePullBackOff event",
         "selectors":[
            {
               "type":"jsonPathSelector",
               "selector":"{.involvedObject.kind}=Pod"
            },
            {
               "type":"jsonPathSelector",
               "selector":"{.reason}=BackOff"
            },
            {
               "type":"jsonPathSelector",
               "selector":"{.type}=Normal"
            }
         ],
         "doc":"backoff/pod-image-runbook.md"
      }
   ]
}

Users can create a .gp.yaml file in the repository directly or create it through the gopaddle UI. In order to create the .gp.yaml file from the gopaddle UI, the GitHub account must be registered in gopaddle.

Runbook

A runbook is documentation that is attached to a Kubernetes resource or an event based on a set of selectors. A runbook name acts as a unique identifier and cannot have spaces.

Selectors

A set of selectors when applied, filters one or more Kubernetes resources or events. Runbooks supports 2 types of selectors:

a. JSONPathSelector: JSON path in a resource specification. Eg.{.reason}=BackOff (or) {.status.phase}=Pending

b. LabelSelector: A key / value pair that matches the labels in the resource metadata. Eg. app=image-pull-failure-pod

Doc

Contains the troubleshooting documentation or knowledgebase associated with the Kubernetes resources or events. Has a .md extension and exists in a folder path relative to the repository root directory.

📖
Page cover image
Runbook Hub Illustration