Skip to content

Gets information about some resources in kubernetes cluster. Including CR.

Notifications You must be signed in to change notification settings

Randsw/kubeinfo

Repository files navigation

Kubeinfo

Get information about resources in kubernetes cluster

Introduction

⚠️ Attention This project created for educational purposes and serves as proof-of-concept. Another goal is to learn how to work with Kubernetes CRD and CR using client-go library. As a CRD for information i choose my favorite GitOps tool - FluxCD

Content

  1. Requirements
  2. Overview
  3. Examples

Requirements

Helm version 3.10.1 or newer Kubernetes version 1.23.1 or newer Fluxcd version 0.40.1 or newer

Overview

This application listen at port 8080 and provides several endpoints

endpoint HTTP Verb return return value
/ GET All of the following struct
/nodes GET Overall number of nodes and number of nodes by role(control-plane or worker) struct
/namespaces GET Overall number of namespaces struct
/pods GET Overall number of pods and number of pods by phase struct
/ingresses GET Overall number of ingresses struct
/fluxkustomizations GET Overall number of fluxkustomizations and number of fluxkustomizations by status struct
/fluxhelmreleases GET Overall number of fluxhelmreleases and number of fluxhelmreleases by status struct

Metrics

Prometheus metrcis exposed on port 8080 via /metrics endpoint.

Health

Healthcheck provided by /healthz endpoint on port 8080

Examples

Docker

To build image with application run

docker build-t kubeinfo:<your-tag> .

Then push container to your favorite registry

Kubernetes

To deploy kubeinfo in kubernetes cluster use helm package manager

First clone this repo

git clone https://github.com/Randsw/kubeinfo.git

Then go to folder helm-chart/kubeinfo-backend

cd helm-chart/kubeinfo-backend

And install helm chart in your kubernetes cluster

helm upgrade --install --namespace <your-namepsace> --create-namespace <your-release-name> .

Don`t forget edit values.yaml for your needs, specially rigth image name and other settings or just provide your values file

helm upgrade --install --namespace <your-namepsace> --create-namespace -f <your-values-file> <your-release-name> .

If this code helped solve your problem or helped point you in the right direction, I will be very happy!